From 8e62d0de22dc1468637408e535f887ee7f305143 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Tue, 26 Nov 2019 17:09:01 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E4=B8=8D=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E7=9A=84=E8=AF=AD=E8=A8=80=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dn-middleware-i18n/build/index.js | 5 +++++ packages/dn-middleware-i18n/build/index.js.map | 2 +- packages/dn-middleware-i18n/lib/i18n.js | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/dn-middleware-i18n/build/index.js b/packages/dn-middleware-i18n/build/index.js index 1e1fec20..ae70f2c1 100644 --- a/packages/dn-middleware-i18n/build/index.js +++ b/packages/dn-middleware-i18n/build/index.js @@ -243,6 +243,11 @@ i18n.getLocale = function (name) { if (!name) return values || {}; if (values && !this.isWhole(values)) return values; var locales = values || $locales; + utils.each(locales, function (key) { + var value = locales[key]; + delete locales[key]; + locales[key.replace('_', '-')] = value; + }); return locales[name] || locales[name.split('-')[0]] || utils.each(locales, function (key) { if (key.split('-')[0] == name.split('-')[0]) return locales[key]; }); diff --git a/packages/dn-middleware-i18n/build/index.js.map b/packages/dn-middleware-i18n/build/index.js.map index db17c0f9..cd3692f5 100644 --- a/packages/dn-middleware-i18n/build/index.js.map +++ b/packages/dn-middleware-i18n/build/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap bb3e2cdf2ec8fc84b6e4","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./demo/index.js","webpack:///./lib/i18n.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-names.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-names.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/ntils/lib/index.js","webpack:////private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/e9961eeb2ecefc911d19f0ad8ca86bae.json","webpack:////private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/f97f6fb082b029056e5705531b561685.json"],"names":["i18n","require","init","language","console","log","name","utils","$locales","$opts","get","apply","arguments","locale","expressions","key","params","defaultValue","isString","isNull","parse","compile","expr","Function","isStrArray","list","i","item","text","info","split","length","func","jsx","join","isWhole","__name__","firstKey","isObject","getLocale","values","global","locales","each","config","currentLang","defaultLang","defaultLanguage","module","exports"],"mappings":"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;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,SAAS;AACrB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC,GAAG;AACH,yBAAyB,YAAY;AACrC;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClyBA,kBAAkB,SAAS,gBAAgB,KAAK,MAAM,UAAU,aAAa,KAAK,I;;;;;;ACAlF,kBAAkB,4B","file":".//index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap bb3e2cdf2ec8fc84b6e4","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 0\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 1\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 2\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 3\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 4\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 5\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 6\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 7\n// module chunks = 0","const i18n = require('$i18n');\n\ni18n.init({\n language:'zh-CN'\n});\n\nconsole.log(i18n('hello'));\nconsole.log(i18n('hello', { name: 'i18n' }));\nconsole.log(i18n('test1', null, 'test1-default1'));\nconsole.log(i18n('test2'));\nconsole.log(i18n('test1', 'test1-default2')); \n\n\n\n// WEBPACK FOOTER //\n// ./demo/index.js","var utils = require('ntils');\nvar $locales = require('$locales');\nvar $opts = require('$i18n_opts');\n\nfunction i18n() {\n return i18n.get.apply(i18n, arguments);\n}\n\ni18n.locale = {};\ni18n.expressions = {};\n\ni18n.get = function (key, params, defaultValue) {\n if (utils.isString(params)) {\n defaultValue = [params, params = defaultValue][0];\n }\n if (utils.isNull(defaultValue)) defaultValue = key;\n if (!key || !utils.isString(key) || utils.isNull(this.locale[key])) {\n return defaultValue;\n }\n return this.parse(this.locale[key], params || {});\n};\n\ni18n.compile = function (expr) {\n if (!expr || !utils.isString(expr)) return;\n if (!this.expressions[expr]) {\n this.expressions[expr] = new Function(\n '$scope',\n 'with($scope||{}){try{return(' + expr + ')}catch(err){return \"\"}}'\n );\n }\n return this.expressions[expr];\n};\n\ni18n.isStrArray = function (list) {\n for (var i in list) {\n var item = list[i];\n if (!utils.isString(item)) return false;\n }\n return true;\n};\n\ni18n.parse = function (text, params) {\n var info = text.split(/\\{(.*?)\\}/);\n for (var i = 1; i <= info.length; i += 2) {\n if (!info[i]) continue;\n var func = this.compile(info[i]);\n if (!func) continue;\n info[i] = func(params);\n }\n return $opts.jsx && !this.isStrArray(info) ? info : info.join('');\n};\n\ni18n.isWhole = function (locale) {\n if (!locale || locale.__name__) return false;\n var firstKey = Object.getOwnPropertyNames(locale)[0];\n if (!firstKey) return false;\n return utils.isObject(locale[firstKey]);\n};\n\ni18n.getLocale = function (name) {\n var values = global[$opts.key];\n if (!name) return values || {};\n if (values && !this.isWhole(values)) return values;\n var locales = values || $locales;\n return locales[name] ||\n locales[name.split('-')[0]] ||\n utils.each(locales, function (key) {\n if (key.split('-')[0] == name.split('-')[0]) return locales[key];\n });\n};\n\ni18n.init = function (config) {\n config = config || {};\n var currentLang = config.language || '';\n var defaultLang = config.defaultLanguage || 'zh-CN';\n this.locale = (currentLang && this.getLocale(currentLang)) ||\n this.getLocale(defaultLang) || {};\n};\n\ni18n.init();\n\nmodule.exports = i18n;\n\n\n// WEBPACK FOOTER //\n// ./lib/i18n.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 11\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-names\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-names.js\n// module id = 12\n// module chunks = 0","require('../../modules/es6.object.get-own-property-names');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyNames(it) {\n return $Object.getOwnPropertyNames(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-names.js\n// module id = 13\n// module chunks = 0","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-names.js\n// module id = 14\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = 15\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 16\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 17\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 18\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 19\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 20\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 21\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 22\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 23\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 24\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 26\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 27\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 28\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 29\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn.js\n// module id = 30\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 31\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 32\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 33\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 34\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 35\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 36\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 37\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 38\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * 空函数\n */\nfunction noop() { }\n\nfunction toString(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction getType(obj) {\n var str = toString(obj);\n return (/^\\[object (.+)\\]$/i.exec(str))[1];\n}\n\n/**\n * 验证一个对象是否为NULL\n * @method isNull\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * 除去字符串两端的空格\n * @method trim\n * @param {String} str 源字符串\n * @return {String} 结果字符串\n * @static\n */\nfunction trim(str) {\n if (isNull(str)) return str;\n if (str.trim) {\n return str.trim();\n } else {\n return str.replace(/(^[\\\\s]*)|([\\\\s]*$)/g, \"\");\n }\n}\n\n/**\n * 替换所有\n * @method replace\n * @param {String} str 源字符串\n * @param {String} str1 要替换的字符串\n * @param {String} str2 替换为的字符串\n * @static\n */\nfunction replace(str, str1, str2) {\n if (isNull(str)) return str;\n return str.replace(new RegExp(str1, 'g'), str2);\n}\n\n/**\n * 从字符串开头匹配\n * @method startWith\n * @param {String} str1 源字符串\n * @param {String} str2 要匹配的字符串\n * @return {Boolean} 匹配结果\n * @static\n */\nfunction startWith(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) === 0;\n}\n\n/**\n * 是否包含\n * @method contains\n * @param {String} str1 源字符串\n * @param {String} str2 检查包括字符串\n * @return {Boolean} 结果\n * @static\n */\nfunction contains(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) > -1;\n}\n\n/**\n * 从字符串结束匹配\n * @method endWidth\n * @param {String} str1 源字符串\n * @param {String} str2 匹配字符串\n * @return {Boolean} 匹配结果\n * @static\n */\nfunction endWith(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) === (str1.length - str2.length);\n}\n\n/**\n * 是否包含属性\n * @method hasProperty\n * @param {Object} obj 对象\n * @param {String} name 属性名\n * @return {Boolean} 结果\n * @static\n */\nfunction has(obj, name) {\n if (isNull(obj) || isNull(name)) return false;\n return (name in obj) || (obj.hasOwnProperty(name));\n}\nvar hasProperty = has;\n\n/**\n * 验证一个对象是否为Function\n * @method isFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isFunction(obj) {\n if (isNull(obj)) return false;\n return typeof obj === \"function\";\n}\n\n/**\n * 验证一个对象是否为 AsyncFunction\n * @method isAsyncFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isAsyncFunction(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === \"AsyncFunction\";\n}\n\n/**\n * 验证一个对象是否为 GeneratorFunction\n * @method isGeneratorFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isGeneratorFunction(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === \"GeneratorFunction\";\n}\n\n\n/**\n * 验证一个对象是否为String\n * @method isString\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isString(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'String';\n}\n\n/**\n * 验证一个对象是否为Number\n * @method isNumber\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isNumber(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'Number';\n}\n\n/**\n * 验证一个对象是否为Boolean\n * @method isBoolean\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isBoolean(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'Boolean';\n}\n\n/**\n * 验证一个对象是否为HTML Element\n * @method isElement\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isElement(obj) {\n if (isNull(obj)) return false;\n if (win.Element) {\n return obj instanceof Element;\n } else {\n return (obj.tagName && obj.nodeType &&\n obj.nodeName && obj.attributes &&\n obj.ownerDocument);\n }\n}\n\n/**\n * 验证一个对象是否为HTML Text Element\n * @method isText\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isText(obj) {\n if (isNull(obj)) return false;\n return obj instanceof Text;\n}\n\n/**\n * 验证一个对象是否为Object\n * @method isObject\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isObject(obj) {\n if (isNull(obj)) return false;\n var type = getType(obj);\n return type === 'Object' || type === 'Array';\n}\n\n/**\n * 验证一个对象是否为Array或伪Array\n * @method isArray\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isArray(obj) {\n if (isNull(obj)) return false;\n var v1 = getType(obj) === 'Array';\n var v2 = obj instanceof Array;\n var v3 = !isString(obj) && isNumber(obj.length) && isFunction(obj.splice);\n var v4 = !isString(obj) && isNumber(obj.length) && obj[0];\n return v1 || v2 || v3 || v4;\n}\n\n/**\n * 验证是不是一个日期对象\n * @method isDate\n * @param {Object} val 要检查的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isDate(val) {\n if (isNull(val)) return false;\n return val instanceof Date;\n}\n\n/**\n * 验证是不是一个正则对象\n * @method isDate\n * @param {Object} val 要检查的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isRegexp(val) {\n return val instanceof RegExp;\n}\n\n/**\n * 转换为数组\n * @method toArray\n * @param {Array|Object} array 伪数组\n * @return {Array} 转换结果数组\n * @static\n */\nfunction toArray(array) {\n if (isNull(array)) return [];\n return Array.prototype.slice.call(array);\n}\n\n/**\n * 转为日期格式\n * @method toDate\n * @param {Number|String} val 日期字符串或整型数值\n * @return {Date} 日期对象\n * @static\n */\nfunction toDate(val) {\n if (isNumber(val))\n return new Date(val);\n else if (isString(val))\n return new Date(replace(replace(val, '-', '/'), 'T', ' '));\n else if (isDate(val))\n return val;\n else\n return null;\n}\n\n/**\n * 遍历一个对像或数组\n * @method each\n * @param {Object or Array} obj 要遍历的数组或对象\n * @param {Function} fn 处理函数\n * @return {void} 无返回值\n * @static\n */\nfunction each(list, handler, scope) {\n if (isNull(list) || isNull(handler)) return;\n if (isArray(list)) {\n var listLength = list.length;\n for (var i = 0; i < listLength; i++) {\n var rs = handler.call(scope || list[i], i, list[i]);\n if (!isNull(rs)) return rs;\n }\n } else {\n for (var key in list) {\n var rs = handler.call(scope || list[key], key, list[key]);\n if (!isNull(rs)) return rs;\n }\n }\n}\n\n/**\n * 格式化日期\n * @method formatDate\n * @param {Date|String|Number} date 日期\n * @param {String} format 格式化字符串\n * @param {object} dict 反译字典\n * @return {String} 格式化结果\n * @static\n */\nfunction formatDate(date, format, dict) {\n if (isNull(format) || isNull(date)) return date;\n date = toDate(date);\n dict = dict || {};\n var placeholder = {\n \"M+\": date.getMonth() + 1, //month\n \"d+\": date.getDate(), //day\n \"h+\": date.getHours(), //hour\n \"m+\": date.getMinutes(), //minute\n \"s+\": date.getSeconds(), //second\n \"w+\": date.getDay(), //week\n \"q+\": Math.floor((date.getMonth() + 3) / 3), //quarter\n \"S\": date.getMilliseconds() //millisecond\n };\n if (/(y+)/.test(format)) {\n format = format.replace(\n RegExp.$1,\n (date.getFullYear() + \"\").substr(4 - RegExp.$1.length)\n );\n }\n for (var key in placeholder) {\n if (new RegExp(\"(\" + key + \")\").test(format)) {\n var value = placeholder[key];\n value = dict[value] || value;\n format = format.replace(RegExp.$1, RegExp.$1.length == 1\n ? value : (\"00\" + value).substr((\"\" + value).length));\n }\n }\n return format;\n}\n\n/**\n * 拷贝对象\n * @method copy\n * @param {Object} src 源对象\n * @param {Object} dst 目标对象\n * @static\n */\nfunction copy(src, dst, igonres) {\n dst = dst || (isArray(src) ? [] : {});\n each(src, function (key) {\n if (igonres && igonres.indexOf(key) > -1) return;\n delete dst[key];\n if (Object.getOwnPropertyDescriptor) {\n try {\n Object.defineProperty(dst, key,\n Object.getOwnPropertyDescriptor(src, key));\n } catch (ex) {\n dst[key] = src[key];\n }\n } else {\n dst[key] = src[key];\n }\n });\n return dst;\n}\n\n/**\n * 深度克隆对象\n * @method clone\n * @param {Object} src 源对象\n * @return {Object} 新对象\n * @static\n */\nfunction clone(src, igonres) {\n if (isNull(src) ||\n isString(src) ||\n isNumber(src) ||\n isBoolean(src) ||\n isDate(src)) {\n return src;\n }\n var objClone = src;\n try {\n objClone = new src.constructor();\n } catch (ex) { }\n each(src, function (key, value) {\n if (objClone[key] != value && !contains(igonres, key)) {\n if (isObject(value)) {\n objClone[key] = clone(value, igonres);\n } else {\n objClone[key] = value;\n }\n }\n });\n ['toString', 'valueOf'].forEach(function (key) {\n if (contains(igonres, key)) return;\n final(objClone, key, src[key]);\n });\n return objClone;\n}\n\n/**\n * 合并对象\n * @method mix\n * @return 合并后的对象\n * @param {Object} dst 目标对象\n * @param {Object} src 源对象\n * @param {Array} igonres 忽略的属性名,\n * @param {Number} mode 模式\n */\nfunction mix(dst, src, igonres, mode, igonreNull) {\n //根据模式来判断,默认是Obj to Obj的 \n if (mode) {\n switch (mode) {\n case 1: // proto to proto \n return mix(dst.prototype, src.prototype, igonres, 0);\n case 2: // object to object and proto to proto \n mix(dst.prototype, src.prototype, igonres, 0);\n break; // pass through \n case 3: // proto to static \n return mix(dst, src.prototype, igonres, 0);\n case 4: // static to proto \n return mix(dst.prototype, src, igonres, 0);\n default: // object to object is what happens below \n }\n }\n //---\n src = src || {};\n dst = dst || (isArray(src) ? [] : {});\n keys(src).forEach(function (key) {\n if (contains(igonres, key)) return;\n if (igonreNull && isNull(src[key])) return;\n if (isObject(src[key]) &&\n (src[key].constructor == Object ||\n src[key].constructor == Array ||\n src[key].constructor == null)) {\n dst[key] = mix(dst[key], src[key], igonres, 0, igonreNull);\n } else {\n dst[key] = src[key];\n }\n });\n return dst;\n}\n\n/**\n * 定义不可遍历的属性\n **/\nfunction final(obj, name, value) {\n if (arguments.length < 1) throw new Error('Parameter missing');\n if (arguments.length < 2) {\n return each(obj, function (name, value) {\n final(obj, name, value);\n });\n }\n if (arguments.length < 3) return final(obj, name, obj[name]);\n try {\n Object.defineProperty(obj, name, {\n get: function () {\n return value;\n },\n set: function () {\n throw new Error('Cannot assign to final property:' + name);\n },\n enumerable: false, //不能枚举\n configurable: false, //不能重写定义\n });\n } catch (err) {\n obj[name] = value;\n }\n}\n\n/**\n * 获取所有 key \n */\nfunction keys(obj) {\n if (Object.keys) return Object.keys(obj);\n var keys = [];\n each(obj, function (key) {\n keys.push(key);\n });\n return keys;\n}\n\n/**\n * 创建一个对象\n */\nfunction create(proto, props) {\n if (Object.create) return Object.create(proto, props);\n function Cotr() { }\n Cotr.prototype = proto;\n var obj = new Cotr();\n if (props) copy(props, obj);\n return obj;\n}\n\n/**\n * 设置 proto\n * 在不支持 setPrototypeOf 也不支持 __proto__ 的浏览器\n * 中,会采用 copy 方式\n */\nfunction setPrototypeOf(obj, proto) {\n if (Object.setPrototypeOf) {\n return Object.setPrototypeOf(obj, proto || create(null));\n } else {\n if (!('__proto__' in Object)) copy(proto, obj);\n obj.__proto__ = proto;\n }\n}\n\n/**\n * 获取 proto\n */\nfunction getPrototypeOf(obj) {\n if (obj.__proto__) return obj.__proto__;\n if (Object.getPrototypeOf) return Object.getPrototypeOf(obj);\n if (obj.constructor) return obj.constructor.prototype;\n}\n\n/**\n * 是否深度相等\n */\nfunction deepEqual(a, b) {\n if (a === b) return true;\n if (!isObject(a) || !isObject(b)) return false;\n var aKeys = keys(a);\n var bKeys = keys(b);\n if (aKeys.length !== bKeys.length) return false;\n var allKeys = aKeys.concat(bKeys);\n var checkedMap = create(null);\n var result = true;\n each(allKeys, function (i, key) {\n if (checkedMap[key]) return;\n if (!deepEqual(a[key], b[key])) result = false;\n checkedMap[key] = true;\n });\n return result;\n}\n\n/**\n * 从一个数值循环到别一个数\n * @param {number} fromNum 开始数值\n * @param {Number} toNum 结束数值\n * @param {Number} step 步长值\n * @param {function} handler 执行函数\n * @returns {void} 无返回\n */\nfunction fromTo(fromNum, toNum, step, handler) {\n if (!handler) handler = [step, step = handler][0];\n step = Math.abs(step || 1);\n if (fromNum < toNum) {\n for (var i = fromNum; i <= toNum; i += step) handler(i);\n } else {\n for (var i = fromNum; i >= toNum; i -= step) handler(i);\n }\n}\n\n/**\n * 生成一个Guid\n * @method newGuid\n * @return {String} GUID字符串\n * @static\n */\nfunction newGuid() {\n function s4() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n return (s4() + s4() + \"-\" + s4() + \"-\" + s4() + \"-\" +\n s4() + \"-\" + s4() + s4() + s4());\n}\n\n/**\n * 对象变换\n **/\nfunction map(list, fn) {\n var buffer = isArray(list) ? [] : {};\n each(list, function (name, value) {\n buffer[name] = fn(name, value);\n });\n return buffer;\n}\n\n/**\n * 通过路径设置属性值\n */\nfunction setByPath(obj, path, value) {\n if (isNull(obj) || isNull(path) || path === '') {\n return;\n }\n if (!isArray(path)) {\n path = path.replace(/\\[/, '.').replace(/\\]/, '.').split('.');\n }\n each(path, function (index, name) {\n if (isNull(name) || name.length < 1) return;\n if (index === path.length - 1) {\n obj[name] = value;\n } else {\n obj[name] = obj[name] || {};\n obj = obj[name];\n }\n });\n}\n\n/**\n * 通过路径获取属性值\n */\nfunction getByPath(obj, path) {\n if (isNull(obj) || isNull(path) || path === '') {\n return obj;\n }\n if (!isArray(path)) {\n path = path.replace(/\\[/, '.').replace(/\\]/, '.').split('.');\n }\n each(path, function (index, name) {\n if (isNull(name) || name.length < 1) return;\n if (!isNull(obj)) obj = obj[name];\n });\n return obj;\n}\n\n/**\n * 数组去重\n **/\nfunction unique(array) {\n if (isNull(array)) return array;\n var newArray = [];\n each(array, function (i, value) {\n if (newArray.indexOf(value) > -1) return;\n newArray.push(value);\n });\n return newArray;\n}\n\n/**\n * 解析 function 的参数列表\n **/\nfunction getFunctionArgumentNames(fn) {\n if (!fn) return [];\n var src = fn.toString();\n var parts = src.split(')')[0].split('=>')[0].split('(');\n return (parts[1] || parts[0]).split(',').map(function (name) {\n return trim(name);\n }).filter(function (name) {\n return name != 'function';\n });\n}\n\n/**\n * 缩短字符串\n */\nfunction short(str, maxLength) {\n if (!str) return str;\n maxLength = maxLength || 40;\n var strLength = str.length;\n var trimLength = maxLength / 2;\n return strLength > maxLength ?\n str.substr(0, trimLength) + '...' + str.substr(strLength - trimLength) :\n str;\n}\n\n/**\n * 首字母大写\n */\nfunction firstUpper(str) {\n if (!isString(str)) return '';\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\n\n/**\n * 编码正则字符串\n */\nfunction escapeRegExp(str) {\n if (!isString(str)) return '';\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\n/**\n * 将字符串转成「驼峰」式\n * @param {string} str 原始字符串\n * @param {number} mode 1 大驼峰,0 小驼峰\n * @return {string} 转换后的字符串\n */\nfunction toCamelCase(str, mode) {\n if (!isString(str)) return '';\n if (str) {\n str = str.replace(/\\-[a-z0-9]/g, function ($1) {\n return $1.slice(1).toUpperCase()\n });\n str = str.replace(/^[a-z]/i, function ($1) {\n return mode ? $1.toUpperCase() : $1.toLowerCase();\n });\n }\n return str;\n}\n\n/**\n * 将字符串转成分隔形式\n * @param {string} str 原始字符串\n * @return {string} 转换后的字符串\n */\nfunction toSplitCase(str) {\n if (!isString(str)) return '';\n if (str) {\n str = str.replace(/([A-Z])/g, '-$1');\n if (str[0] == '-') str = str.slice(1);\n }\n return str.toLowerCase();\n}\n\nfunction htmlPrefilter(html) {\n var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi;\n return html.replace(rxhtmlTag, \"<$1>\");\n}\n\n/**\n * 解析字符串为 dom \n * @param {string} str 字符串\n * @returns {HTMLNode} 解析后的 DOM \n */\nfunction parseHTML(str) {\n str = str || ' ';\n var parent = document.createElement('div');\n parent.innerHTML = htmlPrefilter(trim(str));\n var childNodes = toArray(parent.childNodes);\n //先 clone 一份再通过 innerHTML 清空\n //否则 IE9 下,清空时会导不通过返回的 DOM 没有子结点\n // if (firstNode) firstNode = firstNode.cloneNode(true);\n // win._NPH_.innerHTML = '';\n each(childNodes, function (index, childNode) {\n parent.removeChild(childNode);\n });\n return childNodes;\n}\n\nexports.noop = noop;\nexports.toString = toString;\nexports.getType = getType;\nexports.isNull = isNull;\nexports.trim = trim;\nexports.replace = replace;\nexports.startWith = startWith;\nexports.contains = contains;\nexports.endWith = endWith;\nexports.has = has;\nexports.hasProperty = hasProperty;\nexports.isFunction = isFunction;\nexports.isAsyncFunction = isAsyncFunction;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isString = isString;\nexports.isNumber = isNumber;\nexports.isBoolean = isBoolean;\nexports.isElement = isElement;\nexports.isText = isText;\nexports.isObject = isObject;\nexports.isArray = isArray;\nexports.isDate = isDate;\nexports.isRegexp = isRegexp;\nexports.toArray = toArray;\nexports.toDate = toDate;\nexports.each = each;\nexports.formatDate = formatDate;\nexports.copy = copy;\nexports.clone = clone;\nexports.mix = mix;\nexports.final = final;\nexports.keys = keys;\nexports.create = create;\nexports.setPrototypeOf = setPrototypeOf;\nexports.getPrototypeOf = getPrototypeOf;\nexports.deepEqual = deepEqual;\nexports.fromTo = fromTo;\nexports.newGuid = newGuid;\nexports.map = map;\nexports.setByPath = setByPath;\nexports.getByPath = getByPath;\nexports.unique = unique;\nexports.getFunctionArgumentNames = getFunctionArgumentNames;\nexports.short = short;\nexports.firstUpper = firstUpper;\nexports.escapeRegExp = escapeRegExp;\nexports.toCamelCase = toCamelCase;\nexports.toSplitCase = toSplitCase;\nexports.htmlPrefilter = htmlPrefilter;\nexports.parseHTML = parseHTML;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ntils/lib/index.js\n// module id = 40\n// module chunks = 0","module.exports = {\"en-US\":{\"hello\":\"Hello {name}!qqq\"},\"zh-CN\":{\"hello\":\"你好,{name}!\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// /private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/e9961eeb2ecefc911d19f0ad8ca86bae.json\n// module id = 41\n// module chunks = 0","module.exports = {\"key\":\"__locale\",\"jsx\":true}\n\n\n//////////////////\n// WEBPACK FOOTER\n// /private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/f97f6fb082b029056e5705531b561685.json\n// module id = 42\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 64c90fe3937833101ea4","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./demo/index.js","webpack:///./lib/i18n.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-names.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-names.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/ntils/lib/index.js","webpack:////private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/e9961eeb2ecefc911d19f0ad8ca86bae.json","webpack:////private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/f97f6fb082b029056e5705531b561685.json"],"names":["i18n","require","init","language","console","log","name","utils","$locales","$opts","get","apply","arguments","locale","expressions","key","params","defaultValue","isString","isNull","parse","compile","expr","Function","isStrArray","list","i","item","text","info","split","length","func","jsx","join","isWhole","__name__","firstKey","isObject","getLocale","values","global","locales","each","value","replace","config","currentLang","defaultLang","defaultLanguage","module","exports"],"mappings":"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A;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,SAAS;AACrB,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC,GAAG;AACH,yBAAyB,YAAY;AACrC;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClyBA,kBAAkB,SAAS,gBAAgB,KAAK,MAAM,UAAU,aAAa,KAAK,I;;;;;;ACAlF,kBAAkB,4B","file":".//index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 64c90fe3937833101ea4","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 0\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 1\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 2\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 3\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 4\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 5\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 6\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 7\n// module chunks = 0","const i18n = require('$i18n');\n\ni18n.init({\n language:'zh-CN'\n});\n\nconsole.log(i18n('hello'));\nconsole.log(i18n('hello', { name: 'i18n' }));\nconsole.log(i18n('test1', null, 'test1-default1'));\nconsole.log(i18n('test2'));\nconsole.log(i18n('test1', 'test1-default2')); \n\n\n\n// WEBPACK FOOTER //\n// ./demo/index.js","var utils = require('ntils');\nvar $locales = require('$locales');\nvar $opts = require('$i18n_opts');\n\nfunction i18n() {\n return i18n.get.apply(i18n, arguments);\n}\n\ni18n.locale = {};\ni18n.expressions = {};\n\ni18n.get = function (key, params, defaultValue) {\n if (utils.isString(params)) {\n defaultValue = [params, params = defaultValue][0];\n }\n if (utils.isNull(defaultValue)) defaultValue = key;\n if (!key || !utils.isString(key) || utils.isNull(this.locale[key])) {\n return defaultValue;\n }\n return this.parse(this.locale[key], params || {});\n};\n\ni18n.compile = function (expr) {\n if (!expr || !utils.isString(expr)) return;\n if (!this.expressions[expr]) {\n this.expressions[expr] = new Function(\n '$scope',\n 'with($scope||{}){try{return(' + expr + ')}catch(err){return \"\"}}'\n );\n }\n return this.expressions[expr];\n};\n\ni18n.isStrArray = function (list) {\n for (var i in list) {\n var item = list[i];\n if (!utils.isString(item)) return false;\n }\n return true;\n};\n\ni18n.parse = function (text, params) {\n var info = text.split(/\\{(.*?)\\}/);\n for (var i = 1; i <= info.length; i += 2) {\n if (!info[i]) continue;\n var func = this.compile(info[i]);\n if (!func) continue;\n info[i] = func(params);\n }\n return $opts.jsx && !this.isStrArray(info) ? info : info.join('');\n};\n\ni18n.isWhole = function (locale) {\n if (!locale || locale.__name__) return false;\n var firstKey = Object.getOwnPropertyNames(locale)[0];\n if (!firstKey) return false;\n return utils.isObject(locale[firstKey]);\n};\n\ni18n.getLocale = function (name) {\n var values = global[$opts.key];\n if (!name) return values || {};\n if (values && !this.isWhole(values)) return values;\n var locales = values || $locales;\n utils.each(locales, function (key) {\n var value = locales[key];\n delete locales[key];\n locales[key.replace('_', '-')] = value;\n });\n return locales[name] ||\n locales[name.split('-')[0]] ||\n utils.each(locales, function (key) {\n if (key.split('-')[0] == name.split('-')[0]) return locales[key];\n });\n};\n\ni18n.init = function (config) {\n config = config || {};\n var currentLang = config.language || '';\n var defaultLang = config.defaultLanguage || 'zh-CN';\n this.locale = (currentLang && this.getLocale(currentLang)) ||\n this.getLocale(defaultLang) || {};\n};\n\ni18n.init();\n\nmodule.exports = i18n;\n\n\n// WEBPACK FOOTER //\n// ./lib/i18n.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 11\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-names\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-names.js\n// module id = 12\n// module chunks = 0","require('../../modules/es6.object.get-own-property-names');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyNames(it) {\n return $Object.getOwnPropertyNames(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-names.js\n// module id = 13\n// module chunks = 0","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-names.js\n// module id = 14\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = 15\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 16\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 17\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 18\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 19\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 20\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 21\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 22\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 23\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 24\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 25\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 26\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 27\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 28\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 29\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn.js\n// module id = 30\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 31\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 32\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 33\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 34\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 35\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 36\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 37\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 38\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 39\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * 空函数\n */\nfunction noop() { }\n\nfunction toString(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction getType(obj) {\n var str = toString(obj);\n return (/^\\[object (.+)\\]$/i.exec(str))[1];\n}\n\n/**\n * 验证一个对象是否为NULL\n * @method isNull\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isNull(obj) {\n return obj === undefined || obj === null;\n}\n\n/**\n * 除去字符串两端的空格\n * @method trim\n * @param {String} str 源字符串\n * @return {String} 结果字符串\n * @static\n */\nfunction trim(str) {\n if (isNull(str)) return str;\n if (str.trim) {\n return str.trim();\n } else {\n return str.replace(/(^[\\\\s]*)|([\\\\s]*$)/g, \"\");\n }\n}\n\n/**\n * 替换所有\n * @method replace\n * @param {String} str 源字符串\n * @param {String} str1 要替换的字符串\n * @param {String} str2 替换为的字符串\n * @static\n */\nfunction replace(str, str1, str2) {\n if (isNull(str)) return str;\n return str.replace(new RegExp(str1, 'g'), str2);\n}\n\n/**\n * 从字符串开头匹配\n * @method startWith\n * @param {String} str1 源字符串\n * @param {String} str2 要匹配的字符串\n * @return {Boolean} 匹配结果\n * @static\n */\nfunction startWith(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) === 0;\n}\n\n/**\n * 是否包含\n * @method contains\n * @param {String} str1 源字符串\n * @param {String} str2 检查包括字符串\n * @return {Boolean} 结果\n * @static\n */\nfunction contains(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) > -1;\n}\n\n/**\n * 从字符串结束匹配\n * @method endWidth\n * @param {String} str1 源字符串\n * @param {String} str2 匹配字符串\n * @return {Boolean} 匹配结果\n * @static\n */\nfunction endWith(str1, str2) {\n if (isNull(str1) || isNull(str2)) return false;\n return str1.indexOf(str2) === (str1.length - str2.length);\n}\n\n/**\n * 是否包含属性\n * @method hasProperty\n * @param {Object} obj 对象\n * @param {String} name 属性名\n * @return {Boolean} 结果\n * @static\n */\nfunction has(obj, name) {\n if (isNull(obj) || isNull(name)) return false;\n return (name in obj) || (obj.hasOwnProperty(name));\n}\nvar hasProperty = has;\n\n/**\n * 验证一个对象是否为Function\n * @method isFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isFunction(obj) {\n if (isNull(obj)) return false;\n return typeof obj === \"function\";\n}\n\n/**\n * 验证一个对象是否为 AsyncFunction\n * @method isAsyncFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isAsyncFunction(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === \"AsyncFunction\";\n}\n\n/**\n * 验证一个对象是否为 GeneratorFunction\n * @method isGeneratorFunction\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isGeneratorFunction(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === \"GeneratorFunction\";\n}\n\n\n/**\n * 验证一个对象是否为String\n * @method isString\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isString(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'String';\n}\n\n/**\n * 验证一个对象是否为Number\n * @method isNumber\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isNumber(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'Number';\n}\n\n/**\n * 验证一个对象是否为Boolean\n * @method isBoolean\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isBoolean(obj) {\n if (isNull(obj)) return false;\n return getType(obj) === 'Boolean';\n}\n\n/**\n * 验证一个对象是否为HTML Element\n * @method isElement\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isElement(obj) {\n if (isNull(obj)) return false;\n if (win.Element) {\n return obj instanceof Element;\n } else {\n return (obj.tagName && obj.nodeType &&\n obj.nodeName && obj.attributes &&\n obj.ownerDocument);\n }\n}\n\n/**\n * 验证一个对象是否为HTML Text Element\n * @method isText\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isText(obj) {\n if (isNull(obj)) return false;\n return obj instanceof Text;\n}\n\n/**\n * 验证一个对象是否为Object\n * @method isObject\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isObject(obj) {\n if (isNull(obj)) return false;\n var type = getType(obj);\n return type === 'Object' || type === 'Array';\n}\n\n/**\n * 验证一个对象是否为Array或伪Array\n * @method isArray\n * @param {Object} obj 要验证的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isArray(obj) {\n if (isNull(obj)) return false;\n var v1 = getType(obj) === 'Array';\n var v2 = obj instanceof Array;\n var v3 = !isString(obj) && isNumber(obj.length) && isFunction(obj.splice);\n var v4 = !isString(obj) && isNumber(obj.length) && obj[0];\n return v1 || v2 || v3 || v4;\n}\n\n/**\n * 验证是不是一个日期对象\n * @method isDate\n * @param {Object} val 要检查的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isDate(val) {\n if (isNull(val)) return false;\n return val instanceof Date;\n}\n\n/**\n * 验证是不是一个正则对象\n * @method isDate\n * @param {Object} val 要检查的对象\n * @return {Boolean} 结果\n * @static\n */\nfunction isRegexp(val) {\n return val instanceof RegExp;\n}\n\n/**\n * 转换为数组\n * @method toArray\n * @param {Array|Object} array 伪数组\n * @return {Array} 转换结果数组\n * @static\n */\nfunction toArray(array) {\n if (isNull(array)) return [];\n return Array.prototype.slice.call(array);\n}\n\n/**\n * 转为日期格式\n * @method toDate\n * @param {Number|String} val 日期字符串或整型数值\n * @return {Date} 日期对象\n * @static\n */\nfunction toDate(val) {\n if (isNumber(val))\n return new Date(val);\n else if (isString(val))\n return new Date(replace(replace(val, '-', '/'), 'T', ' '));\n else if (isDate(val))\n return val;\n else\n return null;\n}\n\n/**\n * 遍历一个对像或数组\n * @method each\n * @param {Object or Array} obj 要遍历的数组或对象\n * @param {Function} fn 处理函数\n * @return {void} 无返回值\n * @static\n */\nfunction each(list, handler, scope) {\n if (isNull(list) || isNull(handler)) return;\n if (isArray(list)) {\n var listLength = list.length;\n for (var i = 0; i < listLength; i++) {\n var rs = handler.call(scope || list[i], i, list[i]);\n if (!isNull(rs)) return rs;\n }\n } else {\n for (var key in list) {\n var rs = handler.call(scope || list[key], key, list[key]);\n if (!isNull(rs)) return rs;\n }\n }\n}\n\n/**\n * 格式化日期\n * @method formatDate\n * @param {Date|String|Number} date 日期\n * @param {String} format 格式化字符串\n * @param {object} dict 反译字典\n * @return {String} 格式化结果\n * @static\n */\nfunction formatDate(date, format, dict) {\n if (isNull(format) || isNull(date)) return date;\n date = toDate(date);\n dict = dict || {};\n var placeholder = {\n \"M+\": date.getMonth() + 1, //month\n \"d+\": date.getDate(), //day\n \"h+\": date.getHours(), //hour\n \"m+\": date.getMinutes(), //minute\n \"s+\": date.getSeconds(), //second\n \"w+\": date.getDay(), //week\n \"q+\": Math.floor((date.getMonth() + 3) / 3), //quarter\n \"S\": date.getMilliseconds() //millisecond\n };\n if (/(y+)/.test(format)) {\n format = format.replace(\n RegExp.$1,\n (date.getFullYear() + \"\").substr(4 - RegExp.$1.length)\n );\n }\n for (var key in placeholder) {\n if (new RegExp(\"(\" + key + \")\").test(format)) {\n var value = placeholder[key];\n value = dict[value] || value;\n format = format.replace(RegExp.$1, RegExp.$1.length == 1\n ? value : (\"00\" + value).substr((\"\" + value).length));\n }\n }\n return format;\n}\n\n/**\n * 拷贝对象\n * @method copy\n * @param {Object} src 源对象\n * @param {Object} dst 目标对象\n * @static\n */\nfunction copy(src, dst, igonres) {\n dst = dst || (isArray(src) ? [] : {});\n each(src, function (key) {\n if (igonres && igonres.indexOf(key) > -1) return;\n delete dst[key];\n if (Object.getOwnPropertyDescriptor) {\n try {\n Object.defineProperty(dst, key,\n Object.getOwnPropertyDescriptor(src, key));\n } catch (ex) {\n dst[key] = src[key];\n }\n } else {\n dst[key] = src[key];\n }\n });\n return dst;\n}\n\n/**\n * 深度克隆对象\n * @method clone\n * @param {Object} src 源对象\n * @return {Object} 新对象\n * @static\n */\nfunction clone(src, igonres) {\n if (isNull(src) ||\n isString(src) ||\n isNumber(src) ||\n isBoolean(src) ||\n isDate(src)) {\n return src;\n }\n var objClone = src;\n try {\n objClone = new src.constructor();\n } catch (ex) { }\n each(src, function (key, value) {\n if (objClone[key] != value && !contains(igonres, key)) {\n if (isObject(value)) {\n objClone[key] = clone(value, igonres);\n } else {\n objClone[key] = value;\n }\n }\n });\n ['toString', 'valueOf'].forEach(function (key) {\n if (contains(igonres, key)) return;\n final(objClone, key, src[key]);\n });\n return objClone;\n}\n\n/**\n * 合并对象\n * @method mix\n * @return 合并后的对象\n * @param {Object} dst 目标对象\n * @param {Object} src 源对象\n * @param {Array} igonres 忽略的属性名,\n * @param {Number} mode 模式\n */\nfunction mix(dst, src, igonres, mode, igonreNull) {\n //根据模式来判断,默认是Obj to Obj的 \n if (mode) {\n switch (mode) {\n case 1: // proto to proto \n return mix(dst.prototype, src.prototype, igonres, 0);\n case 2: // object to object and proto to proto \n mix(dst.prototype, src.prototype, igonres, 0);\n break; // pass through \n case 3: // proto to static \n return mix(dst, src.prototype, igonres, 0);\n case 4: // static to proto \n return mix(dst.prototype, src, igonres, 0);\n default: // object to object is what happens below \n }\n }\n //---\n src = src || {};\n dst = dst || (isArray(src) ? [] : {});\n keys(src).forEach(function (key) {\n if (contains(igonres, key)) return;\n if (igonreNull && isNull(src[key])) return;\n if (isObject(src[key]) &&\n (src[key].constructor == Object ||\n src[key].constructor == Array ||\n src[key].constructor == null)) {\n dst[key] = mix(dst[key], src[key], igonres, 0, igonreNull);\n } else {\n dst[key] = src[key];\n }\n });\n return dst;\n}\n\n/**\n * 定义不可遍历的属性\n **/\nfunction final(obj, name, value) {\n if (arguments.length < 1) throw new Error('Parameter missing');\n if (arguments.length < 2) {\n return each(obj, function (name, value) {\n final(obj, name, value);\n });\n }\n if (arguments.length < 3) return final(obj, name, obj[name]);\n try {\n Object.defineProperty(obj, name, {\n get: function () {\n return value;\n },\n set: function () {\n throw new Error('Cannot assign to final property:' + name);\n },\n enumerable: false, //不能枚举\n configurable: false, //不能重写定义\n });\n } catch (err) {\n obj[name] = value;\n }\n}\n\n/**\n * 获取所有 key \n */\nfunction keys(obj) {\n if (Object.keys) return Object.keys(obj);\n var keys = [];\n each(obj, function (key) {\n keys.push(key);\n });\n return keys;\n}\n\n/**\n * 创建一个对象\n */\nfunction create(proto, props) {\n if (Object.create) return Object.create(proto, props);\n function Cotr() { }\n Cotr.prototype = proto;\n var obj = new Cotr();\n if (props) copy(props, obj);\n return obj;\n}\n\n/**\n * 设置 proto\n * 在不支持 setPrototypeOf 也不支持 __proto__ 的浏览器\n * 中,会采用 copy 方式\n */\nfunction setPrototypeOf(obj, proto) {\n if (Object.setPrototypeOf) {\n return Object.setPrototypeOf(obj, proto || create(null));\n } else {\n if (!('__proto__' in Object)) copy(proto, obj);\n obj.__proto__ = proto;\n }\n}\n\n/**\n * 获取 proto\n */\nfunction getPrototypeOf(obj) {\n if (obj.__proto__) return obj.__proto__;\n if (Object.getPrototypeOf) return Object.getPrototypeOf(obj);\n if (obj.constructor) return obj.constructor.prototype;\n}\n\n/**\n * 是否深度相等\n */\nfunction deepEqual(a, b) {\n if (a === b) return true;\n if (!isObject(a) || !isObject(b)) return false;\n var aKeys = keys(a);\n var bKeys = keys(b);\n if (aKeys.length !== bKeys.length) return false;\n var allKeys = aKeys.concat(bKeys);\n var checkedMap = create(null);\n var result = true;\n each(allKeys, function (i, key) {\n if (checkedMap[key]) return;\n if (!deepEqual(a[key], b[key])) result = false;\n checkedMap[key] = true;\n });\n return result;\n}\n\n/**\n * 从一个数值循环到别一个数\n * @param {number} fromNum 开始数值\n * @param {Number} toNum 结束数值\n * @param {Number} step 步长值\n * @param {function} handler 执行函数\n * @returns {void} 无返回\n */\nfunction fromTo(fromNum, toNum, step, handler) {\n if (!handler) handler = [step, step = handler][0];\n step = Math.abs(step || 1);\n if (fromNum < toNum) {\n for (var i = fromNum; i <= toNum; i += step) handler(i);\n } else {\n for (var i = fromNum; i >= toNum; i -= step) handler(i);\n }\n}\n\n/**\n * 生成一个Guid\n * @method newGuid\n * @return {String} GUID字符串\n * @static\n */\nfunction newGuid() {\n function s4() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n return (s4() + s4() + \"-\" + s4() + \"-\" + s4() + \"-\" +\n s4() + \"-\" + s4() + s4() + s4());\n}\n\n/**\n * 对象变换\n **/\nfunction map(list, fn) {\n var buffer = isArray(list) ? [] : {};\n each(list, function (name, value) {\n buffer[name] = fn(name, value);\n });\n return buffer;\n}\n\n/**\n * 通过路径设置属性值\n */\nfunction setByPath(obj, path, value) {\n if (isNull(obj) || isNull(path) || path === '') {\n return;\n }\n if (!isArray(path)) {\n path = path.replace(/\\[/, '.').replace(/\\]/, '.').split('.');\n }\n each(path, function (index, name) {\n if (isNull(name) || name.length < 1) return;\n if (index === path.length - 1) {\n obj[name] = value;\n } else {\n obj[name] = obj[name] || {};\n obj = obj[name];\n }\n });\n}\n\n/**\n * 通过路径获取属性值\n */\nfunction getByPath(obj, path) {\n if (isNull(obj) || isNull(path) || path === '') {\n return obj;\n }\n if (!isArray(path)) {\n path = path.replace(/\\[/, '.').replace(/\\]/, '.').split('.');\n }\n each(path, function (index, name) {\n if (isNull(name) || name.length < 1) return;\n if (!isNull(obj)) obj = obj[name];\n });\n return obj;\n}\n\n/**\n * 数组去重\n **/\nfunction unique(array) {\n if (isNull(array)) return array;\n var newArray = [];\n each(array, function (i, value) {\n if (newArray.indexOf(value) > -1) return;\n newArray.push(value);\n });\n return newArray;\n}\n\n/**\n * 解析 function 的参数列表\n **/\nfunction getFunctionArgumentNames(fn) {\n if (!fn) return [];\n var src = fn.toString();\n var parts = src.split(')')[0].split('=>')[0].split('(');\n return (parts[1] || parts[0]).split(',').map(function (name) {\n return trim(name);\n }).filter(function (name) {\n return name != 'function';\n });\n}\n\n/**\n * 缩短字符串\n */\nfunction short(str, maxLength) {\n if (!str) return str;\n maxLength = maxLength || 40;\n var strLength = str.length;\n var trimLength = maxLength / 2;\n return strLength > maxLength ?\n str.substr(0, trimLength) + '...' + str.substr(strLength - trimLength) :\n str;\n}\n\n/**\n * 首字母大写\n */\nfunction firstUpper(str) {\n if (!isString(str)) return '';\n return str.substring(0, 1).toUpperCase() + str.substring(1);\n}\n\n/**\n * 编码正则字符串\n */\nfunction escapeRegExp(str) {\n if (!isString(str)) return '';\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\n/**\n * 将字符串转成「驼峰」式\n * @param {string} str 原始字符串\n * @param {number} mode 1 大驼峰,0 小驼峰\n * @return {string} 转换后的字符串\n */\nfunction toCamelCase(str, mode) {\n if (!isString(str)) return '';\n if (str) {\n str = str.replace(/\\-[a-z0-9]/g, function ($1) {\n return $1.slice(1).toUpperCase()\n });\n str = str.replace(/^[a-z]/i, function ($1) {\n return mode ? $1.toUpperCase() : $1.toLowerCase();\n });\n }\n return str;\n}\n\n/**\n * 将字符串转成分隔形式\n * @param {string} str 原始字符串\n * @return {string} 转换后的字符串\n */\nfunction toSplitCase(str) {\n if (!isString(str)) return '';\n if (str) {\n str = str.replace(/([A-Z])/g, '-$1');\n if (str[0] == '-') str = str.slice(1);\n }\n return str.toLowerCase();\n}\n\nfunction htmlPrefilter(html) {\n var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi;\n return html.replace(rxhtmlTag, \"<$1>\");\n}\n\n/**\n * 解析字符串为 dom \n * @param {string} str 字符串\n * @returns {HTMLNode} 解析后的 DOM \n */\nfunction parseHTML(str) {\n str = str || ' ';\n var parent = document.createElement('div');\n parent.innerHTML = htmlPrefilter(trim(str));\n var childNodes = toArray(parent.childNodes);\n //先 clone 一份再通过 innerHTML 清空\n //否则 IE9 下,清空时会导不通过返回的 DOM 没有子结点\n // if (firstNode) firstNode = firstNode.cloneNode(true);\n // win._NPH_.innerHTML = '';\n each(childNodes, function (index, childNode) {\n parent.removeChild(childNode);\n });\n return childNodes;\n}\n\nexports.noop = noop;\nexports.toString = toString;\nexports.getType = getType;\nexports.isNull = isNull;\nexports.trim = trim;\nexports.replace = replace;\nexports.startWith = startWith;\nexports.contains = contains;\nexports.endWith = endWith;\nexports.has = has;\nexports.hasProperty = hasProperty;\nexports.isFunction = isFunction;\nexports.isAsyncFunction = isAsyncFunction;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isString = isString;\nexports.isNumber = isNumber;\nexports.isBoolean = isBoolean;\nexports.isElement = isElement;\nexports.isText = isText;\nexports.isObject = isObject;\nexports.isArray = isArray;\nexports.isDate = isDate;\nexports.isRegexp = isRegexp;\nexports.toArray = toArray;\nexports.toDate = toDate;\nexports.each = each;\nexports.formatDate = formatDate;\nexports.copy = copy;\nexports.clone = clone;\nexports.mix = mix;\nexports.final = final;\nexports.keys = keys;\nexports.create = create;\nexports.setPrototypeOf = setPrototypeOf;\nexports.getPrototypeOf = getPrototypeOf;\nexports.deepEqual = deepEqual;\nexports.fromTo = fromTo;\nexports.newGuid = newGuid;\nexports.map = map;\nexports.setByPath = setByPath;\nexports.getByPath = getByPath;\nexports.unique = unique;\nexports.getFunctionArgumentNames = getFunctionArgumentNames;\nexports.short = short;\nexports.firstUpper = firstUpper;\nexports.escapeRegExp = escapeRegExp;\nexports.toCamelCase = toCamelCase;\nexports.toSplitCase = toSplitCase;\nexports.htmlPrefilter = htmlPrefilter;\nexports.parseHTML = parseHTML;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ntils/lib/index.js\n// module id = 40\n// module chunks = 0","module.exports = {\"en-US\":{\"hello\":\"Hello {name}!qqq\"},\"zh-CN\":{\"hello\":\"你好,{name}!\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// /private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/e9961eeb2ecefc911d19f0ad8ca86bae.json\n// module id = 41\n// module chunks = 0","module.exports = {\"key\":\"__locale\",\"jsx\":true}\n\n\n//////////////////\n// WEBPACK FOOTER\n// /private/var/folders/7d/bf741r6j1psb64d_yd0zn_mh0000gn/T/f97f6fb082b029056e5705531b561685.json\n// module id = 42\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/packages/dn-middleware-i18n/lib/i18n.js b/packages/dn-middleware-i18n/lib/i18n.js index 14dc6b86..d47857c6 100644 --- a/packages/dn-middleware-i18n/lib/i18n.js +++ b/packages/dn-middleware-i18n/lib/i18n.js @@ -62,6 +62,11 @@ i18n.getLocale = function (name) { if (!name) return values || {}; if (values && !this.isWhole(values)) return values; var locales = values || $locales; + utils.each(locales, function (key) { + var value = locales[key]; + delete locales[key]; + locales[key.replace('_', '-')] = value; + }); return locales[name] || locales[name.split('-')[0]] || utils.each(locales, function (key) { From 0ffec35af077c93c71554e133466dae859daaa90 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Tue, 26 Nov 2019 17:10:49 +0800 Subject: [PATCH 02/14] dn-middleware-i18n@1.2. --- packages/dn-middleware-i18n/package-lock.json | 2 +- packages/dn-middleware-i18n/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dn-middleware-i18n/package-lock.json b/packages/dn-middleware-i18n/package-lock.json index d0db62cb..bbefdc42 100644 --- a/packages/dn-middleware-i18n/package-lock.json +++ b/packages/dn-middleware-i18n/package-lock.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-i18n", - "version": "1.2.2", + "version": "1.2.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/dn-middleware-i18n/package.json b/packages/dn-middleware-i18n/package.json index 0c791b79..5f7d0558 100644 --- a/packages/dn-middleware-i18n/package.json +++ b/packages/dn-middleware-i18n/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-i18n", - "version": "1.2.2", + "version": "1.2.3", "description": "", "main": "./lib/index.js", "scripts": { From 9dcfa3d757e11d88283029793dd79e4363ba7a79 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 15 Apr 2020 14:59:39 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20e2e=20=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dn-middleware-e2e/lib/setup.js | 84 +- packages/dn-middleware-e2e/lib/tsconfig.json | 19 + packages/dn-middleware-e2e/package-lock.json | 1111 ++++++++++++++++++ packages/dn-middleware-e2e/package.json | 17 +- 4 files changed, 1148 insertions(+), 83 deletions(-) create mode 100644 packages/dn-middleware-e2e/lib/tsconfig.json create mode 100644 packages/dn-middleware-e2e/package-lock.json diff --git a/packages/dn-middleware-e2e/lib/setup.js b/packages/dn-middleware-e2e/lib/setup.js index 09b8c390..1e0c0d43 100644 --- a/packages/dn-middleware-e2e/lib/setup.js +++ b/packages/dn-middleware-e2e/lib/setup.js @@ -1,74 +1,18 @@ -require('babel-core/register')({ - babelrc: true, - presets: [ - require.resolve('babel-preset-es2015'), - require.resolve('babel-preset-stage-0') - ], - plugins: [ - require.resolve('babel-plugin-add-module-exports'), - require.resolve('babel-plugin-typecheck'), - require.resolve('babel-plugin-transform-decorators-legacy') - ] +require('ts-node').register({ + project: require.resolve('./tsconfig.json'), }); -require('babel-polyfill'); -//-------------------------- - -const utils = require('ntils'); -const webdriver = require('selenium-webdriver'); -const phantomjs = require('phantomjs-prebuilt'); -//const chromedriver = require('chromedriver'); -const fs = require('fs'); -const chai = require('chai'); -const assert = require('assert'); - -const BROWSER = process.env.WEB_DRIVER_BROWSER; -let driver; - -if (BROWSER && BROWSER != 'none') { - require('selenium-webdriver/chrome') - require('chromedriver') - driver = new webdriver.Builder(). - withCapabilities(webdriver.Capabilities.chrome()). - build(); -} else { - let capabilities = webdriver.Capabilities.phantomjs(); - capabilities.set('phantomjs.binary.path', phantomjs.path); - driver = new webdriver.Builder(). - withCapabilities(capabilities). - build(); -} - -driver.manage().window().maximize(); - -global.driver = driver; -global.by = webdriver.By; -global.By = global.by; -global.until = webdriver.until; -global.open = driver.get.bind(driver); -global.findElement = driver.findElement.bind(driver); -global.wait = driver.wait.bind(driver); - -by.text = function (text) { - return by.xpath(`//*[text()="${text}"]`); -}; - -global.assert = assert; -global.chai = chai; -global.expect = chai.expect; -global.utils = utils; - -function writeFile(filename, buffer, encodeing) { - return new Promise((resolve, reject) => { - require('fs').writeFile(filename, buffer, encodeing, function (err) { - if (err) return reject(err); - resolve(filename); - }); +const mocha = require('mocha'); +const puppeteer = require('puppeteer'); + +mocha.before(async () => { + global.browser = await puppeteer.launch({ + headless: true, + slowMo: 0, + defaultViewport: { + width: 1000, + height: 600, + } }); -} +}); -driver.writeFile = writeFile; -driver.saveScreenshot = async function (filename) { - let image = await driver.takeScreenshot(); - await writeFile(filename, image, 'base64'); -}; \ No newline at end of file diff --git a/packages/dn-middleware-e2e/lib/tsconfig.json b/packages/dn-middleware-e2e/lib/tsconfig.json new file mode 100644 index 00000000..0422fefe --- /dev/null +++ b/packages/dn-middleware-e2e/lib/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "moduleResolution": "node", + "noImplicitAny": true, + "module": "CommonJS", + "target": "es5", + "jsx": "react", + "noUnusedLocals": true, + "esModuleInterop": true, + "emitDecoratorMetadata": false, + "experimentalDecorators": true, + "resolveJsonModule": true, + "importHelpers": true, + "lib": [ + "dom", + "esnext" + ] + } +} \ No newline at end of file diff --git a/packages/dn-middleware-e2e/package-lock.json b/packages/dn-middleware-e2e/package-lock.json new file mode 100644 index 00000000..447a8eda --- /dev/null +++ b/packages/dn-middleware-e2e/package-lock.json @@ -0,0 +1,1111 @@ +{ + "name": "dn-middleware-e2e", + "version": "1.0.6", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/mime-types": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/@types/mime-types/download/@types/mime-types-2.1.0.tgz", + "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=" + }, + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-5.1.1.tgz", + "integrity": "sha1-6Ps/JClZ20TWO+Zl23qOc5U3oyw=" + }, + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.3.tgz", + "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=" + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npm.taobao.org/arg/download/arg-4.1.3.tgz?cache=0&sync_timestamp=1580666454632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farg%2Fdownload%2Farg-4.1.3.tgz", + "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1585815752864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.3.0.tgz?cache=0&sync_timestamp=1584609518131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.3.0.tgz", + "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "3.2.6", + "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "requires": { + "object-keys": "^1.0.12" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.5.tgz?cache=0&sync_timestamp=1584908910574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.5.tgz", + "integrity": "sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk=", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/extract-zip/download/extract-zip-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextract-zip%2Fdownload%2Fextract-zip-1.7.0.tgz", + "integrity": "sha1-VWzDrp339FLEk6DPtRzDAneUCSc=", + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1585933975115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "http://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/flat/download/flat-4.1.0.tgz", + "integrity": "sha1-CQvsiwXjnLowl0fx1YjwTbr5jbI=", + "requires": { + "is-buffer": "~2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.2.tgz", + "integrity": "sha1-TAofs0vGjlQ7S4Kp7Dkr+9qECAU=", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz", + "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "requires": { + "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" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz?cache=0&sync_timestamp=1584836110944&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "requires": { + "is-glob": "^4.0.1" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "http://registry.npm.taobao.org/growl/download/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=" + }, + "has": { + "version": "1.0.3", + "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" + }, + "he": { + "version": "1.2.0", + "resolved": "http://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-4.0.0.tgz", + "integrity": "sha1-cCtx+1UgoTKmbeH2dUHZ5iFU2Cs=", + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz?cache=0&sync_timestamp=1569905349018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", + "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=" + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", + "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296281714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-3.0.0.tgz", + "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", + "requires": { + "chalk": "^2.4.2" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz", + "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=" + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=" + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", + "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", + "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", + "requires": { + "mime-db": "1.43.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "mkdirp": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.3.tgz?cache=0&sync_timestamp=1585933975115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.3.tgz", + "integrity": "sha1-WlFLcXklkoeVKIHpRBDsVGVln4w=", + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/mocha/download/mocha-7.1.1.tgz", + "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", + "requires": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.3", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + }, + "node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/node-environment-flags/download/node-environment-flags-1.0.6.tgz", + "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", + "requires": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", + "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" + }, + "object.assign": { + "version": "4.1.0", + "resolved": "http://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1586101311914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "pend": { + "version": "1.2.0", + "resolved": "http://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + }, + "progress": { + "version": "2.0.3", + "resolved": "http://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/proxy-from-env/download/proxy-from-env-1.1.0.tgz", + "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=" + }, + "puppeteer": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/puppeteer/download/puppeteer-2.1.1.tgz", + "integrity": "sha1-zN5HwqaI8TGIO1Dy1pe9JRidon4=", + "requires": { + "@types/mime-types": "^2.1.0", + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^4.0.0", + "mime": "^2.0.3", + "mime-types": "^2.1.25", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "requires": { + "picomatch": "^2.0.4" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1562349888578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz", + "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimleft": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.2.tgz?cache=0&sync_timestamp=1585557078498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimleft%2Fdownload%2Fstring.prototype.trimleft-2.1.2.tgz", + "integrity": "sha1-RAiqLl1t3QyagHObCH+8BnwDs8w=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimstart": "^1.0.0" + } + }, + "string.prototype.trimright": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.2.tgz", + "integrity": "sha1-x28c7zDyG7rYr+uNsVEUls+w8qM=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5", + "string.prototype.trimend": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.0.0.tgz", + "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "8.8.2", + "resolved": "https://registry.npm.taobao.org/ts-node/download/ts-node-8.8.2.tgz?cache=0&sync_timestamp=1586051126310&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-node%2Fdownload%2Fts-node-8.8.2.tgz", + "integrity": "sha1-CznmkL7jnqURFROp0rzcC8EhdV8=", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz", + "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" + } + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "3.8.3", + "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.8.3.tgz", + "integrity": "sha1-QJ64VE6gM1cRIFhp7EWKsQnuEGE=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "http://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1584344069946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/yargs-unparser/download/yargs-unparser-1.6.0.tgz?cache=0&sync_timestamp=1564464421644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-unparser%2Fdownload%2Fyargs-unparser-1.6.0.tgz", + "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "http://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yn/download/yn-3.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyn%2Fdownload%2Fyn-3.1.1.tgz", + "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=" + } + } +} diff --git a/packages/dn-middleware-e2e/package.json b/packages/dn-middleware-e2e/package.json index 59f831db..26bf4500 100644 --- a/packages/dn-middleware-e2e/package.json +++ b/packages/dn-middleware-e2e/package.json @@ -9,18 +9,9 @@ "author": "", "license": "ISC", "dependencies": { - "babel-core": "^6.25.0", - "babel-plugin-add-module-exports": "^0.2.1", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-plugin-typecheck": "^3.9.0", - "babel-polyfill": "^6.23.0", - "babel-preset-es2015": "^6.24.1", - "babel-preset-stage-0": "^6.24.1", - "chai": "^4.1.1", - "chromedriver": "^2.31.0", - "mocha": "^3.5.0", - "ntils": "^2.1.2", - "phantomjs-prebuilt": "^2.1.14", - "selenium-webdriver": "^3.5.0" + "mocha": "^7.1.1", + "puppeteer": "^2.1.1", + "ts-node": "^8.8.2", + "typescript": "^3.8.3" } } From b8ba41c00e7068f92b3a1051c74ed485cb9e9f8d Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 27 May 2020 19:44:23 +0800 Subject: [PATCH 04/14] =?UTF-8?q?tslint=20=E4=B8=8D=E5=BC=BA=E5=88=B6=20in?= =?UTF-8?q?terface=20=E7=94=A8=20I=20=E5=BC=80=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/tslint-config-dawn/package.json | 2 +- packages/tslint-config-dawn/tslint.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tslint-config-dawn/package.json b/packages/tslint-config-dawn/package.json index 14594757..70ee4b48 100644 --- a/packages/tslint-config-dawn/package.json +++ b/packages/tslint-config-dawn/package.json @@ -1,6 +1,6 @@ { "name": "tslint-config-dawn", - "version": "1.0.2", + "version": "1.0.3", "description": "dawn tslint rules", "main": "tslint.json", "scripts": { diff --git a/packages/tslint-config-dawn/tslint.json b/packages/tslint-config-dawn/tslint.json index 4f7ee8d6..1ba85b1a 100644 --- a/packages/tslint-config-dawn/tslint.json +++ b/packages/tslint-config-dawn/tslint.json @@ -52,7 +52,7 @@ 2 ], "interface-name": [ - true, + false, "always-prefix" ], "interface-over-type-literal": true, From d860e3737e66766ce772d7c8fe78c7a2d70d5703 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 27 May 2020 19:55:53 +0800 Subject: [PATCH 05/14] =?UTF-8?q?lint=20=E4=B8=AD=E9=97=B4=E4=BB=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20override=20=E9=80=89=E9=A1=B9,=E4=BB=85?= =?UTF-8?q?=E5=BD=93=E4=B8=BA=20false=20=E6=98=AF=E4=B8=8D=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dn-middleware-lint/lib/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/dn-middleware-lint/lib/index.js b/packages/dn-middleware-lint/lib/index.js index f9389acf..8b0c93f9 100644 --- a/packages/dn-middleware-lint/lib/index.js +++ b/packages/dn-middleware-lint/lib/index.js @@ -30,6 +30,7 @@ module.exports = function (opts) { opts.global = opts.global || 'window,$,jQuery'; opts.ignore = opts.ignore || []; opts.realtime = opts.realtime || false; + opts.override = opts.override !== false; const eslint = this.utils.findCommand(__dirname, 'eslint'); const rulesFile = path.resolve(__dirname, './.eslintrc.yml'); @@ -73,7 +74,9 @@ module.exports = function (opts) { // 向项目写入 yaml 配置 const yamlFile = path.normalize(`${this.cwd}/.eslintrc.yml`); const yamlText = yaml.safeDump(rules); - await this.utils.writeFile(yamlFile, yamlText); + if (opts.override || !fs.existsSync(yamlFile)) { + await this.utils.writeFile(yamlFile, yamlText); + } // 不再向项目写入 json 配置覆盖 // const jsonFile = path.normalize(`${this.cwd}/.eslintrc.json`); From c2f55da27d14aee6670b5bebfbc0a844f2d159f4 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 27 May 2020 19:56:11 +0800 Subject: [PATCH 06/14] =?UTF-8?q?lint=20=E4=B8=AD=E9=97=B4=E4=BB=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20override=20=E9=80=89=E9=A1=B9,=E4=BB=85?= =?UTF-8?q?=E5=BD=93=E4=B8=BA=20false=20=E6=98=AF=E4=B8=8D=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dn-middleware-lint/package-lock.json | 2 +- packages/dn-middleware-lint/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dn-middleware-lint/package-lock.json b/packages/dn-middleware-lint/package-lock.json index 9ee6cf58..3e3b7207 100644 --- a/packages/dn-middleware-lint/package-lock.json +++ b/packages/dn-middleware-lint/package-lock.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-lint", - "version": "2.2.3", + "version": "2.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/dn-middleware-lint/package.json b/packages/dn-middleware-lint/package.json index 9d4c9c58..2ddddfe7 100644 --- a/packages/dn-middleware-lint/package.json +++ b/packages/dn-middleware-lint/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-lint", - "version": "2.2.3", + "version": "2.2.4", "description": "", "main": "./lib/index.js", "scripts": { From ac128d1a416beb2e613d8b55cca810e5c818701b Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 1 Jul 2020 14:17:06 +0800 Subject: [PATCH 07/14] dn-middleware-e2e@2.0.0 --- packages/dn-middleware-e2e/.dawn/pipe.yml | 15 +- packages/dn-middleware-e2e/.dawn/rc.yml | 2 + packages/dn-middleware-e2e/.eslintrc.json | 139 ---- packages/dn-middleware-e2e/.eslintrc.yml | 103 --- packages/dn-middleware-e2e/lib/index.js | 71 +- packages/dn-middleware-e2e/lib/setup.js | 17 +- packages/dn-middleware-e2e/package-lock.json | 632 +++++++----------- packages/dn-middleware-e2e/package.json | 14 +- packages/dn-middleware-e2e/test/baidu.e2e.ts | 26 + .../dn-middleware-e2e/test/e2e/baidu.test.js | 14 - .../dn-middleware-e2e/{lib => }/tsconfig.json | 2 + 11 files changed, 333 insertions(+), 702 deletions(-) create mode 100644 packages/dn-middleware-e2e/.dawn/rc.yml delete mode 100644 packages/dn-middleware-e2e/.eslintrc.json delete mode 100644 packages/dn-middleware-e2e/.eslintrc.yml create mode 100644 packages/dn-middleware-e2e/test/baidu.e2e.ts delete mode 100644 packages/dn-middleware-e2e/test/e2e/baidu.test.js rename packages/dn-middleware-e2e/{lib => }/tsconfig.json (89%) diff --git a/packages/dn-middleware-e2e/.dawn/pipe.yml b/packages/dn-middleware-e2e/.dawn/pipe.yml index f16df5ba..5e82d3b8 100644 --- a/packages/dn-middleware-e2e/.dawn/pipe.yml +++ b/packages/dn-middleware-e2e/.dawn/pipe.yml @@ -1,15 +1,2 @@ -init: - - name: tnpm-install - - name: pkginfo - dev: - - name: $local - location: ./lib/index.js - -#中间工程并非要发布到 CDN -#不放到 aliyun group 下也不会发到 CND -#只是中间件的版本管理是基于 tag 的,恰好使用 -publish: - - name: shell - script: - - tnpm pu \ No newline at end of file + - name: ./lib/index.js \ No newline at end of file diff --git a/packages/dn-middleware-e2e/.dawn/rc.yml b/packages/dn-middleware-e2e/.dawn/rc.yml new file mode 100644 index 00000000..ba6fc2db --- /dev/null +++ b/packages/dn-middleware-e2e/.dawn/rc.yml @@ -0,0 +1,2 @@ +registry: https://registry.npm.taobao.org +server: https://query.aliyun.com/rest/dc.service.cli?team=general&conf= diff --git a/packages/dn-middleware-e2e/.eslintrc.json b/packages/dn-middleware-e2e/.eslintrc.json deleted file mode 100644 index 57388716..00000000 --- a/packages/dn-middleware-e2e/.eslintrc.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "parser": "babel-eslint", - "plugins": [ - "react", - "html" - ], - "env": { - "es6": true, - "browser": true, - "commonjs": true - }, - "extends": "eslint:recommended", - "ecmaFeatures": { - "jsx": true, - "modules": true, - "experimentalObjectRestSpread": true - }, - "parserOptions": { - "ecmaVersion": 6, - "sourceType\"": "module", - "ecmaFeatures": { - "jsx": true, - "modules": true, - "experimentalObjectRestSpread": true - } - }, - "rules": { - "strict": [ - 0 - ], - "indent": [ - 2, - 2, - { - "SwitchCase": 1 - } - ], - "quotes": [ - 2, - "single" - ], - "linebreak-style": [ - 2, - "unix" - ], - "semi": [ - 2, - "always" - ], - "no-multi-spaces": [ - 2 - ], - "no-self-compare": [ - 2 - ], - "max-depth": [ - 2, - 4 - ], - "max-nested-callbacks": [ - 2, - 4 - ], - "max-params": [ - 2, - 4 - ], - "max-statements": [ - 2, - 25 - ], - "max-statements-per-line": [ - 2 - ], - "max-len": [ - 2, - 120 - ], - "multiline-ternary": [ - 0 - ], - "callback-return": [ - 2 - ], - "handle-callback-err": [ - 2 - ], - "array-bracket-spacing": [ - 2 - ], - "no-const-assign": [ - 2 - ], - "no-return-assign": [ - 2 - ], - "no-inner-declarations": [ - 2 - ], - "no-var": [ - 2 - ], - "no-console": [ - 1 - ], - "no-lonely-if": [ - 2 - ], - "require-jsdoc": [ - 0, - { - "require": { - "FunctionDeclaration": true, - "MethodDefinition": true, - "ClassDeclaration": true - } - } - ], - "valid-jsdoc": [ - 2 - ], - "comma-dangle": [ - 2, - "never" - ], - "no-undef": [ - 2 - ], - "react/jsx-uses-react": [ - 2 - ], - "react/jsx-uses-vars": [ - 2 - ], - "react/jsx-no-undef": [ - 2 - ] - } -} \ No newline at end of file diff --git a/packages/dn-middleware-e2e/.eslintrc.yml b/packages/dn-middleware-e2e/.eslintrc.yml deleted file mode 100644 index 0f4d5335..00000000 --- a/packages/dn-middleware-e2e/.eslintrc.yml +++ /dev/null @@ -1,103 +0,0 @@ -parser: babel-eslint - -plugins: - - react - - html - -env: - es6: true - browser: true - commonjs: true - -extends: 'eslint:recommended' - -ecmaFeatures: - jsx: true - modules: true - experimentalObjectRestSpread: true - -parserOptions: - ecmaVersion: 6 - sourceType": module - ecmaFeatures: - jsx: true - modules: true - experimentalObjectRestSpread: true - -rules: - strict: - - 0 - indent: - - 2 - - 2 - - SwitchCase: 1 - quotes: - - 2 - - single - linebreak-style: - - 2 - - unix - semi: - - 2 - - always - no-multi-spaces: - - 2 - no-self-compare: - - 2 - max-depth: - - 2 - - 4 - max-nested-callbacks: - - 2 - - 4 - max-params: - - 2 - - 4 - max-statements: - - 2 - - 25 - max-statements-per-line: - - 2 - max-len: - - 2 - - 120 - multiline-ternary: - - 0 - callback-return: - - 2 - handle-callback-err: - - 2 - array-bracket-spacing: - - 2 - no-const-assign: - - 2 - no-return-assign: - - 2 - no-inner-declarations: - - 2 - no-var: - - 2 - no-console: - - 1 - no-lonely-if: - - 2 - require-jsdoc: - - 0 - - require: - FunctionDeclaration: true - MethodDefinition: true - ClassDeclaration: true - valid-jsdoc: - - 2 - comma-dangle: - - 2 - - never - no-undef: - - 2 - react/jsx-uses-react: - - 2 - react/jsx-uses-vars: - - 2 - react/jsx-no-undef: - - 2 - \ No newline at end of file diff --git a/packages/dn-middleware-e2e/lib/index.js b/packages/dn-middleware-e2e/lib/index.js index 7f59a11d..b4ac7502 100644 --- a/packages/dn-middleware-e2e/lib/index.js +++ b/packages/dn-middleware-e2e/lib/index.js @@ -1,35 +1,50 @@ const path = require('path'); -const fs = require('fs'); - -/** - * 这是一个标准的中间件工程模板 - * @param {object} opts cli 传递过来的参数对象 (在 pipe 中的配置) - * @return {AsyncFunction} 中间件函数 - */ -module.exports = function (opts) { - - opts.files = opts.files || './test/e2e/**/*.js'; - opts.timeout = opts.timeout || 10000; - opts.browser = opts.browser || 'none'; - - //外层函数的用于接收「参数对象」 - //必须返回一个中间件处理函数 - return async function (next) { - - let mocha = this.utils.findCommand(__dirname, 'mocha'); - let setup = path.resolve(__dirname, './setup.js'); - - this.console.info('开始执行 E2E 测试...'); - //tnpm i babel-runtime - /* eslint-disable */ - await this.utils.exec(` - WEB_DRIVER_BROWSER=${opts.browser} ${mocha} -r ${setup} -t ${opts.timeout} -u bdd ${opts.files} +const { isArray } = require('util'); + +module.exports = (opts) => { + + opts = Object.assign({ + files: './test/**/*.e2e.{ts,js}', + timeout: 30000, + puppeteer: { + download: 'https://npm.taobao.org/mirrors' + }, + }, opts); + + const checkInstall = async (ctx, pkgs, flag) => { + if (!pkgs) return; + pkgs = isArray(pkgs) ? pkgs : [pkgs] + if (!flag) flag = { 'save-dev': true }; + for (let pkg of pkgs) { + try { + require.resolve(`${pkg}/package.json`); + } catch (err) { + await ctx.mod.install(pkg, { flag }); + } + } + } + + return async (next, ctx) => { + + ctx.console.info('检测及安装 E2E 依赖...'); + await checkInstall(ctx, ['@types/mocha', 'tslib']); + if (opts.puppeteer) { + await ctx.mod.exec(`config set puppeteer_download_host=${opts.puppeteer.download}`); + await checkInstall(ctx, '@types/puppeteer'); + await checkInstall(ctx, 'puppeteer', { 'no-save': true }); + } + ctx.console.info('完成'); + + const mocha = ctx.utils.findCommand(__dirname, 'mocha'); + const setup = path.resolve(__dirname, './setup.js'); + + ctx.console.info('开始执行 E2E 测试...'); + await ctx.utils.exec(` + ${mocha} -r ${setup} -t ${opts.timeout} --exit --parallel -u bdd ${opts.files} `); - /* eslint-enable */ - this.console.info('完成'); + ctx.console.info('完成'); next(); - }; }; \ No newline at end of file diff --git a/packages/dn-middleware-e2e/lib/setup.js b/packages/dn-middleware-e2e/lib/setup.js index 1e0c0d43..b988c0e8 100644 --- a/packages/dn-middleware-e2e/lib/setup.js +++ b/packages/dn-middleware-e2e/lib/setup.js @@ -1,18 +1,5 @@ require('ts-node').register({ - project: require.resolve('./tsconfig.json'), -}); - -const mocha = require('mocha'); -const puppeteer = require('puppeteer'); - -mocha.before(async () => { - global.browser = await puppeteer.launch({ - headless: true, - slowMo: 0, - defaultViewport: { - width: 1000, - height: 600, - } - }); + project: require.resolve('../tsconfig.json'), }); +global.puppeteer = require('puppeteer'); diff --git a/packages/dn-middleware-e2e/package-lock.json b/packages/dn-middleware-e2e/package-lock.json index 447a8eda..ee9e0005 100644 --- a/packages/dn-middleware-e2e/package-lock.json +++ b/packages/dn-middleware-e2e/package-lock.json @@ -4,20 +4,31 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/mime-types": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/@types/mime-types/download/@types/mime-types-2.1.0.tgz", - "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=" + "@types/mocha": { + "version": "7.0.2", + "resolved": "https://registry.npm.taobao.org/@types/mocha/download/@types/mocha-7.0.2.tgz", + "integrity": "sha1-sX8Wz5M1l+ENbXjq4yUeaSzosM4=", + "dev": true }, - "agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-5.1.1.tgz", - "integrity": "sha1-6Ps/JClZ20TWO+Zl23qOc5U3oyw=" + "@types/node": { + "version": "14.0.14", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.0.14.tgz?cache=0&sync_timestamp=1592987751085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.14.tgz", + "integrity": "sha1-JKC1lZ8WrBQa6wxbPNehW3xky84=", + "dev": true + }, + "@types/puppeteer": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/@types/puppeteer/download/@types/puppeteer-3.0.1.tgz", + "integrity": "sha1-BT7CD6zBYrJaZHha/8yqPlgXxgc=", + "dev": true, + "requires": { + "@types/node": "*" + } }, "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-3.2.3.tgz", - "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=" + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-colors%2Fdownload%2Fansi-colors-4.1.1.tgz", + "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=" }, "ansi-regex": { "version": "3.0.0", @@ -54,10 +65,16 @@ "sprintf-js": "~1.0.2" } }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" + "array.prototype.map": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array.prototype.map/download/array.prototype.map-1.0.2.tgz", + "integrity": "sha1-mkFZ9BZFiiPpSDB43hEGsu9o+Ow=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.4" + } }, "balanced-match": { "version": "1.0.0", @@ -65,9 +82,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz", - "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=" + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=" }, "brace-expansion": { "version": "1.1.11", @@ -91,11 +108,6 @@ "resolved": "http://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz", "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=" }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "http://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, "buffer-from": { "version": "1.1.1", "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", @@ -108,7 +120,7 @@ }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1585815752864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz", "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "requires": { "ansi-styles": "^3.2.1", @@ -127,18 +139,18 @@ } }, "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.3.0.tgz?cache=0&sync_timestamp=1584609518131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.3.0.tgz", - "integrity": "sha1-EsBxRmjFWAD2WeJi1JYql/r1VKY=", + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.3.1.tgz", + "integrity": "sha1-yE5bPRjZpNd1WP70ZrG/FrvrNFA=", "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.1", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" + "readdirp": "~3.3.0" } }, "cliui": { @@ -194,25 +206,9 @@ "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, "debug": { "version": "3.2.6", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&sync_timestamp=1589881689076&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "requires": { "ms": "^2.1.1" @@ -232,9 +228,9 @@ } }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz", + "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" }, "emoji-regex": { "version": "7.0.3", @@ -242,21 +238,40 @@ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.5.tgz?cache=0&sync_timestamp=1584908910574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.5.tgz", - "integrity": "sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk=", + "version": "1.17.6", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz?cache=0&sync_timestamp=1592109129612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", + "integrity": "sha1-kUIHFweFeyysx7iey2cDFsPi1So=", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/es-array-method-boxes-properly/download/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha1-hz8+hEGN5O4Zxb51KZCy5EcY0J4=" + }, + "es-get-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/es-get-iterator/download/es-get-iterator-1.1.0.tgz", + "integrity": "sha1-u5itnW1jsxqs3I+J1dDuV7y1tMg=", + "requires": { + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" } }, "es-to-primitive": { @@ -279,48 +294,6 @@ "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/extract-zip/download/extract-zip-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fextract-zip%2Fdownload%2Fextract-zip-1.7.0.tgz", - "integrity": "sha1-VWzDrp339FLEk6DPtRzDAneUCSc=", - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1585933975115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "requires": { - "pend": "~1.2.0" - } - }, "fill-range": { "version": "7.0.1", "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", @@ -330,11 +303,12 @@ } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -351,9 +325,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.2.tgz", - "integrity": "sha1-TAofs0vGjlQ7S4Kp7Dkr+9qECAU=", + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", "optional": true }, "function-bind": { @@ -367,9 +341,9 @@ "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -415,25 +389,6 @@ "resolved": "http://registry.npm.taobao.org/he/download/he-1.2.0.tgz", "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" }, - "https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-4.0.0.tgz", - "integrity": "sha1-cCtx+1UgoTKmbeH2dUHZ5iFU2Cs=", - "requires": { - "agent-base": "5", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "inflight": { "version": "1.0.6", "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", @@ -448,6 +403,11 @@ "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=" + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", @@ -458,13 +418,13 @@ }, "is-buffer": { "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz?cache=0&sync_timestamp=1569905349018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.4.tgz", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz?cache=0&sync_timestamp=1588707106955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.4.tgz", "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", - "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=" + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz", + "integrity": "sha1-gzNlYLVKOONeOi33r9BFTWkUaLs=" }, "is-date-object": { "version": "1.0.2", @@ -489,19 +449,34 @@ "is-extglob": "^2.1.1" } }, + "is-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-map/download/is-map-2.0.1.tgz", + "integrity": "sha1-Ug2vxDB7uOvDO4E95c58lADWRKE=" + }, "is-number": { "version": "7.0.0", "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", - "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz", + "integrity": "sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8=", "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, + "is-set": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/is-set/download/is-set-2.0.1.tgz", + "integrity": "sha1-0WBK/asXJJhtMAkVdfVJRdp+X0M=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz", + "integrity": "sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y=" + }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296281714&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", @@ -511,18 +486,32 @@ } }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.5.tgz?cache=0&sync_timestamp=1562592096220&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisarray%2Fdownload%2Fisarray-2.0.5.tgz", + "integrity": "sha1-ivHkwSISRMxiRZ+vOJQNTmRKVyM=" }, "isexe": { "version": "2.0.0", "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "iterate-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/iterate-iterator/download/iterate-iterator-1.0.1.tgz", + "integrity": "sha1-FpOnaMHd15yWkFFFlFPwgv6C6fY=" + }, + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/iterate-value/download/iterate-value-1.0.2.tgz", + "integrity": "sha1-k1EVvTfQBqUgRlNevI0H6ckzf1c=", + "requires": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + } + }, "js-yaml": { "version": "3.13.1", - "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.13.1.tgz", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz?cache=0&sync_timestamp=1590172246873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.13.1.tgz", "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "requires": { "argparse": "^1.0.7", @@ -530,12 +519,11 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -545,7 +533,7 @@ }, "log-symbols": { "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-3.0.0.tgz", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz", "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", "requires": { "chalk": "^2.4.2" @@ -556,24 +544,6 @@ "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz", "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=" }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz", - "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=" - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", - "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=" - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", - "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", - "requires": { - "mime-db": "1.43.0" - } - }, "minimatch": { "version": "3.0.4", "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", @@ -582,63 +552,42 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" - }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.3.tgz?cache=0&sync_timestamp=1585933975115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.3.tgz", - "integrity": "sha1-WlFLcXklkoeVKIHpRBDsVGVln4w=", - "requires": { - "minimist": "^1.2.5" - } - }, "mocha": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/mocha/download/mocha-7.1.1.tgz", - "integrity": "sha1-ifuzDQlCmEWxu4k6gwv1dxBJpEE=", + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/mocha/download/mocha-8.0.1.tgz", + "integrity": "sha1-/gHwUwNi3ycaqPmVEER7w4uI2O0=", "requires": { - "ansi-colors": "3.2.3", + "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.3.0", + "chokidar": "3.3.1", "debug": "3.2.6", - "diff": "3.5.0", + "diff": "4.0.2", "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", + "find-up": "4.1.0", + "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "3.13.1", "log-symbols": "3.0.0", "minimatch": "3.0.4", - "mkdirp": "0.5.3", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", + "ms": "2.1.2", "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", + "promise.allsettled": "1.0.2", + "serialize-javascript": "3.0.0", + "strip-json-comments": "3.0.1", + "supports-color": "7.1.0", + "which": "2.0.2", "wide-align": "1.1.3", + "workerpool": "6.0.0", "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "1.6.0" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" - }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/node-environment-flags/download/node-environment-flags-1.0.6.tgz", - "integrity": "sha1-owrBNiH299Z0JgpU3t4EjDmCwIg=", - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" }, "normalize-path": { "version": "3.0.0", @@ -646,9 +595,9 @@ "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", - "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=" + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545089271&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", + "integrity": "sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=" }, "object-keys": { "version": "1.1.1", @@ -666,15 +615,6 @@ "object-keys": "^1.0.11" } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, "once": { "version": "1.4.0", "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", @@ -685,18 +625,18 @@ }, "p-limit": { "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1586101311914&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "version": "4.1.0", + "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -705,87 +645,38 @@ "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" }, "path-exists": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "4.0.0", + "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=" }, "path-is-absolute": { "version": "1.0.1", "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "pend": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/pend/download/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=" }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprocess-nextick-args%2Fdownload%2Fprocess-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" - }, - "progress": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=" - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/proxy-from-env/download/proxy-from-env-1.1.0.tgz", - "integrity": "sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=" - }, - "puppeteer": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/puppeteer/download/puppeteer-2.1.1.tgz", - "integrity": "sha1-zN5HwqaI8TGIO1Dy1pe9JRidon4=", - "requires": { - "@types/mime-types": "^2.1.0", - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^4.0.0", - "mime": "^2.0.3", - "mime-types": "^2.1.25", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581622984924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "promise.allsettled": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/promise.allsettled/download/promise.allsettled-1.0.2.tgz", + "integrity": "sha1-1m94+7YA6D6GPYk+mLPUN2qcR8k=", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" } }, "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.2.0.tgz", - "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.3.0.tgz", + "integrity": "sha1-mERY0ToeQuLp9YQbEp4WLzaa/xc=", "requires": { - "picomatch": "^2.0.4" + "picomatch": "^2.0.7" } }, "require-directory": { @@ -798,23 +689,10 @@ "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1562349888578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=" + "serialize-javascript": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.0.0.tgz?cache=0&sync_timestamp=1591623621018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-3.0.0.tgz", + "integrity": "sha1-SS5Imi13t7gErTkaX12XhwlSVI4=" }, "set-blocking": { "version": "2.0.0", @@ -827,9 +705,9 @@ "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz", - "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -858,26 +736,6 @@ "es-abstract": "^1.17.5" } }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.2.tgz?cache=0&sync_timestamp=1585557078498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimleft%2Fdownload%2Fstring.prototype.trimleft-2.1.2.tgz", - "integrity": "sha1-RAiqLl1t3QyagHObCH+8BnwDs8w=", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha1-x28c7zDyG7rYr+uNsVEUls+w8qM=", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, "string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz", @@ -887,14 +745,6 @@ "es-abstract": "^1.17.5" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280549549&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", @@ -904,16 +754,23 @@ } }, "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz", + "integrity": "sha1-hXE5dakfuHvxswXMp3OV5A0qZKc=" }, "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.0.0.tgz", - "integrity": "sha1-ds/nQs8fQbubHCmtAwaMBbTA5Ao=", + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=" + } } }, "to-regex-range": { @@ -925,43 +782,32 @@ } }, "ts-node": { - "version": "8.8.2", - "resolved": "https://registry.npm.taobao.org/ts-node/download/ts-node-8.8.2.tgz?cache=0&sync_timestamp=1586051126310&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-node%2Fdownload%2Fts-node-8.8.2.tgz", - "integrity": "sha1-CznmkL7jnqURFROp0rzcC8EhdV8=", + "version": "8.10.2", + "resolved": "https://registry.npm.taobao.org/ts-node/download/ts-node-8.10.2.tgz", + "integrity": "sha1-7uA3ZGM7EjTd03+NuewQt17H+40=", "requires": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.6", + "source-map-support": "^0.5.17", "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz", - "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=" - } } }, - "typedarray": { - "version": "0.0.6", - "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.0.0.tgz", + "integrity": "sha1-GNE/wtzgQFHiDwdMyDh/2Aic5PM=", + "dev": true }, "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.8.3.tgz", - "integrity": "sha1-QJ64VE6gM1cRIFhp7EWKsQnuEGE=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "version": "3.9.5", + "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.9.5.tgz?cache=0&sync_timestamp=1593500089164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.9.5.tgz", + "integrity": "sha1-WG8NujAM3ovlLdGsT34QCcGxPzY=" }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", "requires": { "isexe": "^2.0.0" } @@ -979,6 +825,11 @@ "string-width": "^1.0.2 || 2" } }, + "workerpool": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/workerpool/download/workerpool-6.0.0.tgz", + "integrity": "sha1-harWf6GiyO+ThqG0NTmQD2HQPVg=" + }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", @@ -1019,14 +870,6 @@ "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", - "requires": { - "async-limiter": "~1.0.0" - } - }, "y18n": { "version": "4.0.0", "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", @@ -1034,7 +877,7 @@ }, "yargs": { "version": "13.3.2", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1584344069946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1593578316195&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", "requires": { "cliui": "^5.0.0", @@ -1054,6 +897,36 @@ "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", @@ -1085,7 +958,7 @@ }, "yargs-unparser": { "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/yargs-unparser/download/yargs-unparser-1.6.0.tgz?cache=0&sync_timestamp=1564464421644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-unparser%2Fdownload%2Fyargs-unparser-1.6.0.tgz", + "resolved": "https://registry.npm.taobao.org/yargs-unparser/download/yargs-unparser-1.6.0.tgz?cache=0&sync_timestamp=1592366258554&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-unparser%2Fdownload%2Fyargs-unparser-1.6.0.tgz", "integrity": "sha1-7yXCx2n/a9CeSw+dfGBfsnhG6p8=", "requires": { "flat": "^4.1.0", @@ -1093,15 +966,6 @@ "yargs": "^13.3.0" } }, - "yauzl": { - "version": "2.10.0", - "resolved": "http://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npm.taobao.org/yn/download/yn-3.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyn%2Fdownload%2Fyn-3.1.1.tgz", diff --git a/packages/dn-middleware-e2e/package.json b/packages/dn-middleware-e2e/package.json index 26bf4500..47395b3b 100644 --- a/packages/dn-middleware-e2e/package.json +++ b/packages/dn-middleware-e2e/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "1.0.6", + "version": "2.0.0", "description": "", "main": "./lib/index.js", "scripts": { @@ -9,9 +9,13 @@ "author": "", "license": "ISC", "dependencies": { - "mocha": "^7.1.1", - "puppeteer": "^2.1.1", - "ts-node": "^8.8.2", - "typescript": "^3.8.3" + "mocha": "^8.0.1", + "ts-node": "^8.10.2", + "typescript": "^3.9.5" + }, + "devDependencies": { + "@types/mocha": "^7.0.2", + "@types/puppeteer": "^3.0.1", + "tslib": "^2.0.0" } } diff --git a/packages/dn-middleware-e2e/test/baidu.e2e.ts b/packages/dn-middleware-e2e/test/baidu.e2e.ts new file mode 100644 index 00000000..6e16fcaa --- /dev/null +++ b/packages/dn-middleware-e2e/test/baidu.e2e.ts @@ -0,0 +1,26 @@ +import assert from 'assert'; +import { launch, Browser } from 'puppeteer'; + +describe('demo test', function () { + + let browser: Browser; + beforeEach(async function () { + browser = await launch({ + headless: true, + slowMo: 0, + defaultViewport: { + width: 1000, + height: 600, + } + }); + }); + + it('check title', async function () { + const page = await browser.newPage(); + browser + await page.goto('https:/www.baidu.com/'); + const title = await page.title(); + assert.equal(title, '百度一下,你就知道'); + }); + +}); \ No newline at end of file diff --git a/packages/dn-middleware-e2e/test/e2e/baidu.test.js b/packages/dn-middleware-e2e/test/e2e/baidu.test.js deleted file mode 100644 index 1b04b386..00000000 --- a/packages/dn-middleware-e2e/test/e2e/baidu.test.js +++ /dev/null @@ -1,14 +0,0 @@ -import assert from 'assert'; - -describe('demo test', function () { - - beforeEach(async function () { - await driver.get('https://www.baidu.com'); - }); - - it('check title', async function () { - let title = await driver.getTitle(); - expect(title).to.equal('百度一下,你就知道'); - }); - -}); \ No newline at end of file diff --git a/packages/dn-middleware-e2e/lib/tsconfig.json b/packages/dn-middleware-e2e/tsconfig.json similarity index 89% rename from packages/dn-middleware-e2e/lib/tsconfig.json rename to packages/dn-middleware-e2e/tsconfig.json index 0422fefe..e764088a 100644 --- a/packages/dn-middleware-e2e/lib/tsconfig.json +++ b/packages/dn-middleware-e2e/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "moduleResolution": "node", "noImplicitAny": true, + "allowJs": true, "module": "CommonJS", "target": "es5", "jsx": "react", @@ -11,6 +12,7 @@ "experimentalDecorators": true, "resolveJsonModule": true, "importHelpers": true, + "declaration": false, "lib": [ "dom", "esnext" From 11bbcf7a453a92fe3ec279fa6c0b879571f103e1 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Wed, 1 Jul 2020 14:26:39 +0800 Subject: [PATCH 08/14] dn-middleware-e2e@2.0.1 --- .../dn-middleware-e2e/{test/baidu.e2e.ts => e2e/demo.e2e.ts} | 0 packages/dn-middleware-e2e/lib/index.js | 3 ++- packages/dn-middleware-e2e/package.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) rename packages/dn-middleware-e2e/{test/baidu.e2e.ts => e2e/demo.e2e.ts} (100%) diff --git a/packages/dn-middleware-e2e/test/baidu.e2e.ts b/packages/dn-middleware-e2e/e2e/demo.e2e.ts similarity index 100% rename from packages/dn-middleware-e2e/test/baidu.e2e.ts rename to packages/dn-middleware-e2e/e2e/demo.e2e.ts diff --git a/packages/dn-middleware-e2e/lib/index.js b/packages/dn-middleware-e2e/lib/index.js index b4ac7502..315e74f3 100644 --- a/packages/dn-middleware-e2e/lib/index.js +++ b/packages/dn-middleware-e2e/lib/index.js @@ -4,7 +4,7 @@ const { isArray } = require('util'); module.exports = (opts) => { opts = Object.assign({ - files: './test/**/*.e2e.{ts,js}', + files: './e2e/**/*.e2e.{ts,js}', timeout: 30000, puppeteer: { download: 'https://npm.taobao.org/mirrors' @@ -24,6 +24,7 @@ module.exports = (opts) => { } } + return async (next, ctx) => { ctx.console.info('检测及安装 E2E 依赖...'); diff --git a/packages/dn-middleware-e2e/package.json b/packages/dn-middleware-e2e/package.json index 47395b3b..6e348e0f 100644 --- a/packages/dn-middleware-e2e/package.json +++ b/packages/dn-middleware-e2e/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "2.0.0", + "version": "2.0.1", "description": "", "main": "./lib/index.js", "scripts": { From b0faaef55ff436ffda3d9f557513d0bf1220898e Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 11:40:20 +0800 Subject: [PATCH 09/14] dn-middleware-e2e@2.1.0 --- packages/dn-middleware-e2e/.dawn/pipe.yml | 4 +++- packages/dn-middleware-e2e/lib/index.js | 13 ++++++++----- packages/dn-middleware-e2e/package-lock.json | 7 ++++++- packages/dn-middleware-e2e/package.json | 3 ++- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/dn-middleware-e2e/.dawn/pipe.yml b/packages/dn-middleware-e2e/.dawn/pipe.yml index 5e82d3b8..ceefc140 100644 --- a/packages/dn-middleware-e2e/.dawn/pipe.yml +++ b/packages/dn-middleware-e2e/.dawn/pipe.yml @@ -1,2 +1,4 @@ dev: - - name: ./lib/index.js \ No newline at end of file + - name: ./lib/index.js + puppeteer: + version: latest \ No newline at end of file diff --git a/packages/dn-middleware-e2e/lib/index.js b/packages/dn-middleware-e2e/lib/index.js index 315e74f3..819ccd96 100644 --- a/packages/dn-middleware-e2e/lib/index.js +++ b/packages/dn-middleware-e2e/lib/index.js @@ -1,15 +1,15 @@ const path = require('path'); -const { isArray } = require('util'); +const { isArray, mix } = require('ntils'); module.exports = (opts) => { - opts = Object.assign({ + opts = mix({ files: './e2e/**/*.e2e.{ts,js}', timeout: 30000, puppeteer: { download: 'https://npm.taobao.org/mirrors' }, - }, opts); + }, opts || {}, []); const checkInstall = async (ctx, pkgs, flag) => { if (!pkgs) return; @@ -17,6 +17,8 @@ module.exports = (opts) => { if (!flag) flag = { 'save-dev': true }; for (let pkg of pkgs) { try { + const vIndex = pkg.lastIndexOf('@'); + if (vIndex > 0) pkg = pkg.substr(0, vIndex); require.resolve(`${pkg}/package.json`); } catch (err) { await ctx.mod.install(pkg, { flag }); @@ -24,7 +26,6 @@ module.exports = (opts) => { } } - return async (next, ctx) => { ctx.console.info('检测及安装 E2E 依赖...'); @@ -32,7 +33,9 @@ module.exports = (opts) => { if (opts.puppeteer) { await ctx.mod.exec(`config set puppeteer_download_host=${opts.puppeteer.download}`); await checkInstall(ctx, '@types/puppeteer'); - await checkInstall(ctx, 'puppeteer', { 'no-save': true }); + const { version } = opts.puppeteer; + const fullName = version ? `puppeteer@${version}` : 'puppeteer'; + await checkInstall(ctx, fullName, { 'no-save': true }); } ctx.console.info('完成'); diff --git a/packages/dn-middleware-e2e/package-lock.json b/packages/dn-middleware-e2e/package-lock.json index ee9e0005..80b99873 100644 --- a/packages/dn-middleware-e2e/package-lock.json +++ b/packages/dn-middleware-e2e/package-lock.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "1.0.6", + "version": "2.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -594,6 +594,11 @@ "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" }, + "ntils": { + "version": "5.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/ntils/download/ntils-5.1.2.tgz", + "integrity": "sha1-3camclmdEiBLtOw1Q0BCNridu5g=" + }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545089271&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz", diff --git a/packages/dn-middleware-e2e/package.json b/packages/dn-middleware-e2e/package.json index 6e348e0f..036c8135 100644 --- a/packages/dn-middleware-e2e/package.json +++ b/packages/dn-middleware-e2e/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "2.0.1", + "version": "2.1.0", "description": "", "main": "./lib/index.js", "scripts": { @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "mocha": "^8.0.1", + "ntils": "^5.1.2", "ts-node": "^8.10.2", "typescript": "^3.9.5" }, From 10b46c492eb7b030dc6fbf90a95c4603bd8f8487 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 12:16:53 +0800 Subject: [PATCH 10/14] =?UTF-8?q?dn=20update=20=E9=BB=98=E8=AE=A4=E4=B8=8D?= =?UTF-8?q?=E5=88=A0=E9=99=A4=20lock=20=E6=96=87=E4=BB=B6,=20=E8=80=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20-f=20=E6=97=B6=E6=B8=85=E7=90=86=20lock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli-core.js | 5 +++-- lib/commands/update.js | 4 ++-- lib/mod.js | 11 ++++++----- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bin/cli-core.js b/bin/cli-core.js index cade9e71..8e53be06 100755 --- a/bin/cli-core.js +++ b/bin/cli-core.js @@ -93,11 +93,12 @@ cmdline }, false) .root.command(['template', 'middleware', 'update', 'u', 'config', 'c']) - .action(async function (cmd, env) { + .option(['-f', '--force'], 'switch') + .action(async function (cmd, force) { cmd = ALIAS[cmd] || cmd; this.set('command', cmd); try { - await core.commands[cmd].call(this, cmd); + await core.commands[cmd].call(this, force); cmdline.onDone(this); } catch (err) { cmdline.onFail(err); diff --git a/lib/commands/update.js b/lib/commands/update.js index f363e994..8b99a1b1 100644 --- a/lib/commands/update.js +++ b/lib/commands/update.js @@ -7,13 +7,13 @@ const console = require('../common/console'); const store = require('../store'); const mod = require('../mod'); -module.exports = async function () { +module.exports = async function (cleanLock) { console.info('Updating...'); await Promise.all([ store.clean('stamps'), store.clean('caches'), store.clean('modules'), - mod.clean() + mod.clean(cleanLock) ]); await mod.install(); console.info('Done'); diff --git a/lib/mod.js b/lib/mod.js index 5e4d3b6f..57fa678a 100644 --- a/lib/mod.js +++ b/lib/mod.js @@ -128,9 +128,10 @@ exports.getDocUrl = async function (name, prefix) { return url; }; -exports.clean = async function () { - await del([ - path.normalize(`${process.cwd()}/node_modules/`), - path.normalize(`${process.cwd()}/package-lock.json`) - ], { force: true }); +exports.clean = async function (cleanLock) { + const items = [path.normalize(`${process.cwd()}/node_modules/`)]; + if (cleanLock) { + items.push(path.normalize(`${process.cwd()}/package-lock.json`)); + } + await del(items, { force: true }); }; \ No newline at end of file From 2acb508670f7ecd4344c39babc5ad02580503fa9 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 12:19:36 +0800 Subject: [PATCH 11/14] 1.9.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 82b6ae8a..3226978a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dawn", - "version": "1.8.5", + "version": "1.9.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b737d8c2..df783015 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dawn", - "version": "1.8.5", + "version": "1.9.0", "description": "dawn cli", "main": "./lib/index.js", "bin": { From e53f0dc257abf7b11a2998d003525727b11246f2 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 13:20:14 +0800 Subject: [PATCH 12/14] 1.9.0 --- lib/commands/update.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/commands/update.js b/lib/commands/update.js index 8b99a1b1..2d1cc6b7 100644 --- a/lib/commands/update.js +++ b/lib/commands/update.js @@ -9,6 +9,7 @@ const mod = require('../mod'); module.exports = async function (cleanLock) { console.info('Updating...'); + if (cleanLock) console.log('Clean lockfile..') await Promise.all([ store.clean('stamps'), store.clean('caches'), From 68e3a5bc6ade64250971244f86570580b22cdb09 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 13:51:34 +0800 Subject: [PATCH 13/14] fix intall issue --- packages/dn-middleware-e2e/lib/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dn-middleware-e2e/lib/index.js b/packages/dn-middleware-e2e/lib/index.js index 819ccd96..3073142f 100644 --- a/packages/dn-middleware-e2e/lib/index.js +++ b/packages/dn-middleware-e2e/lib/index.js @@ -18,8 +18,8 @@ module.exports = (opts) => { for (let pkg of pkgs) { try { const vIndex = pkg.lastIndexOf('@'); - if (vIndex > 0) pkg = pkg.substr(0, vIndex); - require.resolve(`${pkg}/package.json`); + const pkgName = vIndex > 0 ? pkg.substr(0, vIndex) : pkg; + require.resolve(`${pkgName}/package.json`); } catch (err) { await ctx.mod.install(pkg, { flag }); } From 7ae2bdbc2c2b48e31844b8b6f9159bd0875c1957 Mon Sep 17 00:00:00 2001 From: Houfeng Date: Thu, 2 Jul 2020 13:52:41 +0800 Subject: [PATCH 14/14] dn-middleware-e2e@2.1.1 --- packages/dn-middleware-e2e/package-lock.json | 2 +- packages/dn-middleware-e2e/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dn-middleware-e2e/package-lock.json b/packages/dn-middleware-e2e/package-lock.json index 80b99873..aeb507f3 100644 --- a/packages/dn-middleware-e2e/package-lock.json +++ b/packages/dn-middleware-e2e/package-lock.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/dn-middleware-e2e/package.json b/packages/dn-middleware-e2e/package.json index 036c8135..6c24895c 100644 --- a/packages/dn-middleware-e2e/package.json +++ b/packages/dn-middleware-e2e/package.json @@ -1,6 +1,6 @@ { "name": "dn-middleware-e2e", - "version": "2.1.0", + "version": "2.1.1", "description": "", "main": "./lib/index.js", "scripts": {