From 1904e151052db3073813e9a37a1016be01583ffe Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 14 Apr 2020 10:33:21 +0800 Subject: [PATCH 01/74] =?UTF-8?q?feat:=20Cube.use=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=8F=82=E6=95=B0=20=3Fm=3D1&env=3D2=20(#118?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Cube.use 支持请求参数 ?m=1&env=2 --- runtime/cube.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/runtime/cube.js b/runtime/cube.js index b68c04c..bf3cbdb 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -131,7 +131,8 @@ * @param requires * @param referer */ - function load(requires, referer) { + function load(requires, referer, customArgs) { + customArgs = customArgs || {}; if (typeof requires === 'string') { requires = [requires]; } @@ -157,6 +158,7 @@ var rebaseName = reBase(require); var srcPath = rebaseName || (base + require); + var q = []; if (version) { q.push(version); @@ -165,6 +167,11 @@ q.push('m'); q.push('ref=' + referer); } + if (customArgs[require]) { + Array.prototype.push.apply(q, Object.keys(customArgs[require]).map(c => { + return `${c}=${customArgs[require][c]}` + })); + } if (q.length) { script.src = srcPath + '?' + q.join('&'); @@ -338,6 +345,17 @@ if (typeof mods === 'string') { mods = [mods]; } + + let customArgs = {}; + mods = mods.map(m => { + const tmpArr = m.split('?'); + const mod = tmpArr[0]; + const custom = tmpArr[1]; + + if (!!custom) customArgs[mod] = parseQueryString(custom); + return mod; + }); + if (!noFix) { mods = fixUseModPath(mods); } @@ -363,7 +381,7 @@ }; }()); - load(mods, referer); + load(mods, referer, customArgs); return this; }; /** @@ -477,4 +495,14 @@ Cube.use(cfg.main || 'index.js', function(app){app.run&& app.run();}); } } + + function parseQueryString(param) { + let kvs = param.split('&'); + let obj = {}; + kvs.forEach((kv) => { + let tmp = kv.split('='); + obj[tmp[0]] = obj[tmp[1]]; + }); + return obj; + } })(window, null); From 9b482661280f288d81ecc26fb73e26f1d8c9087f Mon Sep 17 00:00:00 2001 From: fishbar Date: Tue, 14 Apr 2020 10:37:03 +0800 Subject: [PATCH 02/74] release: 3.1.18 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 9416b6e..1380d62 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.17-beta.2", + "version": "3.1.18", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index 86771e8..eb47e3c 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.16 + * Cube v3.1.18 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function f(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function g(a){var b=a.indexOf?a.indexOf(t):0;return 0{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=g(a),f=d||r+a,h=[];n&&h.push(n),w&&(h.push('m'),h.push('ref='+b)),c.src=h.length?f+'?'+h.join('&'):f,C.appendChild(c),A[a]={exports:{},loaded:!1,fired:!1},B[a]=!0}}),i()):void E.push([a,b])}function k(b){var c=A[b];if(!c)if(v)throw new Error('Cube Error: Cannot find module \''+b+'\'');else return q.error(e),{};if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,f(b),y,z]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,f(b),y,z])}catch(a){q.error(a),c.exports={}}return c.exports}function l(){var a,b;for(a in console.time('cube exec'),x)x.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;k(b),x[a].forEach(function(a){var d=a(A[b].exports);d&&c++}),x[a].length===c&&delete x[a]}));console.timeEnd('cube exec')}function m(a,b,c){var d=A[a];d||(d=A[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,B[a]?(delete B[a],j(b,a)):b.length&&j(b,a)}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x={},y={env:{NODE_ENV:'production'}},z=void 0,A={},B={},C=p.querySelector('head'),D=!1,E=[];console.time('cube load'),m.setRemoteBase=function(a){Object.assign(s,a)},m.toString=function(){return'Cube:v3.1.16'},m.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(y.env.NODE_ENV=a.env),a.global&&(z=a.global),D=!0;E.length;){var c=E.shift();j(c[0],c[1])}return this},m.use=function(b,d,f,g){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(g=f,f=d,d=void 0),d||(d='Cube.use'),f=f||c,'string'===typeof b&&(b=[b]),g||(b=h(b)),x[b]||(x[b]=[]),x[b].push(function(){var c=[],d=b.length,g=!1;return function(b){if(!g)return(c.push(b),c.length===d)?(g=!0,f.apply(a,c),!0):void 0}}()),j(b,d),this},m.register=function(a,b){return A[a]?q.error('Cube Error: Module \''+a+'\' already registered'):(A[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var F=/([^};]+)(\{[^}]+\})/g,G={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!G[d]){G[d]=!0,b&&(a=a.replace(F,function(a,c,d){var f=c.split(',').map(function(a){return b+' '+a.trim()});return f.join(',')+d}));var f=p.createElement('style');return f.setAttribute('type','text/css'),f.setAttribute('mod',c),b&&f.setAttribute('ns',b),C.appendChild(f),f.innerHTML=a,a}}},m.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in A)A.hasOwnProperty(a)&&(b=A[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',A),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',m.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var H=p.currentScript;if(H){var I=H.dataset;I.base&&(m.init(I),m.use(I.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function f(a){return function(b,c,d){2===arguments.length&&'function'==typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function g(a){var b=a.indexOf?a.indexOf(':'):0;return 0{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var f=g(a),h=f||t+a,i=[];o&&i.push(o),x&&(i.push('m'),i.push('ref='+b)),d[a]&&Array.prototype.push.apply(i,Object.keys(d[a]).map(b=>`${b}=${d[a][b]}`)),c.src=i.length?h+'?'+i.join('&'):h,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},C[a]=!0}}),i()):void F.push([a,b])}function k(b){var c=B[b];if(!c)if(w)throw new Error('Cube Error: Cannot find module \''+b+'\'');else return s.error(e),{};if(!c.fired)if(c.fired=!0,w)c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A])}catch(a){s.error(a),c.exports={}}return c.exports}function l(){var a,b;for(a in console.time('cube exec'),y)y.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;k(b),y[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),y[a].length===c&&delete y[a]}));console.timeEnd('cube exec')}function m(a,b,c){var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,C[a]?(delete C[a],j(b,a)):b.length&&j(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach(a=>{let b=a.split('=');c[b[0]]=c[b[1]]}),c}var o,p=window,r=document,s=console,t='',u={},v='utf-8',w=!0,x=!0,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=r.querySelector('head'),E=!1,F=[];console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.1.18'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(v=a.charset),a.version&&(o=a.version),void 0!==a.debug&&(x=a.debug),void 0!==a.strict&&(w=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();j(c[0],c[1])}return this},m.use=function(b,d,f,g){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');'function'==typeof d&&(g=f,f=d,d=void 0),d||(d='Cube.use'),f=f||c,'string'==typeof b&&(b=[b]);let i={};return b=b.map(a=>{const b=a.split('?'),c=b[0],d=b[1];return!d||(i[c]=n(d)),c}),g||(b=h(b)),y[b]||(y[b]=[]),y[b].push(function(){var c=[],d=b.length,g=!1;return function(b){if(!g)return(c.push(b),c.length===d)?(g=!0,f.apply(a,c),!0):void 0}}()),j(b,d,i),this},m.register=function(a,b){return B[a]?s.error('Cube Error: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!G[d]){G[d]=!0,b&&(a=a.replace(/([^};]+)(\{[^}]+\})/g,function(a,c,d){var f=c.split(',').map(function(a){return b+' '+a.trim()});return f.join(',')+d}));var f=r.createElement('style');return f.setAttribute('type','text/css'),f.setAttribute('mod',c),b&&f.setAttribute('ns',b),D.appendChild(f),f.innerHTML=a,a}}},m.debug=function(){p.localStorage&&p.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',B),s.info('unloaded:',c),s.info('unfired:',d)},p.localStorage&&'debug'===localStorage.cube&&(x=!0,p.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var H=r.currentScript;if(H){var I=H.dataset;I.base&&(m.init(I),m.use(I.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 0df22728fe809f6b7097d6529a183c7a5a95e0b6 Mon Sep 17 00:00:00 2001 From: "elvira.zy" Date: Tue, 14 Apr 2020 11:41:44 +0800 Subject: [PATCH 03/74] fix: querystring --- runtime/cube.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/cube.js b/runtime/cube.js index bf3cbdb..b89f12e 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -501,7 +501,7 @@ let obj = {}; kvs.forEach((kv) => { let tmp = kv.split('='); - obj[tmp[0]] = obj[tmp[1]]; + obj[tmp[0]] = tmp[1]; }); return obj; } From 4fa57522eeefb002f5d295ea41ffd7b1e48a8498 Mon Sep 17 00:00:00 2001 From: fishbar Date: Tue, 14 Apr 2020 11:50:06 +0800 Subject: [PATCH 04/74] release: 3.1.19 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 1380d62..7370434 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.18", + "version": "3.1.19", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index eb47e3c..8993643 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.18 + * Cube v3.1.19 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function f(a){return function(b,c,d){2===arguments.length&&'function'==typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function g(a){var b=a.indexOf?a.indexOf(':'):0;return 0{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var f=g(a),h=f||t+a,i=[];o&&i.push(o),x&&(i.push('m'),i.push('ref='+b)),d[a]&&Array.prototype.push.apply(i,Object.keys(d[a]).map(b=>`${b}=${d[a][b]}`)),c.src=i.length?h+'?'+i.join('&'):h,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},C[a]=!0}}),i()):void F.push([a,b])}function k(b){var c=B[b];if(!c)if(w)throw new Error('Cube Error: Cannot find module \''+b+'\'');else return s.error(e),{};if(!c.fired)if(c.fired=!0,w)c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A])}catch(a){s.error(a),c.exports={}}return c.exports}function l(){var a,b;for(a in console.time('cube exec'),y)y.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;k(b),y[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),y[a].length===c&&delete y[a]}));console.timeEnd('cube exec')}function m(a,b,c){var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,C[a]?(delete C[a],j(b,a)):b.length&&j(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach(a=>{let b=a.split('=');c[b[0]]=c[b[1]]}),c}var o,p=window,r=document,s=console,t='',u={},v='utf-8',w=!0,x=!0,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=r.querySelector('head'),E=!1,F=[];console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.1.18'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(v=a.charset),a.version&&(o=a.version),void 0!==a.debug&&(x=a.debug),void 0!==a.strict&&(w=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();j(c[0],c[1])}return this},m.use=function(b,d,f,g){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');'function'==typeof d&&(g=f,f=d,d=void 0),d||(d='Cube.use'),f=f||c,'string'==typeof b&&(b=[b]);let i={};return b=b.map(a=>{const b=a.split('?'),c=b[0],d=b[1];return!d||(i[c]=n(d)),c}),g||(b=h(b)),y[b]||(y[b]=[]),y[b].push(function(){var c=[],d=b.length,g=!1;return function(b){if(!g)return(c.push(b),c.length===d)?(g=!0,f.apply(a,c),!0):void 0}}()),j(b,d,i),this},m.register=function(a,b){return B[a]?s.error('Cube Error: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!G[d]){G[d]=!0,b&&(a=a.replace(/([^};]+)(\{[^}]+\})/g,function(a,c,d){var f=c.split(',').map(function(a){return b+' '+a.trim()});return f.join(',')+d}));var f=r.createElement('style');return f.setAttribute('type','text/css'),f.setAttribute('mod',c),b&&f.setAttribute('ns',b),D.appendChild(f),f.innerHTML=a,a}}},m.debug=function(){p.localStorage&&p.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',B),s.info('unloaded:',c),s.info('unfired:',d)},p.localStorage&&'debug'===localStorage.cube&&(x=!0,p.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var H=r.currentScript;if(H){var I=H.dataset;I.base&&(m.init(I),m.use(I.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function f(a){return function(b,c,d){2===arguments.length&&'function'==typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function g(a){var b=a.indexOf?a.indexOf(':'):0;return 0{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var f=g(a),h=f||t+a,i=[];o&&i.push(o),x&&(i.push('m'),i.push('ref='+b)),d[a]&&Array.prototype.push.apply(i,Object.keys(d[a]).map(b=>`${b}=${d[a][b]}`)),c.src=i.length?h+'?'+i.join('&'):h,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},C[a]=!0}}),i()):void F.push([a,b])}function k(b){var c=B[b];if(!c)if(w)throw new Error('Cube Error: Cannot find module \''+b+'\'');else return s.error(e),{};if(!c.fired)if(c.fired=!0,w)c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A])}catch(a){s.error(a),c.exports={}}return c.exports}function l(){var a,b;for(a in console.time('cube exec'),y)y.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;k(b),y[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),y[a].length===c&&delete y[a]}));console.timeEnd('cube exec')}function m(a,b,c){var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,C[a]?(delete C[a],j(b,a)):b.length&&j(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach(a=>{let b=a.split('=');c[b[0]]=b[1]}),c}var o,p=window,r=document,s=console,t='',u={},v='utf-8',w=!0,x=!0,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=r.querySelector('head'),E=!1,F=[];console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.1.19'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(v=a.charset),a.version&&(o=a.version),void 0!==a.debug&&(x=a.debug),void 0!==a.strict&&(w=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();j(c[0],c[1])}return this},m.use=function(b,d,f,g){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');'function'==typeof d&&(g=f,f=d,d=void 0),d||(d='Cube.use'),f=f||c,'string'==typeof b&&(b=[b]);let i={};return b=b.map(a=>{const b=a.split('?'),c=b[0],d=b[1];return!d||(i[c]=n(d)),c}),g||(b=h(b)),y[b]||(y[b]=[]),y[b].push(function(){var c=[],d=b.length,g=!1;return function(b){if(!g)return(c.push(b),c.length===d)?(g=!0,f.apply(a,c),!0):void 0}}()),j(b,d,i),this},m.register=function(a,b){return B[a]?s.error('Cube Error: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!G[d]){G[d]=!0,b&&(a=a.replace(/([^};]+)(\{[^}]+\})/g,function(a,c,d){var f=c.split(',').map(function(a){return b+' '+a.trim()});return f.join(',')+d}));var f=r.createElement('style');return f.setAttribute('type','text/css'),f.setAttribute('mod',c),b&&f.setAttribute('ns',b),D.appendChild(f),f.innerHTML=a,a}}},m.debug=function(){p.localStorage&&p.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',B),s.info('unloaded:',c),s.info('unfired:',d)},p.localStorage&&'debug'===localStorage.cube&&(x=!0,p.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var H=r.currentScript;if(H){var I=H.dataset;I.base&&(m.init(I),m.use(I.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 2ee827e539cb4a4f2381d06aaca79831748f7957 Mon Sep 17 00:00:00 2001 From: "elvira.zy" Date: Thu, 3 Sep 2020 15:01:18 +0800 Subject: [PATCH 05/74] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=20browser=20?= =?UTF-8?q?=E6=98=AF=E4=B8=80=E4=B8=AA=E5=AF=B9=E8=B1=A1=20&&=20=E6=89=BE?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E5=AF=B9=E5=BA=94=E6=96=87=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=20js=20=E5=90=8E=E7=BC=80=E5=85=9C=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 256 +++++++++++++++++++++++------------- package.json | 1 + 2 files changed, 167 insertions(+), 90 deletions(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 976d2a7..634bca3 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -7,6 +7,7 @@ const babelType = require('babel-types'); const babelTraverse = require('babel-traverse').default; const babelGenerator = require('babel-generator').default; const esminify = require('esminify'); +const uuid = require('uuid'); const debug = require('debug')('cube:wraper'); const utils = require('../utils'); @@ -33,12 +34,10 @@ function unique(arr) { /** * tryFiles 扫描文件 - * 根据给定的modPath, 识别出文件类型,默认是 script - * 如果要加载style和template, require的时候必须带后缀 - * - * 确定完类型之后,开始寻找存在的文件: - * 比如请求的文件是 index.js, 实际文件可以是 fname.$possibleExts - * $possibleExts 就是类型下所有注册的可能的后缀名称 + * 先用 tryFilesBaisc 扫描,假如没找到,再试下默认后缀的识别方法 + * + * eg. xxx.glsl => 找不到 + * xxx.glsl.js => 找到 * * @exceptions * @@ -46,7 +45,25 @@ function unique(arr) { * */ function tryFiles(cube, root, modPath) { - var origExt = path.extname(modPath); + try { + // 按原始后缀找一次 + return tryFilesBaisc(cube, root, modPath, path.extname(modPath)); + } catch (e) { + // 兜底用默认后缀找一次 + return tryFilesBaisc(cube, root, modPath, ''); + } +} + +/** + * tryFilesBaisc 扫描文件 + * 根据给定的modPath, 识别出文件类型,默认是 script + * 如果要加载style和template, require的时候必须带后缀 + * + * 确定完类型之后,开始寻找存在的文件: + * 比如请求的文件是 index.js, 实际文件可以是 fname.$possibleExts + * $possibleExts 就是类型下所有注册的可能的后缀名称 + */ +function tryFilesBaisc(cube, root, modPath, origExt) { var fName = path.basename(modPath, origExt); var dir = path.dirname(modPath); var arr; @@ -93,15 +110,18 @@ function tryFiles(cube, root, modPath) { } /** * testModPath and return the relative real path + * + * 要注意 browser module main 的关系:https://github.com/SunshowerC/blog/issues/8 + * * @param {Path} modPath abs root, may be file, may be module dir * @param {String} modName 在require中书写的模块名 + * @param {String} modRootPath 在require中书写的模块名的根节点,即 package.json 的所在位置 * @return {Path} relative path based on root */ -function testModPath(cube, modPath, modName) { +function testModPath(cube, modPath, modName, modRootPath) { let tmpModPath; let stat; let root = cube.config.root; - let moduleMap = cube.config.moduleMap; try { // test if dir try { @@ -109,84 +129,8 @@ function testModPath(cube, modPath, modName) { } catch(e) { // DO NOTHING } - try { - debug('testModPath: try single-file first.', modPath); - tmpModPath = tryFiles(cube, root, modPath); - } catch (e) { - if (stat && stat.isDirectory()) { - // get module default enter - try { - let pkg = require(path.join(modPath, './package.json')); - let alreadyFound = false; - /** - * first of all: moduleMap - */ - // tmpModPath = cube.config.moduleMap && cube.config.moduleMap[modName]; - // if (cube.config.moduleMap && tmpModPath) { - // tmpModPath = path.join(modPath, cube.config.moduleMap[modName]); - // debug('testModPath: try moduleMap[', modName, ',', cube.config.moduleMap[modName],']'); - // } - /** - * then search for browserify config in package.json - * "browserify": "d3.js" - */ - if (moduleMap && moduleMap[modName]) { - let tmp; - try { - tmp = fs.readlinkSync(modPath); - modPath = path.join(path.dirname(modPath), tmp); - } catch (e) { - // do nothing - } - tmpModPath = path.join(modPath, moduleMap[modName]); - } - else if (pkg.browserify && typeof pkg.browserify === 'string') { - tmpModPath = path.join(modPath, pkg.browserify); - debug('testModPath: try package.json.browserify', tmpModPath); - } - /** - * then search for browser config in package.json - * "browser": "browser.js" - */ - else if (pkg.browser && typeof pkg.browser === 'string') { - tmpModPath = path.join(modPath, pkg.browser); - debug('testModPath: try package.json.browser', tmpModPath); - } - /** - * then search for pkg.main - */ - else if (pkg.main && typeof pkg.main === 'string') { - tmpModPath = path.join(modPath, pkg.main); - debug('testModPath: try package.json.main ', tmpModPath); - try { - tmpModPath = tryFiles(cube, root, tmpModPath); - alreadyFound = true; - } catch (e) { - /** if package.main like : ./lib, it means ./lib/index.js **/ - tmpModPath = path.join(tmpModPath, './index.js'); - debug('testModPath: try package.json.main / index.js ', tmpModPath); - } - } else { - tmpModPath = path.join(modPath, './index.js'); - debug('testModPath: try module_dir/index.js', tmpModPath); - } - if (!alreadyFound) { - tmpModPath = tryFiles(cube, root, tmpModPath); - } - } catch (e) { - debug('testModPath: not found', e); - // can not find module main enter, use index.js as default - tmpModPath = path.join(modPath, 'index'); - debug('testModPath: try default module/index', tmpModPath); - try { - tmpModPath = tryFiles(cube, root, tmpModPath); - } catch (e) { - debug('testModPath: not found'); - throw e; - } - } - } - } + // 文件夹和文件的处理趋于一致 + tmpModPath = testModPathBaisc(cube, modPath, modName, modRootPath, stat && stat.isDirectory()); } catch (e) { debug('testModPath: not found at last', modPath); throw e; @@ -194,6 +138,135 @@ function testModPath(cube, modPath, modName) { return tmpModPath.substr(root.length); } +/** + * 文件处理: + * 找到包目录下 package.json,按 moduleMap => browserify => broswer => modPath => modPath/index.js + * + * 文件夹处理: + * 1. 找当前目录有没有 package.json,没有的话找包目录下 package.json + * 2. 按 moduleMap => browserify => broswer => main => modPath => modPath/index.js + */ +function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { + let root = cube.config.root; + let moduleMap = cube.config.moduleMap; + let tmpModPath; + try { + let pkg; + let isRoot = false; + // 获取 package.json + if (isDirectory) { + // 看看当前目录有没有 package.json, 优先级会更高 + isRoot = modPath === modRootPath; + try { + pkg = require(path.join(modPath, './package.json')); + } catch(e) {} // DO NOTHING + } + // 假如没有,不论文件夹还是文件都再次找一下包根目录有没有 package.json + if (!pkg) { + try { + pkg = require(path.join(modRootPath, './package.json')); + } catch (e) {} // DO NOTHING + } + + let alreadyFound = false; + if (moduleMap && moduleMap[modName]) { + let tmp; + try { + tmp = fs.readlinkSync(modPath); + modPath = path.join(path.dirname(modPath), tmp); + } catch (e) { + // do nothing + } + tmpModPath = path.join(modPath, moduleMap[modName]); + } + + /** + * "browserify": "browserify.js" + */ + else if (pkg && pkg.browserify && typeof pkg.browserify === 'string') { + tmpModPath = path.join(modPath, pkg.browserify); + debug('testModPath: try package.json.browserify', tmpModPath); + } + + /** + * then search for browser config in package.json + * "browser": "browser.js" + */ + else if (pkg && pkg.browser && typeof pkg.browser === 'string') { + tmpModPath = path.join(modPath, pkg.browser); + debug('testModPath: try package.json.browser', tmpModPath); + } + + /** + * "browser": { + * "./aaa/aaa.js": "./aaa/dist/aaa.js" + * } + */ + else if (pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modRootPath, modPath)) { + tmpModPath = exist(pkg.browser, modRootPath, modPath); + debug('testModPath: try package.json.browser', tmpModPath); + } + /** + * then search for pkg.main + */ + else if (pkg && isRoot && pkg.main && typeof pkg.main === 'string') { + tmpModPath = path.join(modPath, pkg.main); + debug('testModPath: try package.json.main ', tmpModPath); + try { + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } catch (e) { + /** if package.main like : ./lib, it means ./lib/index.js **/ + tmpModPath = path.join(tmpModPath, './index.js'); + debug('testModPath: try package.json.main / index.js ', tmpModPath); + } + } else { + try { + tmpModPath = tryFiles(cube, root, modPath); + alreadyFound = true; + } catch(e) { + tmpModPath = path.join(modPath, './index.js'); + debug('testModPath: try module_dir/index.js', tmpModPath); + } + } + + if (!alreadyFound) { + tmpModPath = tryFiles(cube, root, tmpModPath); + } + } catch(e) { + debug('testModPath: not found', e); + // can not find module main enter, use index.js as default + tmpModPath = path.join(modPath, 'index'); + debug('testModPath: try default module/index', tmpModPath); + try { + tmpModPath = tryFiles(cube, root, tmpModPath); + } catch (e) { + debug('testModPath: not found'); + throw e; + } + } + return tmpModPath; +} + +function exist(searchObj, root, mod) { + const searchArr = Object.keys(searchObj); + let existPath; + + for (let i =0; i < searchArr.length; i++) { + if (path.resolve(root, searchArr[i]) === mod) { + // browser 被置为了 false, 需要忽略,这边造一个伪文件 + if (!searchObj[searchArr[i]]) { + const id = `./${uuid.v4()}.js`; + searchObj[searchArr[i]] = id; + fs.writeFileSync(path.join(root, id), 'module.exports = {};'); + } + existPath = path.resolve(root, searchObj[searchArr[i]]); + break; + } + } + return existPath; +} + function ifRootPath(path) { return path === '/' || path === '\\'; } @@ -409,6 +482,7 @@ module.exports = { let dir = path.dirname(curModule); let count = 0; let nodeModulePath; + let moduleRootPath; let p; debug(`${curModule} resolve path: "${module}" in root: "${root}"`); /** @@ -428,9 +502,11 @@ module.exports = { }); } else if (/^@?\w+/.test(module)) { debug('module type: node_modules'); + var modName = module[0] === '@' ? module.split('/').slice(0, 2).join('/') : module.split('/')[0]; while (dir) { count++; nodeModulePath = path.join(root, dir, '/node_modules/', module); + moduleRootPath = path.join(root, dir, '/node_modules/', modName); let ignore = this.checkIgnore(nodeModulePath.substr(root.length)); if (ignore.ignore) { this.log.warn(`"${module}" which required by "${curModule}" is ignored by .cubeignore config`); @@ -445,7 +521,7 @@ module.exports = { } } try { - p = testModPath(this, nodeModulePath, module); + p = testModPath(this, nodeModulePath, module, moduleRootPath); debug('resolvePath: ok > ', p); break; } catch (e) { @@ -469,12 +545,12 @@ module.exports = { if (/^\//.test(module)) { // if abs path: like "/jquery" debug('module type: abs_module', module); p = path.join(root, module); - } else { + } else { // if relative path : ./xxx debug('module type: relative_module', module); p = path.join(root, dir, module); } try { - p = testModPath(this, p, module); + p = testModPath(this, p, module, root); } catch (e) { debug('resolvePath error, module not found', module); this.log.warn(`required path:'${module}' not found in file: ${curModule}`); diff --git a/package.json b/package.json index 7370434..654ccf2 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "esminify": "3.0.5", "lodash": "4.17.15", "serve-static": "1.12.4", + "uuid": "^8.3.0", "xfs": "~0.2.2" }, "devDependencies": { From 20eb60ae4974e4d550afbe3f63bb7ede8b6c3d0b Mon Sep 17 00:00:00 2001 From: "elvira.zy" Date: Thu, 3 Sep 2020 20:46:13 +0800 Subject: [PATCH 06/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=A0=B9=E7=9B=AE=E5=BD=95=E4=B8=8E=20browser=20key?= =?UTF-8?q?=20=E7=9A=84=E6=AF=94=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 57 ++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 634bca3..3c00021 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -150,13 +150,15 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { let root = cube.config.root; let moduleMap = cube.config.moduleMap; let tmpModPath; + // @ns/module module 都需要在路径上拼 node_modules + const rootPath = /^@?\w+/.test(modName) ? path.resolve(modRootPath, 'node_modules') : modRootPath; try { let pkg; let isRoot = false; // 获取 package.json if (isDirectory) { // 看看当前目录有没有 package.json, 优先级会更高 - isRoot = modPath === modRootPath; + isRoot = true; try { pkg = require(path.join(modPath, './package.json')); } catch(e) {} // DO NOTHING @@ -164,6 +166,7 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { // 假如没有,不论文件夹还是文件都再次找一下包根目录有没有 package.json if (!pkg) { try { + isRoot = modPath === modRootPath; pkg = require(path.join(modRootPath, './package.json')); } catch (e) {} // DO NOTHING } @@ -178,6 +181,7 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { // do nothing } tmpModPath = path.join(modPath, moduleMap[modName]); + debug('testModPath: try moduleMap', tmpModPath); } /** @@ -198,13 +202,36 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { } /** + * browser 为 obj 的 2 种情况, 先判断是否存在,然后获取 broswer path * "browser": { - * "./aaa/aaa.js": "./aaa/dist/aaa.js" + * "./aaa/aaa.js": "./aaa/dist/aaa.js", + * "fs": false * } */ - else if (pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modRootPath, modPath)) { - tmpModPath = exist(pkg.browser, modRootPath, modPath); - debug('testModPath: try package.json.browser', tmpModPath); + else if (pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modPath, rootPath)) { + const browserArr = Object.keys(browser); + for (let i =0; i < browserArr.length; i++) { + if (modPath === path.resolve(rootPath, browserArr[i])) { + if (browser[browserArr[i]]) { + // browser[key] 找到了,既拼接返回 + tmpModPath = path.resolve(rootPath, browser[browserArr[i]]) + } else { + // browser[key] 被置为了 false, 需要忽略,这边造一个伪文件 + const id = `./${uuid.v4()}.js`; + browser[browserArr[i]] = id; + // rootPath 文件夹可能不存在, 因为可能人为的拼了 node_modules + try { + fs.statSync(rootPath); + } catch(e) { + fs.mkdirSync(rootPath); + } + fs.writeFileSync(path.join(rootPath, id), 'module.exports = {};'); + tmpModPath = path.join(rootPath, id); + } + break; + } + } + debug('testModPath: try package.json.browser object', tmpModPath); } /** * then search for pkg.main @@ -222,6 +249,7 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { } } else { try { + debug('testModPath: try modPath', modPath); tmpModPath = tryFiles(cube, root, modPath); alreadyFound = true; } catch(e) { @@ -248,23 +276,18 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { return tmpModPath; } -function exist(searchObj, root, mod) { +// 判断 searchObj 中是否有 isTure +function exist(searchObj, modPath, rootPath) { const searchArr = Object.keys(searchObj); - let existPath; + let isExist = false; for (let i =0; i < searchArr.length; i++) { - if (path.resolve(root, searchArr[i]) === mod) { - // browser 被置为了 false, 需要忽略,这边造一个伪文件 - if (!searchObj[searchArr[i]]) { - const id = `./${uuid.v4()}.js`; - searchObj[searchArr[i]] = id; - fs.writeFileSync(path.join(root, id), 'module.exports = {};'); - } - existPath = path.resolve(root, searchObj[searchArr[i]]); + if (modPath === path.resolve(rootPath, searchArr[i])) { + isExist = true; break; } } - return existPath; + return isExist; } function ifRootPath(path) { @@ -506,7 +529,7 @@ module.exports = { while (dir) { count++; nodeModulePath = path.join(root, dir, '/node_modules/', module); - moduleRootPath = path.join(root, dir, '/node_modules/', modName); + moduleRootPath = path.join(root, dir); let ignore = this.checkIgnore(nodeModulePath.substr(root.length)); if (ignore.ignore) { this.log.warn(`"${module}" which required by "${curModule}" is ignored by .cubeignore config`); From 016c5d94dcc9ad0c4ab53b00a5f1097672d173eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=93=E7=86=99?= Date: Tue, 25 May 2021 20:46:31 +0800 Subject: [PATCH 07/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20noAstParser?= =?UTF-8?q?=20=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8CqueryPath=20?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 2 ++ test/index.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 3c00021..d32af9c 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -625,6 +625,8 @@ module.exports = { /** require 列表 */ data.requires = []; data.requiresOrigin = []; + /** queryPath 要重新计算 */ + data.queryPath = utils.moduleName(data.queryPath, data.type, config.release, config.remote); return callback(null, data); } diff --git a/test/index.js b/test/index.js index 88d7180..e76bf3e 100644 --- a/test/index.js +++ b/test/index.js @@ -250,7 +250,7 @@ describe('index.js', function () { request.get('/test/test_error.js?m') .expect(200) .expect(function (res) { - expect(res.text).match(/Unexpected token/ig); + expect(res.text).match(/Missing semicolon/ig); }) .end(done); }); From 5040b69e46f7cd574b8bccfeed027686ac62ce69 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 25 May 2021 21:26:24 +0800 Subject: [PATCH 08/74] release: 3.1.20 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 654ccf2..ca1c9d2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.19", + "version": "3.1.20", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", From 72afc70cfda5c55ea505d6da77f5c9cd4f3ebbcc Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 3 Sep 2021 17:39:29 +0800 Subject: [PATCH 09/74] =?UTF-8?q?fix(minify):=20=E4=BD=BF=E7=94=A8=20babel?= =?UTF-8?q?Generator=20=E5=81=9A=20minify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit release: 3.1.21 --- lib/cube/ext_api_process.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index d32af9c..2efe1ed 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -6,7 +6,6 @@ const babylon = require('babylon'); const babelType = require('babel-types'); const babelTraverse = require('babel-traverse').default; const babelGenerator = require('babel-generator').default; -const esminify = require('esminify'); const uuid = require('uuid'); const debug = require('debug')('cube:wraper'); const utils = require('../utils'); @@ -475,8 +474,14 @@ function genCode(cube, qpath, ast, compress) { */ opt.ast = fixAst(ast); } - opt.config = minifyOpt; - return esminify.minify(opt); + let out = babelGenerator(opt.ast, Object.assign({ + quotes: 'single', + comments: false, + compact: true, + minified: true, + filename: qpath, + }, minifyOpt)); + return out.code; } else { if (typeof ast === 'string') { return ast; From 3347846c6082579a24130604beff601a6eefbf72 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 3 Sep 2021 18:19:49 +0800 Subject: [PATCH 10/74] release: 3.1.21 --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index ca1c9d2..020942b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.20", + "version": "3.1.21", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", @@ -30,7 +30,6 @@ "commander": "4.0.1", "connect": "^3.6.3", "debug": "4.1.0", - "esminify": "3.0.5", "lodash": "4.17.15", "serve-static": "1.12.4", "uuid": "^8.3.0", From eae0b3c54ae40d20fa049ac028c4dd3e2946aadd Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 3 Sep 2021 19:00:16 +0800 Subject: [PATCH 11/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B7=B7?= =?UTF-8?q?=E6=B7=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 2efe1ed..163fd92 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -463,7 +463,8 @@ function fixAst(ast) { } function genCode(cube, qpath, ast, compress) { if (compress) { - let minifyOpt = cube.config.minify; + // 原有 minify 配置项直传 uglifyJS 会报错 + let minifyOpt = cube.config.uglifyMinify || {}; let opt = {}; if (typeof ast === 'string') { opt.code = ast; @@ -474,13 +475,16 @@ function genCode(cube, qpath, ast, compress) { */ opt.ast = fixAst(ast); } - let out = babelGenerator(opt.ast, Object.assign({ + let out = babelGenerator(opt.ast, { quotes: 'single', comments: false, compact: true, minified: true, + concise: true, filename: qpath, - }, minifyOpt)); + }); + + out = uglifyJS.minify(out.code, minifyOpt); return out.code; } else { if (typeof ast === 'string') { From d0afc31cda1e5ef68076d4cf8e51a5f7f3978122 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 6 Sep 2021 21:25:31 +0800 Subject: [PATCH 12/74] release: 3.1.22 --- lib/cube/ext_api_process.js | 1 + package.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 163fd92..447d896 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -6,6 +6,7 @@ const babylon = require('babylon'); const babelType = require('babel-types'); const babelTraverse = require('babel-traverse').default; const babelGenerator = require('babel-generator').default; +const uglifyJS = require("uglify-js"); const uuid = require('uuid'); const debug = require('debug')('cube:wraper'); const utils = require('../utils'); diff --git a/package.json b/package.json index 020942b..2891dd1 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.21", + "version": "3.1.22", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", @@ -32,6 +32,7 @@ "debug": "4.1.0", "lodash": "4.17.15", "serve-static": "1.12.4", + "uglify-js": "^3.14.1", "uuid": "^8.3.0", "xfs": "~0.2.2" }, From 37d08bb9fe5b434c38373d3afd80bbaff9e2fccd Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 14 Dec 2021 21:28:22 +0800 Subject: [PATCH 13/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8A=A5?= =?UTF-8?q?=E9=94=99=20&=20=E8=AE=A1=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BC=80?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- runtime/cube.js | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 2891dd1..f30aea8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.22", + "version": "3.1.23", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.js b/runtime/cube.js index b89f12e..2191eb3 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -37,7 +37,7 @@ /* store requires before init */ var inited = false; var loadQueue = []; - console.time('cube load'); + debug && console.time('cube load'); /** * The require function * @param module @@ -89,8 +89,9 @@ */ function reBase(mod) { var offset = mod.indexOf ? mod.indexOf(remoteSeparator) : 0; - if (offset > 0) { - return remoteBase[mod.substr(0, offset)] + mod.substr(offset + 1); + var rbase = mod.substr(0, offset); + if (offset > 0 && remoteBase[rbase]) { + return remoteBase[rbase] + mod.substr(offset + 1); } else { return ''; } @@ -122,7 +123,7 @@ return false; } } - console.timeEnd('cube load'); + debug && console.timeEnd('cube load'); startAppAndCallback(); } @@ -197,10 +198,11 @@ function fireModule(module) { var m = installedModules[module]; if (!m) { + const err = new Error('Cube Error: Cannot find module ' + '\'' + module + '\''); if (strict) { - throw new Error('Cube Error: Cannot find module ' + '\'' + module + '\''); + throw err; } else { - log.error(e); + log.error(err); return {}; } } @@ -225,7 +227,7 @@ */ function startAppAndCallback() { var key, arr; - console.time('cube exec'); + debug && console.time('cube exec'); for (key in entrances) { if (entrances.hasOwnProperty(key)) { arr = key.split(','); @@ -244,7 +246,7 @@ }); } } - console.timeEnd('cube exec'); + debug && console.timeEnd('cube exec'); } @@ -391,7 +393,7 @@ */ Cube.register = function (module, exports) { if (installedModules[module]) { - return log.error('Cube Error: Module ' + '\'' + module + '\'' + ' already registered'); + return log.warn('Cube Warning: Module ' + '\'' + module + '\'' + ' already registered'); } installedModules[module] = { exports: exports, @@ -505,4 +507,4 @@ }); return obj; } -})(window, null); +})(window, null); \ No newline at end of file From 7eeda37b4ab59e55de90cd49e877a477b2a6f417 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 15 Dec 2021 20:11:34 +0800 Subject: [PATCH 14/74] =?UTF-8?q?fix(runtime):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=86=99=E6=B3=95=E4=B8=8D=E5=81=A5=E5=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- runtime/cube.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f30aea8..54069ec 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.23", + "version": "3.1.24", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.js b/runtime/cube.js index 2191eb3..fa3d1f1 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -89,12 +89,12 @@ */ function reBase(mod) { var offset = mod.indexOf ? mod.indexOf(remoteSeparator) : 0; + if (offset <= 0) return ''; + var rbase = mod.substr(0, offset); - if (offset > 0 && remoteBase[rbase]) { - return remoteBase[rbase] + mod.substr(offset + 1); - } else { - return ''; - } + if (!remoteBase[rbase]) return ''; + + return remoteBase[rbase] + mod.substr(offset + 1); } function fixUseModPath(mods) { From fa9cc726cb70b1d12cc9d928126ee1afdd8e8616 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 12 Jan 2022 10:52:55 +0800 Subject: [PATCH 15/74] =?UTF-8?q?fix:=20require=20=E4=B8=8D=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E6=98=AF=E5=90=A6=E5=B8=A6=20query=EF=BC=8C=E7=9A=86?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E7=BC=93=E5=AD=98=20key=20=E5=80=BC=E3=80=82?= =?UTF-8?q?eg.=20['/xxx=3Fquery=3Dyy']?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/runtime/cube.js b/runtime/cube.js index fa3d1f1..4242874 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -23,6 +23,9 @@ var strict = true; var debug = true; var entrances = {}; // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; var mockedProcess = { env: {NODE_ENV: 'production'} @@ -132,8 +135,7 @@ * @param requires * @param referer */ - function load(requires, referer, customArgs) { - customArgs = customArgs || {}; + function load(requires, referer) { if (typeof requires === 'string') { requires = [requires]; } @@ -146,6 +148,9 @@ if (installedModules[require]) { return; } + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = require.split('?'); // download form server var script = doc.createElement('script'); script.type = 'text/javascript'; @@ -157,8 +162,8 @@ }); }; - var rebaseName = reBase(require); - var srcPath = rebaseName || (base + require); + var rebaseName = reBase(mod); + var srcPath = rebaseName || (base + mod); var q = []; if (version) { @@ -168,9 +173,11 @@ q.push('m'); q.push('ref=' + referer); } - if (customArgs[require]) { - Array.prototype.push.apply(q, Object.keys(customArgs[require]).map(c => { - return `${c}=${customArgs[require][c]}` + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply(q, Object.keys(customArgs).map(c => { + return `${c}=${customArgs[c]}` })); } @@ -185,6 +192,7 @@ loaded: false, fired: false }; + requireMap[mod] = require; loading[require] = true; }); checkAllDownloaded(); @@ -249,14 +257,16 @@ debug && console.timeEnd('cube exec'); } - /** * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key * @param name * @param requires * @param callback */ function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + name = requireMap[name] || name; var mod = installedModules[name]; if (!mod) { mod = installedModules[name] = { @@ -266,6 +276,7 @@ } mod.loaded = true; mod.fn = callback; + requireMap[name] && delete requireMap[name]; if (loading[name]) { delete loading[name]; load(requires, name); @@ -348,16 +359,6 @@ mods = [mods]; } - let customArgs = {}; - mods = mods.map(m => { - const tmpArr = m.split('?'); - const mod = tmpArr[0]; - const custom = tmpArr[1]; - - if (!!custom) customArgs[mod] = parseQueryString(custom); - return mod; - }); - if (!noFix) { mods = fixUseModPath(mods); } @@ -383,7 +384,7 @@ }; }()); - load(mods, referer, customArgs); + load(mods, referer); return this; }; /** From ba06c3753d0d69a29e499c5ce99542c592b33861 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 12 Jan 2022 20:38:38 +0800 Subject: [PATCH 16/74] release: v3.1.25 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 54069ec..35735d7 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.24", + "version": "3.1.25", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index 8993643..7259a29 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.19 + * Cube v3.1.25 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function f(a){return function(b,c,d){2===arguments.length&&'function'==typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function g(a){var b=a.indexOf?a.indexOf(':'):0;return 0{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var f=g(a),h=f||t+a,i=[];o&&i.push(o),x&&(i.push('m'),i.push('ref='+b)),d[a]&&Array.prototype.push.apply(i,Object.keys(d[a]).map(b=>`${b}=${d[a][b]}`)),c.src=i.length?h+'?'+i.join('&'):h,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},C[a]=!0}}),i()):void F.push([a,b])}function k(b){var c=B[b];if(!c)if(w)throw new Error('Cube Error: Cannot find module \''+b+'\'');else return s.error(e),{};if(!c.fired)if(c.fired=!0,w)c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,f(b),z,A])}catch(a){s.error(a),c.exports={}}return c.exports}function l(){var a,b;for(a in console.time('cube exec'),y)y.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;k(b),y[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),y[a].length===c&&delete y[a]}));console.timeEnd('cube exec')}function m(a,b,c){var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,C[a]?(delete C[a],j(b,a)):b.length&&j(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach(a=>{let b=a.split('=');c[b[0]]=b[1]}),c}var o,p=window,r=document,s=console,t='',u={},v='utf-8',w=!0,x=!0,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=r.querySelector('head'),E=!1,F=[];console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.1.19'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(v=a.charset),a.version&&(o=a.version),void 0!==a.debug&&(x=a.debug),void 0!==a.strict&&(w=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();j(c[0],c[1])}return this},m.use=function(b,d,f,g){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');'function'==typeof d&&(g=f,f=d,d=void 0),d||(d='Cube.use'),f=f||c,'string'==typeof b&&(b=[b]);let i={};return b=b.map(a=>{const b=a.split('?'),c=b[0],d=b[1];return!d||(i[c]=n(d)),c}),g||(b=h(b)),y[b]||(y[b]=[]),y[b].push(function(){var c=[],d=b.length,g=!1;return function(b){if(!g)return(c.push(b),c.length===d)?(g=!0,f.apply(a,c),!0):void 0}}()),j(b,d,i),this},m.register=function(a,b){return B[a]?s.error('Cube Error: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!G[d]){G[d]=!0,b&&(a=a.replace(/([^};]+)(\{[^}]+\})/g,function(a,c,d){var f=c.split(',').map(function(a){return b+' '+a.trim()});return f.join(',')+d}));var f=r.createElement('style');return f.setAttribute('type','text/css'),f.setAttribute('mod',c),b&&f.setAttribute('ns',b),D.appendChild(f),f.innerHTML=a,a}}},m.debug=function(){p.localStorage&&p.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',B),s.info('unloaded:',c),s.info('unfired:',d)},p.localStorage&&'debug'===localStorage.cube&&(x=!0,p.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var H=r.currentScript;if(H){var I=H.dataset;I.base&&(m.init(I),m.use(I.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){var a,b;for(a in w&&console.time('cube exec'),x)x.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;j(b),x[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),x[a].length===c&&delete x[a]}));w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x={},y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.25'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x[b]||(x[b]=[]),x[b].push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From daf16a9dae47c897d1a1e28b5dec483d4b360334 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 13 Jan 2022 19:58:19 +0800 Subject: [PATCH 17/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AF=AD?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/cube/index.js b/lib/cube/index.js index b4b3324..47c3aef 100644 --- a/lib/cube/index.js +++ b/lib/cube/index.js @@ -11,11 +11,11 @@ const EXT_API_PROCESS = require('./ext_api_process'); const EXT_API_TRANSFER = require('./ext_api_transfer'); const buildinProcessors = { - BUILDIN_JS: new require(path.join(__dirname, '../processor/js')), - BUILDIN_CSS: new require(path.join(__dirname, '../processor/css')), - BUILDIN_JSON: new require(path.join(__dirname, '../processor/json')), - BUILDIN_HTML: new require(path.join(__dirname, '../processor/html')), - BUILDIN_RAW: new require(path.join(__dirname, '../processor/raw')) + BUILDIN_JS: require(path.join(__dirname, '../processor/js')), + BUILDIN_CSS: require(path.join(__dirname, '../processor/css')), + BUILDIN_JSON: require(path.join(__dirname, '../processor/json')), + BUILDIN_HTML: require(path.join(__dirname, '../processor/html')), + BUILDIN_RAW: require(path.join(__dirname, '../processor/raw')) }; /** From 1203915253048dcdf1e40d2a1630a2c4592bd196 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 18 Jan 2022 13:57:51 +0800 Subject: [PATCH 18/74] release: 3.1.26 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 35735d7..0c222c8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.25", + "version": "3.1.26", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index 7259a29..cf87d98 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.25 + * Cube v3.1.26 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){var a,b;for(a in w&&console.time('cube exec'),x)x.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;j(b),x[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),x[a].length===c&&delete x[a]}));w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x={},y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.25'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x[b]||(x[b]=[]),x[b].push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){var a,b;for(a in w&&console.time('cube exec'),x)x.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;j(b),x[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),x[a].length===c&&delete x[a]}));w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x={},y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.26'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x[b]||(x[b]=[]),x[b].push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From e1e7438dd56c256767c6ea3a57852c4fc45e8f48 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 26 Jan 2022 15:57:54 +0800 Subject: [PATCH 19/74] =?UTF-8?q?fix:=20entrances=20=E4=B8=BA=20Object=20?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E4=B8=8D=E6=BB=A1=E8=B6=B3=E9=9C=80=E6=B1=82?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E7=94=A8=20map?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/runtime/cube.js b/runtime/cube.js index 4242874..2a92613 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -22,7 +22,7 @@ var version; var strict = true; var debug = true; - var entrances = {}; // Cube.use's cb + var entrances = new Map(); // Cube.use's cb // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 var requireMap = {}; @@ -234,25 +234,24 @@ * 从Cube.use的文件开始自上而下运行,并调用回调函数 */ function startAppAndCallback() { - var key, arr; debug && console.time('cube exec'); - for (key in entrances) { - if (entrances.hasOwnProperty(key)) { - arr = key.split(','); - arr.forEach(function (entrance) { - var count = 0; - fireModule(entrance); - entrances[key].forEach(function (fn) { - var called = fn(installedModules[entrance].exports); - if (called) { - count++; - } - }); - if (entrances[key].length === count) { // 回调函数都执行完后删除 - delete entrances[key]; + for (let [key, value] of entrances) { + key.length && key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + fireModule(entrance); + value.length && value.forEach(function (fn) { + var called = fn(installedModules[entrance].exports); + if (called) { + count++; } }); - } + if (value.length === count) { // 回调函数都执行完后删除 + entrances.delete(key); + } + }); } debug && console.timeEnd('cube exec'); } @@ -363,10 +362,11 @@ mods = fixUseModPath(mods); } - if (!entrances[mods]) { - entrances[mods] = []; + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); } - entrances[mods].push(function () { + entrances.get(mods).push(function () { var apps = []; var length = mods.length; var firing = false; From 5080898733cfe6d728a1f4fefa133eb5105e6251 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 26 Jan 2022 17:28:13 +0800 Subject: [PATCH 20/74] release: 3.1.27 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 0c222c8..ed8d8ce 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.26", + "version": "3.1.27", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index cf87d98..d42c1b6 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.26 + * Cube v3.1.27 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){var a,b;for(a in w&&console.time('cube exec'),x)x.hasOwnProperty(a)&&(b=a.split(','),b.forEach(function(b){var c=0;j(b),x[a].forEach(function(a){var d=a(B[b].exports);d&&c++}),x[a].length===c&&delete x[a]}));w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x={},y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.26'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x[b]||(x[b]=[]),x[b].push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){w&&console.time('cube exec');for(let[a,b]of x)a.length&&a.forEach(function(c){if(!C[c]){var d=0;j(c),b.length&&b.forEach(function(a){var b=a(B[c].exports);b&&d++}),b.length===d&&x.delete(a)}});w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x=new Map,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.27'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x.has(b)||x.set(b,[]),x.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From e2593777850c3df0b5729bcfc94c751cc1f391ac Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 1 Mar 2022 15:08:24 +0800 Subject: [PATCH 21/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=20requireMap=20=E8=8E=B7=E5=8F=96=E7=9A=84=20name=20?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/cube.js b/runtime/cube.js index 2a92613..294ca34 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -265,6 +265,7 @@ */ function Cube(name, requires, callback) { // 暂时兼容返回的 name 不带入参的情况 + const oldName = name; name = requireMap[name] || name; var mod = installedModules[name]; if (!mod) { @@ -275,7 +276,7 @@ } mod.loaded = true; mod.fn = callback; - requireMap[name] && delete requireMap[name]; + requireMap[oldName] && delete requireMap[oldName]; if (loading[name]) { delete loading[name]; load(requires, name); From eb30419db3d4917bb03c44521ecc215ea894dd1f Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 1 Mar 2022 15:53:54 +0800 Subject: [PATCH 22/74] release: 3.1.28 --- package.json | 2 +- runtime/cube.min.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ed8d8ce..076bd02 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.27", + "version": "3.1.28", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube.min.js b/runtime/cube.min.js index d42c1b6..0013cc7 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.27 + * Cube v3.1.28 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){w&&console.time('cube exec');for(let[a,b]of x)a.length&&a.forEach(function(c){if(!C[c]){var d=0;j(c),b.length&&b.forEach(function(a){var b=a(B[c].exports);b&&d++}),b.length===d&&x.delete(a)}});w&&console.timeEnd('cube exec')}function l(a,b,c){a=y[a]||a;var d=B[a];d||(d=B[a]={exports:{},fired:!1}),d.loaded=!0,d.fn=c,y[a]&&delete y[a],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x=new Map,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.27'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x.has(b)||x.set(b,[]),x.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){w&&console.time('cube exec');for(let[a,b]of x)a.length&&a.forEach(function(c){if(!C[c]){var d=0;j(c),b.length&&b.forEach(function(a){var b=a(B[c].exports);b&&d++}),b.length===d&&x.delete(a)}});w&&console.timeEnd('cube exec')}function l(a,b,c){const d=a;a=y[a]||a;var e=B[a];e||(e=B[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,y[d]&&delete y[d],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x=new Map,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.28'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x.has(b)||x.set(b,[]),x.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From d7fc51dfa33ac226afa4b081f1df789a4a33607a Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 23 May 2022 14:35:14 +0800 Subject: [PATCH 23/74] =?UTF-8?q?feat:=20=E4=B8=BA=20peerDeps=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=94=AF=E6=8C=81=E7=8E=AF=E5=A2=83=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=BA=93=E4=B8=BA=20module=20=E7=BA=A7=E5=88=AB?= =?UTF-8?q?=E7=9A=84=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/runtime/cube.js b/runtime/cube.js index 294ca34..b469e43 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -26,6 +26,7 @@ // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 var requireMap = {}; + var registerArr = []; var mockedProcess = { env: {NODE_ENV: 'production'} @@ -145,12 +146,12 @@ } requires.forEach(function (require) { - if (installedModules[require]) { + if (installedModules[require] || getGlobalRegister(require)) { return; } - + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = require.split('?'); + const [mod, custom] = String(require).split('?'); // download form server var script = doc.createElement('script'); script.type = 'text/javascript'; @@ -198,13 +199,23 @@ checkAllDownloaded(); } + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } + } + return false; + } + /** * 运行模块 * @param module * @returns {*} */ function fireModule(module) { - var m = installedModules[module]; + var m = installedModules[module] || getGlobalRegister(module); if (!m) { const err = new Error('Cube Error: Cannot find module ' + '\'' + module + '\''); if (strict) { @@ -265,7 +276,7 @@ */ function Cube(name, requires, callback) { // 暂时兼容返回的 name 不带入参的情况 - const oldName = name; + const oldName = String(name); name = requireMap[name] || name; var mod = installedModules[name]; if (!mod) { @@ -390,10 +401,12 @@ }; /** * register module in to cache - * @param {string} module [description] - * @param {} exports [description] + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 */ - Cube.register = function (module, exports) { + Cube.register = function (module, exports, { matchType = 'version' } = {}) { if (installedModules[module]) { return log.warn('Cube Warning: Module ' + '\'' + module + '\'' + ' already registered'); } @@ -401,8 +414,18 @@ exports: exports, fn: noop, loaded: true, - fired: true + fired: true, }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + return this; }; /** From 20d1ee6d4c315d07531b8157fa2b2cfcdaf1fc8a Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 23 May 2022 20:22:56 +0800 Subject: [PATCH 24/74] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20esm=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/runtime/cube.js b/runtime/cube.js index b469e43..9504d74 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -32,6 +32,7 @@ env: {NODE_ENV: 'production'} }; var mockedGlobal = undefined; + var esModule = true; var installedModules = {/*exports, fn, loaded, fired*/}; // The module cache var loading = {}; @@ -238,7 +239,7 @@ } } } - return m.exports; + return isEsModule(m.exports) ? m.exports.default : m.exports; } /** @@ -252,9 +253,9 @@ // 严格检查 if (loading[entrance]) return; var count = 0; - fireModule(entrance); + const exportModule = fireModule(entrance); value.length && value.forEach(function (fn) { - var called = fn(installedModules[entrance].exports); + var called = fn(exportModule); if (called) { count++; } @@ -335,6 +336,10 @@ if (config.global) { mockedGlobal = config.global; } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } inited = true; @@ -532,4 +537,8 @@ }); return obj; } + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; + } })(window, null); \ No newline at end of file From 285714f7d677a9772cf4eb2d9bb856c6ebd9de55 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 24 May 2022 10:21:13 +0800 Subject: [PATCH 25/74] =?UTF-8?q?fix:=20=E9=BB=98=E8=AE=A4=E5=85=B3?= =?UTF-8?q?=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/cube.js b/runtime/cube.js index 9504d74..e1c6030 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -32,7 +32,7 @@ env: {NODE_ENV: 'production'} }; var mockedGlobal = undefined; - var esModule = true; + var esModule = false; var installedModules = {/*exports, fn, loaded, fired*/}; // The module cache var loading = {}; From ada6f36b8cfac955ebb1d19bda067ecedc24d67f Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 24 May 2022 17:45:28 +0800 Subject: [PATCH 26/74] release: v3.2.0 --- package.json | 11 ++++++----- runtime/cube.min.js | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 076bd02..2b900a1 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.1.28", + "version": "3.2.0", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", @@ -37,21 +37,22 @@ "xfs": "~0.2.2" }, "devDependencies": { + "babel-preset-env": "*", + "cube-babel": "*", "cube-coffee": "*", "cube-ejs": "*", - "cube-babel": "*", "cube-jade": "*", + "cube-lazy-parse": "*", "cube-less": "*", "cube-react": "*", "cube-stylus": "*", - "cube-lazy-parse": "*", + "esminify": "3.0.5", "expect.js": "0.3.1", "jscoverage": "0.6.0", "jsdom": "6.2.0", "minami": "^1.1.1", "mocha": "3.2.0", - "supertest": "3.0.0", - "babel-preset-env": "*" + "supertest": "3.0.0" }, "optionalDependencies": {} } diff --git a/runtime/cube.min.js b/runtime/cube.min.js index 0013cc7..ebf0315 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v3.1.28 + * Cube v3.2.0 */ -(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return j(a);var c=j(a);return l.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,l.use(b,a,d)):l.use(b,a,function(a){a=l.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(t):0;if(0>=b)return'';var c=a.substr(0,b);return s[c]?s[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{l(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||r+h,g=[];if(n&&g.push(n),w&&(g.push('m'),g.push('ref='+b)),i){const a=m(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,D.appendChild(c),B[a]={exports:{},loaded:!1,fired:!1},y[h]=a,C[a]=!0}}),h()):void F.push([a,b])}function j(b){var c=B[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(v)throw a;else return q.error(a),{}}if(!c.fired)if(c.fired=!0,v)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),z,A])}catch(a){q.error(a),c.exports={}}return c.exports}function k(){w&&console.time('cube exec');for(let[a,b]of x)a.length&&a.forEach(function(c){if(!C[c]){var d=0;j(c),b.length&&b.forEach(function(a){var b=a(B[c].exports);b&&d++}),b.length===d&&x.delete(a)}});w&&console.timeEnd('cube exec')}function l(a,b,c){const d=a;a=y[a]||a;var e=B[a];e||(e=B[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,y[d]&&delete y[d],C[a]?(delete C[a],i(b,a)):b.length&&i(b,a)}function m(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}var n,o=window,p=document,q=console,r='',s={},t=':',u='utf-8',v=!0,w=!0,x=new Map,y={},z={env:{NODE_ENV:'production'}},A=void 0,B={},C={},D=p.querySelector('head'),E=!1,F=[];w&&console.time('cube load'),l.setRemoteBase=function(a){Object.assign(s,a)},l.toString=function(){return'Cube:v3.1.28'},l.init=function(a){if(a.base&&'/'!==a.base&&(r=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(s[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(u=a.charset),a.version&&(n=a.version),void 0!==a.debug&&(w=a.debug),void 0!==a.strict&&(v=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),E=!0;F.length;){var c=F.shift();i(c[0],c[1])}return this},l.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),x.has(b)||x.set(b,[]),x.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},l.register=function(a,b){return B[a]?q.warn('Cube Warning: Module \''+a+'\' already registered'):(B[a]={exports:b,fn:c,loaded:!0,fired:!0},this)};var G=/([^};]+)(\{[^}]+\})/g,H={};l.css=function(a,b,c){if(a){var d=c+'@'+b;if(!H[d]){H[d]=!0,b&&(a=a.replace(G,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=p.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),D.appendChild(e),e.innerHTML=a,a}}},l.debug=function(){o.localStorage&&o.addEventListener?(localStorage.cube='debug',location.reload()):q.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},l.cache=function(){var a,b,c={},d={};for(a in B)B.hasOwnProperty(a)&&(b=B[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));q.info('modules:',B),q.info('unloaded:',c),q.info('unfired:',d)},o.localStorage&&'debug'===localStorage.cube&&(w=!0,o.addEventListener('load',l.cache)),b=b||'Cube',a[b]?q.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=l;var I=p.currentScript;if(I){var J=I.dataset;J.base&&(l.init(J),l.use(J.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file +(function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.2.0'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 733395e3b60e3e13ada790aac94c6cc359033227 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 15:03:23 +0800 Subject: [PATCH 27/74] feat: reconstruction --- runtime-reconstruct/cube-enhancer.js | 152 ++++++++ runtime-reconstruct/index.js | 531 +++++++++++++++++++++++++++ 2 files changed, 683 insertions(+) create mode 100644 runtime-reconstruct/cube-enhancer.js create mode 100644 runtime-reconstruct/index.js diff --git a/runtime-reconstruct/cube-enhancer.js b/runtime-reconstruct/cube-enhancer.js new file mode 100644 index 0000000..3134244 --- /dev/null +++ b/runtime-reconstruct/cube-enhancer.js @@ -0,0 +1,152 @@ +// 支持 cube 的一些工具方法 +export function noop() {} +export function approve() { + return true; +} +function baseCodeProxy(c) { + return c; +} +export function combineExecute(c) { + return 'Cube.cStart();' + c + ';Cube.cStop();'; +} +export function fetchCubeCode(url, inputCodeProxy) { + const codeProxy = inputCodeProxy || baseCodeProxy; + return fetch(url, { + headers: { + 'Content-Type': 'text/plain', + }, + }) + .then((response) => response.text()) + .then((code) => new Function(codeProxy(code))()); +} +const head = document.querySelector('head'); +/** 原有 cube 请求方法 */ +export function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = () => { + window.Cube(require, [], () => { + console.error(`load module: ${require} failed.`); + }); + }; + script.src = url; + head.appendChild(script); +} +export function generateModuleCallback(moduleNames, callback) { + const exportModules = {}; + return function (exportModule, path) { + exportModules[path] = exportModule; + // 外部调用时保障了对应关系 此处简单判断 + if (Object.keys(exportModules).length === moduleNames.length) { + // 保证 module 顺序 + callback(...moduleNames.map((k) => exportModules[k])); + return true; + } + return false; + }; +} +export function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } + } + } + return paths; +} +const parseCssRe = /([^};]+)(\{[^}]+\})/g; +/** 原有 css 请求方法 */ +export function scriptCubeCss(originCss, namespace, file) { + let css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; + }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; +} +export function parseQueryString(param) { + let kvs = param.split('&'); + let obj = {}; + kvs.forEach((kv) => { + let tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; +} +/** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ +export function rebase(name, config) { + const { base, remoteSeparator, remoteBase } = config; + let defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); +} +export function intercept() { + console.time('intercept exec'); + const referer = 'intercept_mock'; + const dep = []; + const proxy = (c) => { + const d = c.replaceAll('Cube(', 'Cube._store('); + // console.log(d); + return d; + }; + return Promise.all( + dep.map((s) => { + const [mod, custom] = String(s).split('?'); + const config = window.Cube.config; + var srcPath = rebase(mod, config); + const { version, debug } = config; + var query = []; + if (version) { + query.push(version); + } + if (debug) { + query.push('m'); + query.push('ref=' + referer); + } + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return fetchCubeCode(srcPath, proxy); + }) + ).then(() => { + console.timeEnd('intercept exec'); + }); +} diff --git a/runtime-reconstruct/index.js b/runtime-reconstruct/index.js new file mode 100644 index 0000000..e186580 --- /dev/null +++ b/runtime-reconstruct/index.js @@ -0,0 +1,531 @@ +// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 + +import { scriptCubeCss, noop, fixMododulePath, rebase, parseQueryString, fetchCubeCode } from './cube-enhancer'; +/** + * 默认配置项变量 + */ +const DEFAULT_CUBE_CONFIG = { + base: '', + remoteBase: {}, + remoteSeparator: ':', + mockedProcess: { + env: { NODE_ENV: 'production' }, + }, + mockedGlobal: undefined, + /** 这个字段应该已经废弃了 */ + charset: 'utf-8', + /** 仅严格模式 */ + strict: true, + /** 声明组件源码是否使用 esModule 模式*/ + esModule: false, + version: undefined, + /** 是否开启 debug 模式*/ + debug: true, + /** 是否开启请求合并 */ + combine: false, + /** 声明使用 fetch 请求还是创建 script 请求 */ + requestMethod: 'fetch', +}; +/** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ +export class Cube { + constructor() { + this.config = { ...DEFAULT_CUBE_CONFIG }; + this.state = { + /** 是否完成初始化 */ + inited: true, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: {}, + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = (moduleName, exports, option = { matchType: 'version' }) => { + const { matchType } = option; + if (this._getReadyModule(moduleName)) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { upperDep: [], entryDep: [] }, + ready: true, + loaded: true, + fired: true, + }; + if (matchType === 'module') { + this.state.registerModules.push({ + moduleName, + matchType, + match: new RegExp(`^datav:\/npm\/${moduleName}\/([^\/]+)?$`), + module: this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = (config) => { + if (config.base && config.base !== '/') { + this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (let key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + this.config.version = config.version ?? this.config.version; + this.config.esModule = config.esModule ?? this.config.esModule; + this.config.debug = config.debug ?? this.config.debug; + this.config.combine = config.combine ?? this.config.combine; + this.state.inited = true; + while (this.state.pendingQueue.length) { + const pendingInfo = this.state.pendingQueue.shift(); + this._load(pendingInfo[0], pendingInfo[1]); + } + }; + /** + * 异步加载模块 + */ + this.use = (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) => { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + let moduleNames = typeof moduleName === 'string' ? [moduleName] : [...moduleName]; + let omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + let callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, this.config.remoteSeparator) : moduleNames; + this.state.entrances.set(moduleNames, { + callback, + loadSources: [...moduleNames], + }); + this._load(moduleNames, moduleNames); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = (responseName, requires, sourceCode) => { + const moduleName = this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if (this.state.installedModules[moduleName]?.loaded) { + return; + } + this._store(moduleName, requires, sourceCode); + this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = (css, namespace, file) => { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (this.state.cssModule[modId]) { + return; + } + this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = (moduleName, dep, sourceCode) => { + // 不重复存储 + if (this.state.installedModules[moduleName]?.loaded) { + return; + } + const module = this.state.installedModules[moduleName]; + if (module) { + module.dep.push(...dep); + module.sourceCode = sourceCode; + module.loaded = true; + } else { + this.state.installedModules[moduleName] = { + exports: {}, + sourceCode, + dep, + refer: { upperDep: [], entryDep: [] }, + loaded: true, + ready: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = (moduleNames, refer) => { + if (!this.state.inited) { + this.state.pendingQueue.push([moduleNames, refer]); + return; + } + moduleNames.forEach((moduleName) => { + const module = this.state.installedModules[moduleName]; + if (this._getReadyModule(moduleName)) { + this._triggerCallback(this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + return; + } + if (module) { + this._addReferToModule(module.refer, refer); + return; + } + const [name] = moduleName.split('?'); + this.state.requireMap[name] = moduleName; + this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + upperDep: [], + }, + loaded: false, + ready: false, + fired: false, + }; + this._addReferToModule(this.state.installedModules[moduleName].refer, refer); + const srcPath = this._generatePath(moduleName); + fetchCubeCode(srcPath); + }); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = (refer) => { + refer.upperDep.forEach((mName) => { + const upperModule = this.state.installedModules[mName]; + if (upperModule) { + this._initiate(mName); + } + }); + refer.entryDep.forEach((entry) => { + const upperModule = this.state.entrances.get(entry); + if (upperModule) { + this._triggerEntryCallback(entry); + } + }); + }; + /** 实例化并执行回调 */ + this._initiate = (moduleName) => { + if (!this.state.installedModules[moduleName] || this.state.installedModules[moduleName].ready) return; + const module = this.state.installedModules[moduleName]; + if (module) { + if (!module.loaded) return; + if (module.dep.length) { + let allLoad = true; + module.dep.forEach((name) => { + if (this._getReadyModule(name)) return; + if (this._checkCursiveDep(moduleName, name)) return; + allLoad = false; + this._load([name], moduleName); + }); + if (!allLoad) return; + } + } + // 此处直接fire 请求资源都默认为需要的 + this.state.installedModules[moduleName].ready = true; + this._triggerCallback(module.refer); + }; + /** 执行回调函数 */ + this._triggerEntryCallback = (entry) => { + const entryInfo = this.state.entrances.get(entry); + if (entryInfo && entryInfo.loadSources.every(this._getReadyModule)) { + // 存在隐藏依赖的情况 降低 _fireModule 触发时机 + if (entryInfo.loadSources.every(this._fireModule)) { + entryInfo.callback(...entry.map((e) => this.state.installedModules[e].exports)); + this.state.entrances.delete(entry); + } + } + }; + /** 实例化某一模块 */ + this._fireModule = (moduleName) => { + const module = this.state.installedModules[moduleName]; + if (!module || !module.ready) return false; + if (module.fired) return true; + let fireResult = true; + try { + const exports = module.sourceCode.apply(window, [ + module, + module.exports, + this._cubeRequire(moduleName), + this._cubeLoad(moduleName), + this.config.mockedProcess, + this.config.mockedGlobal, + ]); + module.exports = this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } catch (e) { + if (e.message === `Cube inner denpendency lost; refetch inited`) { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } finally { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (this.state.lostDepModule[moduleName]) { + module.ready = false; + this.state.lostDepModule[moduleName].forEach((name) => { + if (!module.dep.includes(name)) { + module.dep.push(name); + this._load([name], moduleName); + console.warn(`Cube module ${moduleName} 缺失声明依赖 ${name}`); + } + }); + Reflect.deleteProperty(this.state.lostDepModule, moduleName); + fireResult = false; + } else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = (selfName) => (moduleName, namespace) => { + if (namespace === undefined) { + const module = this._getModule(moduleName); + if (module?.fired) { + return module.exports; + } + if (this._checkCursiveDep(selfName, moduleName)) { + console.error(`Cube 检测到循环依赖 ${moduleName} --> ${selfName}`); + return {}; + } + const fireSucceed = this._fireModule(moduleName); + if (!module || !fireSucceed) { + if (this.state.lostDepModule[selfName]) { + this.state.lostDepModule[selfName].push(moduleName); + } else { + this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error(`Cube inner denpendency lost; refetch inited`); + } else { + return module.exports; + } + } else { + // 默认 css 模块不再依赖其它模块 + let css; + const module = this._getReadyModule(moduleName); + if (!module) return; + if (module.fired) { + css = module.exports; + } + const fireSucceed = this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return this.css(css, namespace, moduleName); + } + }; + /** 支持组件内模块加载 */ + this._cubeLoad = (referer) => { + /** The load function */ + const __cube_load__ = (moduleName, namespace, cb) => { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + this.use(moduleName, referer, cb); + } else { + this.use(moduleName, referer, (css) => { + css = this.css(css, namespace, moduleName); + cb && cb(css); + }); + } + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = (moduleName) => { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [name, custom] = moduleName.split('?'); + let srcPath = rebase(name, this.config); + const query = []; + // 历史逻辑 疑似命中缓存 + query.push('m=1'); + if (this.config.version) { + query.push(this.config.version); + } + if (this.config.combine) { + query.push('combine=true'); + } + if (custom) { + const customArgs = parseQueryString(custom); + query.push( + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToModule = (module, referer) => { + if (!referer) { + return module; + } + // 此处简单判断 + const isEntry = typeof referer !== 'string'; + if (isEntry) { + module.entryDep.push(referer); + } else { + if (!module.upperDep.includes(referer)) { + module.upperDep.push(referer); + } + } + return module; + }; + /** 修正返回值 */ + this._calibrateName = (responseName) => { + // 兼容返回的 name 不带入参的情况 + const moduleName = this.state.requireMap[responseName] || responseName; + if (this.state.requireMap[responseName]) { + Reflect.deleteProperty(this.state.requireMap, responseName); + } + return moduleName; + }; + // /** 引用信息缺失时 自构建引用关系 剩者为王 */ + // private chaosBattle = (names: string[]) => { + // if (names.length === 1) { + // this._initiateAndCallback(names[0]); + // } else if (names.length > 1) { + // // this.state.combineStatus = 'execute'; + // names.forEach((name) => this._initiateAndCallback(name)); + // } + // }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = (requirePath) => { + for (const register of this.state.registerModules) { + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getReadyModule = (name) => { + const module = this._getModule(name); + if (module?.ready) { + return module; + } + }; + this._getModule = (name) => { + const module = this.state.installedModules[name]; + if (!module) { + return this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = (module) => { + return this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this._checkCursiveDep = (selfName, requireName) => { + if (requireName === selfName) return true; + let depArr = [requireName]; + let detected = false; + let times = 6; // 防止下层依赖环 + do { + let newDep = []; + depArr.forEach((d) => { + const depModule = this.state.installedModules[d]; + if (depModule && !depModule.fired) { + newDep.push(...depModule.dep); + } + }); + if (newDep.includes(selfName)) { + detected = true; + } + depArr = newDep; + times -= 1; + } while (detected === false && times > 0 && depArr.length > 0); + if (detected) return true; + return false; + }; + // 测试使用 + // private _unResolvedDep = () => { + // Object.values(this.state.loadingModule).forEach((m) => { + // m.unresolveDep = m.dep.filter((d) => !this._getFiredModule(d)); + // }); + // }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = () => { + console.info('modules:', this.state.installedModules); + console.info( + 'unloaded:', + Object.values(this.state.installedModules).filter((m) => !m.loaded) + ); + console.info( + 'unfired:', + Object.values(this.state.installedModules).filter((m) => !m.fired) + ); + }; + /** @deprecated */ + this.debug = () => { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = () => { + console.error('不支持动态修改 remoteBase'); + }; + } +} +/** 全局初始化单例 */ +export function setGlobalCube(alias = 'Cube') { + const global = window; + if (global[alias]) { + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; + } + const cube = new Cube(); + // 支持 Cube(...args) 的写法 + const cubeHandler = (moduleName, requires, instance) => { + return cube.execute(moduleName, requires, instance); + }; + const mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube).includes(key)) { + return cube[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + return global[alias]; +} +/** 模拟目前主动挂在 window 的做法 */ +setGlobalCube(); From febc0998facddf7cb0b5db3be17a9a852f48f0fd Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 16:14:59 +0800 Subject: [PATCH 28/74] remove import & export --- runtime-reconstruct/cube-enhancer.js | 152 -------------------------- runtime-reconstruct/index.js | 154 ++++++++++++++++++++++++++- 2 files changed, 150 insertions(+), 156 deletions(-) delete mode 100644 runtime-reconstruct/cube-enhancer.js diff --git a/runtime-reconstruct/cube-enhancer.js b/runtime-reconstruct/cube-enhancer.js deleted file mode 100644 index 3134244..0000000 --- a/runtime-reconstruct/cube-enhancer.js +++ /dev/null @@ -1,152 +0,0 @@ -// 支持 cube 的一些工具方法 -export function noop() {} -export function approve() { - return true; -} -function baseCodeProxy(c) { - return c; -} -export function combineExecute(c) { - return 'Cube.cStart();' + c + ';Cube.cStop();'; -} -export function fetchCubeCode(url, inputCodeProxy) { - const codeProxy = inputCodeProxy || baseCodeProxy; - return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, - }) - .then((response) => response.text()) - .then((code) => new Function(codeProxy(code))()); -} -const head = document.querySelector('head'); -/** 原有 cube 请求方法 */ -export function scriptCubeCode(url) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.onerror = () => { - window.Cube(require, [], () => { - console.error(`load module: ${require} failed.`); - }); - }; - script.src = url; - head.appendChild(script); -} -export function generateModuleCallback(moduleNames, callback) { - const exportModules = {}; - return function (exportModule, path) { - exportModules[path] = exportModule; - // 外部调用时保障了对应关系 此处简单判断 - if (Object.keys(exportModules).length === moduleNames.length) { - // 保证 module 顺序 - callback(...moduleNames.map((k) => exportModules[k])); - return true; - } - return false; - }; -} -export function fixMododulePath(paths, remoteSeparator) { - var len = paths.length; - var mod; - for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } - } - } - return paths; -} -const parseCssRe = /([^};]+)(\{[^}]+\})/g; -/** 原有 css 请求方法 */ -export function scriptCubeCss(originCss, namespace, file) { - let css = originCss; - if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; - }); - } - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - if (file) { - style.setAttribute('mod', file); - } - if (namespace) { - style.setAttribute('ns', namespace); - } - head.appendChild(style); - style.innerHTML = css; - return css; -} -export function parseQueryString(param) { - let kvs = param.split('&'); - let obj = {}; - kvs.forEach((kv) => { - let tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; - }); - return obj; -} -/** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ -export function rebase(name, config) { - const { base, remoteSeparator, remoteBase } = config; - let defaultPath = base + name; - var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) return defaultPath; - var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) return defaultPath; - return remoteBase[rbase] + name.substr(offset + 1); -} -export function intercept() { - console.time('intercept exec'); - const referer = 'intercept_mock'; - const dep = []; - const proxy = (c) => { - const d = c.replaceAll('Cube(', 'Cube._store('); - // console.log(d); - return d; - }; - return Promise.all( - dep.map((s) => { - const [mod, custom] = String(s).split('?'); - const config = window.Cube.config; - var srcPath = rebase(mod, config); - const { version, debug } = config; - var query = []; - if (version) { - query.push(version); - } - if (debug) { - query.push('m'); - query.push('ref=' + referer); - } - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return fetchCubeCode(srcPath, proxy); - }) - ).then(() => { - console.timeEnd('intercept exec'); - }); -} diff --git a/runtime-reconstruct/index.js b/runtime-reconstruct/index.js index e186580..50f0065 100644 --- a/runtime-reconstruct/index.js +++ b/runtime-reconstruct/index.js @@ -1,6 +1,152 @@ -// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 +// 支持 cube 的一些工具方法 +function noop() {} + +function baseCodeProxy(c) { + return c; +} + +function fetchCubeCode(url, inputCodeProxy) { + const codeProxy = inputCodeProxy || baseCodeProxy; + return fetch(url, { + headers: { + 'Content-Type': 'text/plain', + }, + }) + .then((response) => response.text()) + .then((code) => new Function(codeProxy(code))()); +} +const head = document.querySelector('head'); +/** 原有 cube 请求方法 */ +function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = () => { + window.Cube(require, [], () => { + console.error(`load module: ${require} failed.`); + }); + }; + script.src = url; + head.appendChild(script); +} +function generateModuleCallback(moduleNames, callback) { + const exportModules = {}; + return function (exportModule, path) { + exportModules[path] = exportModule; + // 外部调用时保障了对应关系 此处简单判断 + if (Object.keys(exportModules).length === moduleNames.length) { + // 保证 module 顺序 + callback(...moduleNames.map((k) => exportModules[k])); + return true; + } + return false; + }; +} +function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } + } + } + return paths; +} +const parseCssRe = /([^};]+)(\{[^}]+\})/g; +/** 原有 css 请求方法 */ +function scriptCubeCss(originCss, namespace, file) { + let css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; + }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; +} +function parseQueryString(param) { + let kvs = param.split('&'); + let obj = {}; + kvs.forEach((kv) => { + let tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; +} +/** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ +function rebase(name, config) { + const { base, remoteSeparator, remoteBase } = config; + let defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); +} +function intercept() { + console.time('intercept exec'); + const referer = 'intercept_mock'; + const dep = []; + const proxy = (c) => { + const d = c.replaceAll('Cube(', 'Cube._store('); + // console.log(d); + return d; + }; + return Promise.all( + dep.map((s) => { + const [mod, custom] = String(s).split('?'); + const config = window.Cube.config; + var srcPath = rebase(mod, config); + const { version, debug } = config; + var query = []; + if (version) { + query.push(version); + } + if (debug) { + query.push('m'); + query.push('ref=' + referer); + } + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return fetchCubeCode(srcPath, proxy); + }) + ).then(() => { + console.timeEnd('intercept exec'); + }); +} -import { scriptCubeCss, noop, fixMododulePath, rebase, parseQueryString, fetchCubeCode } from './cube-enhancer'; /** * 默认配置项变量 */ @@ -30,7 +176,7 @@ const DEFAULT_CUBE_CONFIG = { * cube 重构 * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg */ -export class Cube { +class Cube { constructor() { this.config = { ...DEFAULT_CUBE_CONFIG }; this.state = { @@ -505,7 +651,7 @@ export class Cube { } } /** 全局初始化单例 */ -export function setGlobalCube(alias = 'Cube') { +function setGlobalCube(alias = 'Cube') { const global = window; if (global[alias]) { console.error('Cube Error: window.' + alias + ' already in using'); From 701f28023dc7b16a8840ed6558dc268b1c1f4b87 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 16:19:35 +0800 Subject: [PATCH 29/74] feat: support xfs --- runtime-reconstruct/{index.js => cube.js} | 0 tools.js | 4 ++++ 2 files changed, 4 insertions(+) rename runtime-reconstruct/{index.js => cube.js} (100%) diff --git a/runtime-reconstruct/index.js b/runtime-reconstruct/cube.js similarity index 100% rename from runtime-reconstruct/index.js rename to runtime-reconstruct/cube.js diff --git a/tools.js b/tools.js index fdca595..2d3341f 100644 --- a/tools.js +++ b/tools.js @@ -278,6 +278,10 @@ function processDirSmart(cube, data, cb) { path.join(dest, 'cube.js'), xfs.readFileSync(path.join(__dirname, './runtime/cube.min.js')) ); + xfs.writeFileSync( + path.join(dest, 'cube.js'), + xfs.readFileSync(path.join(__dirname, './runtime-reconstruct/cube.min.js')) + ); xfs.writeFileSync( path.join(dest, 'cube_file_map.json'), JSON.stringify(cube.mangleFileNameMap(), null, 2) From f111826e1f9b0c4c7839a3ef7d647fd76817638d Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 16:40:47 +0800 Subject: [PATCH 30/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E8=B7=AF=E5=BE=84=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools.js b/tools.js index 2d3341f..7221c4b 100644 --- a/tools.js +++ b/tools.js @@ -274,10 +274,10 @@ function processDirSmart(cube, data, cb) { }); async.waterfall(actions, function (err) { - xfs.writeFileSync( - path.join(dest, 'cube.js'), - xfs.readFileSync(path.join(__dirname, './runtime/cube.min.js')) - ); + // xfs.writeFileSync( + // path.join(dest, 'cube.js'), + // xfs.readFileSync(path.join(__dirname, './runtime/cube.min.js')) + // ); xfs.writeFileSync( path.join(dest, 'cube.js'), xfs.readFileSync(path.join(__dirname, './runtime-reconstruct/cube.min.js')) From 03d0a44948db21ff9342195c23b9dc206faad0c7 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 16:49:23 +0800 Subject: [PATCH 31/74] =?UTF-8?q?fix=EF=BC=9A=E6=94=AF=E6=8C=81=E5=8E=8B?= =?UTF-8?q?=E7=BC=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 1 + runtime-reconstruct/cube.js => runtime/cube-reconstruction.js | 0 tools.js | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) rename runtime-reconstruct/cube.js => runtime/cube-reconstruction.js (100%) diff --git a/Makefile b/Makefile index f4df2b2..ea1ea9c 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ install: release: @$(min) ./runtime/cube.js -o ./runtime/cube.min.js + @$(min) ./runtime/cube-reconstruction.js -o ./runtime/cube-reconstruction.min.js @node ./bin/version.js publish: release tag diff --git a/runtime-reconstruct/cube.js b/runtime/cube-reconstruction.js similarity index 100% rename from runtime-reconstruct/cube.js rename to runtime/cube-reconstruction.js diff --git a/tools.js b/tools.js index 7221c4b..93c2fcc 100644 --- a/tools.js +++ b/tools.js @@ -280,7 +280,7 @@ function processDirSmart(cube, data, cb) { // ); xfs.writeFileSync( path.join(dest, 'cube.js'), - xfs.readFileSync(path.join(__dirname, './runtime-reconstruct/cube.min.js')) + xfs.readFileSync(path.join(__dirname, './runtime/cube-reconstruction.min.js')) ); xfs.writeFileSync( path.join(dest, 'cube_file_map.json'), From 16c70c4e7b4cf7f76dc111b73b6a42a34240ece5 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 18:50:11 +0800 Subject: [PATCH 32/74] fix: to es5 --- runtime/cube-reconstruction.js | 507 +++++++++++++++++++-------------- 1 file changed, 288 insertions(+), 219 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 50f0065..7ac18b8 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,42 +1,76 @@ +// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 +var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; +var __spreadArray = + (this && this.__spreadArray) || + function (to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; // 支持 cube 的一些工具方法 function noop() {} - function baseCodeProxy(c) { return c; } - function fetchCubeCode(url, inputCodeProxy) { - const codeProxy = inputCodeProxy || baseCodeProxy; + var codeProxy = inputCodeProxy || baseCodeProxy; return fetch(url, { headers: { 'Content-Type': 'text/plain', }, }) - .then((response) => response.text()) - .then((code) => new Function(codeProxy(code))()); + .then(function (response) { + return response.text(); + }) + .then(function (code) { + return new Function(codeProxy(code))(); + }); } -const head = document.querySelector('head'); +var head = document.querySelector('head'); /** 原有 cube 请求方法 */ function scriptCubeCode(url) { var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; - script.onerror = () => { - window.Cube(require, [], () => { - console.error(`load module: ${require} failed.`); + script.onerror = function () { + window.Cube(require, [], function () { + console.error('load module: '.concat(require, ' failed.')); }); }; script.src = url; head.appendChild(script); } function generateModuleCallback(moduleNames, callback) { - const exportModules = {}; + var exportModules = {}; return function (exportModule, path) { exportModules[path] = exportModule; // 外部调用时保障了对应关系 此处简单判断 if (Object.keys(exportModules).length === moduleNames.length) { // 保证 module 顺序 - callback(...moduleNames.map((k) => exportModules[k])); + callback.apply( + void 0, + moduleNames.map(function (k) { + return exportModules[k]; + }) + ); return true; } return false; @@ -60,10 +94,10 @@ function fixMododulePath(paths, remoteSeparator) { } return paths; } -const parseCssRe = /([^};]+)(\{[^}]+\})/g; +var parseCssRe = /([^};]+)(\{[^}]+\})/g; /** 原有 css 请求方法 */ function scriptCubeCss(originCss, namespace, file) { - let css = originCss; + var css = originCss; if (namespace) { css = originCss.replace(parseCssRe, function (_m0, m1, m2) { var selectors = m1.split(',').map(function (selector) { @@ -85,10 +119,10 @@ function scriptCubeCss(originCss, namespace, file) { return css; } function parseQueryString(param) { - let kvs = param.split('&'); - let obj = {}; - kvs.forEach((kv) => { - let tmp = kv.split('='); + var kvs = param.split('&'); + var obj = {}; + kvs.forEach(function (kv) { + var tmp = kv.split('='); obj[tmp[0]] = tmp[1]; }); return obj; @@ -97,8 +131,10 @@ function parseQueryString(param) { * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() */ function rebase(name, config) { - const { base, remoteSeparator, remoteBase } = config; - let defaultPath = base + name; + var base = config.base, + remoteSeparator = config.remoteSeparator, + remoteBase = config.remoteBase; + var defaultPath = base + name; var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; if (offset <= 0) return defaultPath; var rbase = name.substr(0, offset); @@ -107,19 +143,22 @@ function rebase(name, config) { } function intercept() { console.time('intercept exec'); - const referer = 'intercept_mock'; - const dep = []; - const proxy = (c) => { - const d = c.replaceAll('Cube(', 'Cube._store('); + var referer = 'intercept_mock'; + var dep = []; + var proxy = function (c) { + var d = c.replaceAll('Cube(', 'Cube._store('); // console.log(d); return d; }; return Promise.all( - dep.map((s) => { - const [mod, custom] = String(s).split('?'); - const config = window.Cube.config; + dep.map(function (s) { + var _a = String(s).split('?'), + mod = _a[0], + custom = _a[1]; + var config = window.Cube.config; var srcPath = rebase(mod, config); - const { version, debug } = config; + var version = config.version, + debug = config.debug; var query = []; if (version) { query.push(version); @@ -129,11 +168,11 @@ function intercept() { query.push('ref=' + referer); } if (custom) { - const customArgs = parseQueryString(custom); + var customArgs_1 = parseQueryString(custom); Array.prototype.push.apply( query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; + Object.keys(customArgs_1).map(function (c) { + return ''.concat(c, '=').concat(customArgs_1[c]); }) ); } @@ -142,15 +181,14 @@ function intercept() { } return fetchCubeCode(srcPath, proxy); }) - ).then(() => { + ).then(function () { console.timeEnd('intercept exec'); }); } - /** * 默认配置项变量 */ -const DEFAULT_CUBE_CONFIG = { +var DEFAULT_CUBE_CONFIG = { base: '', remoteBase: {}, remoteSeparator: ':', @@ -176,9 +214,10 @@ const DEFAULT_CUBE_CONFIG = { * cube 重构 * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg */ -class Cube { - constructor() { - this.config = { ...DEFAULT_CUBE_CONFIG }; +var Cube = /** @class */ (function () { + function Cube() { + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); this.state = { /** 是否完成初始化 */ inited: true, @@ -205,12 +244,15 @@ class Cube { * @param exports 模块实例 * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 */ - this.register = (moduleName, exports, option = { matchType: 'version' }) => { - const { matchType } = option; - if (this._getReadyModule(moduleName)) { + this.register = function (moduleName, exports, option) { + if (option === void 0) { + option = { matchType: 'version' }; + } + var matchType = option.matchType; + if (_this._getReadyModule(moduleName)) { return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); } - this.state.installedModules[moduleName] = { + _this.state.installedModules[moduleName] = { exports: exports, sourceCode: noop, dep: [], @@ -220,49 +262,50 @@ class Cube { fired: true, }; if (matchType === 'module') { - this.state.registerModules.push({ - moduleName, - matchType, - match: new RegExp(`^datav:\/npm\/${moduleName}\/([^\/]+)?$`), - module: this.state.installedModules[moduleName], + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), + module: _this.state.installedModules[moduleName], }); } }; /** 初始化 */ - this.init = (config) => { + this.init = function (config) { + var _a, _b, _c, _d; if (config.base && config.base !== '/') { - this.config.base = config.base.replace(/\/$/, ''); + _this.config.base = config.base.replace(/\/$/, ''); } if (config.remoteBase) { - for (let key in config.remoteBase) { + for (var key in config.remoteBase) { if (config.remoteBase.hasOwnProperty(key)) { - this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); } } } - this.config.version = config.version ?? this.config.version; - this.config.esModule = config.esModule ?? this.config.esModule; - this.config.debug = config.debug ?? this.config.debug; - this.config.combine = config.combine ?? this.config.combine; - this.state.inited = true; - while (this.state.pendingQueue.length) { - const pendingInfo = this.state.pendingQueue.shift(); - this._load(pendingInfo[0], pendingInfo[1]); + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.state.inited = true; + while (_this.state.pendingQueue.length) { + var pendingInfo = _this.state.pendingQueue.shift(); + _this._load(pendingInfo[0], pendingInfo[1]); } }; /** * 异步加载模块 */ - this.use = (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) => { + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { if (!moduleName) { throw new Error('Cube.use(moduleName) moduleName is undefined!'); } // 整理入参 // 确保 moduleNames 唯一 - let moduleNames = typeof moduleName === 'string' ? [moduleName] : [...moduleName]; - let omitFix = omitFixOrUndefined; + var moduleNames = typeof moduleName === 'string' ? [moduleName] : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; // let _referer: string | undefined; - let callback; + var callback; if (typeof refererOrCallback === 'string') { // referer = refererOrCallback; callback = callbackOrOmitFix; @@ -272,55 +315,58 @@ class Cube { omitFix = callbackOrOmitFix; } callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, this.config.remoteSeparator) : moduleNames; - this.state.entrances.set(moduleNames, { - callback, - loadSources: [...moduleNames], + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + _this.state.entrances.set(moduleNames, { + callback: callback, + loadSources: __spreadArray([], moduleNames, true), }); - this._load(moduleNames, moduleNames); + _this._load(moduleNames, moduleNames); }; /** 执行 cube 源码 即原 Cube(...) */ - this.execute = (responseName, requires, sourceCode) => { - const moduleName = this._calibrateName(responseName); + this.execute = function (responseName, requires, sourceCode) { + var _a; + var moduleName = _this._calibrateName(responseName); // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if (this.state.installedModules[moduleName]?.loaded) { + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { return; } - this._store(moduleName, requires, sourceCode); - this._initiate(moduleName); + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); }; /** * 加载 css */ - this.css = (css, namespace, file) => { + this.css = function (css, namespace, file) { if (!css) { return; } var modId = file + '@' + namespace; - if (this.state.cssModule[modId]) { + if (_this.state.cssModule[modId]) { return; } - this.state.cssModule[modId] = true; + _this.state.cssModule[modId] = true; return scriptCubeCss(css, namespace, file); }; /** * 模块存储 */ - this._store = (moduleName, dep, sourceCode) => { + this._store = function (moduleName, dep, sourceCode) { + var _a; + var _b; // 不重复存储 - if (this.state.installedModules[moduleName]?.loaded) { + if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { return; } - const module = this.state.installedModules[moduleName]; + var module = _this.state.installedModules[moduleName]; if (module) { - module.dep.push(...dep); + (_a = module.dep).push.apply(_a, dep); module.sourceCode = sourceCode; module.loaded = true; } else { - this.state.installedModules[moduleName] = { + _this.state.installedModules[moduleName] = { exports: {}, - sourceCode, - dep, + sourceCode: sourceCode, + dep: dep, refer: { upperDep: [], entryDep: [] }, loaded: true, ready: false, @@ -329,24 +375,24 @@ class Cube { } }; /** 请求资源 */ - this._load = (moduleNames, refer) => { - if (!this.state.inited) { - this.state.pendingQueue.push([moduleNames, refer]); + this._load = function (moduleNames, refer) { + if (!_this.state.inited) { + _this.state.pendingQueue.push([moduleNames, refer]); return; } - moduleNames.forEach((moduleName) => { - const module = this.state.installedModules[moduleName]; - if (this._getReadyModule(moduleName)) { - this._triggerCallback(this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + moduleNames.forEach(function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (_this._getReadyModule(moduleName)) { + _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); return; } if (module) { - this._addReferToModule(module.refer, refer); + _this._addReferToModule(module.refer, refer); return; } - const [name] = moduleName.split('?'); - this.state.requireMap[name] = moduleName; - this.state.installedModules[moduleName] = { + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { exports: {}, sourceCode: undefined, dep: [], @@ -358,77 +404,82 @@ class Cube { ready: false, fired: false, }; - this._addReferToModule(this.state.installedModules[moduleName].refer, refer); - const srcPath = this._generatePath(moduleName); + _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); + var srcPath = _this._generatePath(moduleName); fetchCubeCode(srcPath); }); }; /** 向上检索树依赖及回调 */ - this._triggerCallback = (refer) => { - refer.upperDep.forEach((mName) => { - const upperModule = this.state.installedModules[mName]; + this._triggerCallback = function (refer) { + refer.upperDep.forEach(function (mName) { + var upperModule = _this.state.installedModules[mName]; if (upperModule) { - this._initiate(mName); + _this._initiate(mName); } }); - refer.entryDep.forEach((entry) => { - const upperModule = this.state.entrances.get(entry); + refer.entryDep.forEach(function (entry) { + var upperModule = _this.state.entrances.get(entry); if (upperModule) { - this._triggerEntryCallback(entry); + _this._triggerEntryCallback(entry); } }); }; /** 实例化并执行回调 */ - this._initiate = (moduleName) => { - if (!this.state.installedModules[moduleName] || this.state.installedModules[moduleName].ready) return; - const module = this.state.installedModules[moduleName]; + this._initiate = function (moduleName) { + if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) return; + var module = _this.state.installedModules[moduleName]; if (module) { if (!module.loaded) return; if (module.dep.length) { - let allLoad = true; - module.dep.forEach((name) => { - if (this._getReadyModule(name)) return; - if (this._checkCursiveDep(moduleName, name)) return; - allLoad = false; - this._load([name], moduleName); + var allLoad_1 = true; + module.dep.forEach(function (name) { + if (_this._getReadyModule(name)) return; + if (_this._checkCursiveDep(moduleName, name)) return; + allLoad_1 = false; + _this._load([name], moduleName); }); - if (!allLoad) return; + if (!allLoad_1) return; } } // 此处直接fire 请求资源都默认为需要的 - this.state.installedModules[moduleName].ready = true; - this._triggerCallback(module.refer); + _this.state.installedModules[moduleName].ready = true; + _this._triggerCallback(module.refer); }; /** 执行回调函数 */ - this._triggerEntryCallback = (entry) => { - const entryInfo = this.state.entrances.get(entry); - if (entryInfo && entryInfo.loadSources.every(this._getReadyModule)) { + this._triggerEntryCallback = function (entry) { + var entryInfo = _this.state.entrances.get(entry); + if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { // 存在隐藏依赖的情况 降低 _fireModule 触发时机 - if (entryInfo.loadSources.every(this._fireModule)) { - entryInfo.callback(...entry.map((e) => this.state.installedModules[e].exports)); - this.state.entrances.delete(entry); + if (entryInfo.loadSources.every(_this._fireModule)) { + entryInfo.callback.apply( + entryInfo, + entry.map(function (e) { + return _this.state.installedModules[e].exports; + }) + ); + _this.state.entrances.delete(entry); } } }; /** 实例化某一模块 */ - this._fireModule = (moduleName) => { - const module = this.state.installedModules[moduleName]; + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; if (!module || !module.ready) return false; if (module.fired) return true; - let fireResult = true; + var fireResult = true; try { - const exports = module.sourceCode.apply(window, [ + var exports = module.sourceCode.apply(window, [ module, module.exports, - this._cubeRequire(moduleName), - this._cubeLoad(moduleName), - this.config.mockedProcess, - this.config.mockedGlobal, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, ]); - module.exports = this._isEsModule(exports) ? exports.default : exports; + module.exports = _this._isEsModule(exports) ? exports.default : exports; module.error = false; } catch (e) { - if (e.message === `Cube inner denpendency lost; refetch inited`) { + if (e.message === 'Cube inner denpendency lost; refetch inited') { console.warn('Cube 检测到文件依赖缺失'); fireResult = false; } else { @@ -438,16 +489,16 @@ class Cube { } } finally { // 避免组件内部有 catch 导致 抓不到错误的情况 - if (this.state.lostDepModule[moduleName]) { + if (_this.state.lostDepModule[moduleName]) { module.ready = false; - this.state.lostDepModule[moduleName].forEach((name) => { + _this.state.lostDepModule[moduleName].forEach(function (name) { if (!module.dep.includes(name)) { module.dep.push(name); - this._load([name], moduleName); - console.warn(`Cube module ${moduleName} 缺失声明依赖 ${name}`); + _this._load([name], moduleName); + console.warn('Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name)); } }); - Reflect.deleteProperty(this.state.lostDepModule, moduleName); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); fireResult = false; } else { module.fired = true; @@ -456,55 +507,59 @@ class Cube { return fireResult; }; /** 支持组件内模块请求 */ - this._cubeRequire = (selfName) => (moduleName, namespace) => { - if (namespace === undefined) { - const module = this._getModule(moduleName); - if (module?.fired) { - return module.exports; - } - if (this._checkCursiveDep(selfName, moduleName)) { - console.error(`Cube 检测到循环依赖 ${moduleName} --> ${selfName}`); - return {}; - } - const fireSucceed = this._fireModule(moduleName); - if (!module || !fireSucceed) { - if (this.state.lostDepModule[selfName]) { - this.state.lostDepModule[selfName].push(moduleName); + this._cubeRequire = function (selfName) { + return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + if (_this._checkCursiveDep(selfName, moduleName)) { + console.error( + 'Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(moduleName, ' --> ').concat(selfName) + ); + return {}; + } + var fireSucceed = _this._fireModule(moduleName); + if (!module || !fireSucceed) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error('Cube inner denpendency lost; refetch inited'); } else { - this.state.lostDepModule[selfName] = [moduleName]; + return module.exports; } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error(`Cube inner denpendency lost; refetch inited`); } else { - return module.exports; - } - } else { - // 默认 css 模块不再依赖其它模块 - let css; - const module = this._getReadyModule(moduleName); - if (!module) return; - if (module.fired) { - css = module.exports; - } - const fireSucceed = this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getReadyModule(moduleName); + if (!module) return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); } - return this.css(css, namespace, moduleName); - } + }; }; /** 支持组件内模块加载 */ - this._cubeLoad = (referer) => { + this._cubeLoad = function (referer) { /** The load function */ - const __cube_load__ = (moduleName, namespace, cb) => { + var __cube_load__ = function (moduleName, namespace, cb) { if (cb === undefined && typeof namespace === 'function') { cb = namespace; namespace = ''; - this.use(moduleName, referer, cb); + _this.use(moduleName, referer, cb); } else { - this.use(moduleName, referer, (css) => { - css = this.css(css, namespace, moduleName); + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); cb && cb(css); }); } @@ -512,24 +567,26 @@ class Cube { return __cube_load__; }; /** 请求路径生成 */ - this._generatePath = (moduleName) => { + this._generatePath = function (moduleName) { // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [name, custom] = moduleName.split('?'); - let srcPath = rebase(name, this.config); - const query = []; + var _a = moduleName.split('?'), + name = _a[0], + custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; // 历史逻辑 疑似命中缓存 query.push('m=1'); - if (this.config.version) { - query.push(this.config.version); + if (_this.config.version) { + query.push(_this.config.version); } - if (this.config.combine) { + if (_this.config.combine) { query.push('combine=true'); } if (custom) { - const customArgs = parseQueryString(custom); + var customArgs_2 = parseQueryString(custom); query.push( - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; + Object.keys(customArgs_2).map(function (c) { + return ''.concat(c, '=').concat(customArgs_2[c]); }) ); } @@ -539,12 +596,12 @@ class Cube { return srcPath; }; /** 存储引用关系 */ - this._addReferToModule = (module, referer) => { + this._addReferToModule = function (module, referer) { if (!referer) { return module; } // 此处简单判断 - const isEntry = typeof referer !== 'string'; + var isEntry = typeof referer !== 'string'; if (isEntry) { module.entryDep.push(referer); } else { @@ -555,11 +612,11 @@ class Cube { return module; }; /** 修正返回值 */ - this._calibrateName = (responseName) => { + this._calibrateName = function (responseName) { // 兼容返回的 name 不带入参的情况 - const moduleName = this.state.requireMap[responseName] || responseName; - if (this.state.requireMap[responseName]) { - Reflect.deleteProperty(this.state.requireMap, responseName); + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); } return moduleName; }; @@ -576,40 +633,41 @@ class Cube { * 获取全局默认模块 * requirePath => datav:/npm/react/16.4.6?env=xxx */ - this._getGlobalRegister = (requirePath) => { - for (const register of this.state.registerModules) { + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; if (requirePath && register.match.test(requirePath)) { return register.module; } } }; - this._getReadyModule = (name) => { - const module = this._getModule(name); - if (module?.ready) { + this._getReadyModule = function (name) { + var module = _this._getModule(name); + if (module === null || module === void 0 ? void 0 : module.ready) { return module; } }; - this._getModule = (name) => { - const module = this.state.installedModules[name]; + this._getModule = function (name) { + var module = _this.state.installedModules[name]; if (!module) { - return this._getGlobalRegister(name); + return _this._getGlobalRegister(name); } return module; }; - this._isEsModule = (module) => { - return this.config.esModule && module && typeof module === 'object' && module.__esModule; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; }; - this._checkCursiveDep = (selfName, requireName) => { + this._checkCursiveDep = function (selfName, requireName) { if (requireName === selfName) return true; - let depArr = [requireName]; - let detected = false; - let times = 6; // 防止下层依赖环 - do { - let newDep = []; - depArr.forEach((d) => { - const depModule = this.state.installedModules[d]; + var depArr = [requireName]; + var detected = false; + var times = 6; // 防止下层依赖环 + var _loop_1 = function () { + var newDep = []; + depArr.forEach(function (d) { + var depModule = _this.state.installedModules[d]; if (depModule && !depModule.fired) { - newDep.push(...depModule.dep); + newDep.push.apply(newDep, depModule.dep); } }); if (newDep.includes(selfName)) { @@ -617,6 +675,9 @@ class Cube { } depArr = newDep; times -= 1; + }; + do { + _loop_1(); } while (detected === false && times > 0 && depArr.length > 0); if (detected) return true; return false; @@ -629,40 +690,48 @@ class Cube { // }; /****************************** 以下为原有方法兼容 **************************/ /** 原有方法 直接打印内部状态 */ - this.cache = () => { - console.info('modules:', this.state.installedModules); + this.cache = function () { + console.info('modules:', _this.state.installedModules); console.info( 'unloaded:', - Object.values(this.state.installedModules).filter((m) => !m.loaded) + Object.values(_this.state.installedModules).filter(function (m) { + return !m.loaded; + }) ); console.info( 'unfired:', - Object.values(this.state.installedModules).filter((m) => !m.fired) + Object.values(_this.state.installedModules).filter(function (m) { + return !m.fired; + }) ); }; /** @deprecated */ - this.debug = () => { + this.debug = function () { console.error('debug 方法不再支持'); }; /** @deprecated */ - this.setRemoteBase = () => { + this.setRemoteBase = function () { console.error('不支持动态修改 remoteBase'); }; } -} + return Cube; +})(); /** 全局初始化单例 */ -function setGlobalCube(alias = 'Cube') { - const global = window; +function setGlobalCube(alias) { + if (alias === void 0) { + alias = 'Cube'; + } + var global = window; if (global[alias]) { console.error('Cube Error: window.' + alias + ' already in using'); return global[alias]; } - const cube = new Cube(); + var cube = new Cube(); // 支持 Cube(...args) 的写法 - const cubeHandler = (moduleName, requires, instance) => { + var cubeHandler = function (moduleName, requires, instance) { return cube.execute(moduleName, requires, instance); }; - const mockCube = new Proxy(cubeHandler, { + var mockCube = new Proxy(cubeHandler, { get: function (handler, key) { if (Reflect.ownKeys(cube).includes(key)) { return cube[key]; From 79fdd124953a6439e465de425a82c56cb4e26985 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Wed, 8 Feb 2023 18:53:14 +0800 Subject: [PATCH 33/74] add min file --- runtime/cube-reconstruction.min.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 runtime/cube-reconstruction.min.js diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js new file mode 100644 index 0000000..44d83ba --- /dev/null +++ b/runtime/cube-reconstruction.min.js @@ -0,0 +1 @@ +var a=this&&this.__assign||function(){return a=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function n(){console.time('intercept exec');var a=function(a){var b=a.replaceAll('Cube(','Cube._store(');return b};return Promise.all([].map(function(b){var c=(b+'').split('?'),d=c[0],f=c[1],g=window.Cube.config,h=m(d,g),i=g.version,j=g.debug,k=[];if(i&&k.push(i),j&&(k.push('m'),k.push('ref='+'intercept_mock')),f){var n=l(f);Array.prototype.push.apply(k,Object.keys(n).map(function(a){return''.concat(a,'=').concat(n[a])}))}return k.length&&(h=h+'?'+k.join('&')),e(h,a)})).then(function(){console.timeEnd('intercept exec')})}var o={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch'},p=function(){function d(){var f=this;this.config=a({},o),this.state={inited:!0,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:{},registerModules:[],requireMap:{}},this.register=function(a,b,d){void 0===d&&(d={matchType:'version'});var e=d.matchType;return f._getReadyModule(a)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(f.state.installedModules[a]={exports:b,sourceCode:c,dep:[],refer:{upperDep:[],entryDep:[]},ready:!0,loaded:!0,fired:!0},'module'===e&&f.state.registerModules.push({moduleName:a,matchType:e,match:new RegExp('^datav:/npm/'.concat(a,'/([^/]+)?$')),module:f.state.installedModules[a]}))},this.init=function(a){var b,c,d,e;if(a.base&&'/'!==a.base&&(f.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(var g in a.remoteBase)a.remoteBase.hasOwnProperty(g)&&(f.config.remoteBase[g]=a.remoteBase[g].replace(/\/$/,''));for(f.config.version=null!==(b=a.version)&&void 0!==b?b:f.config.version,f.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:f.config.esModule,f.config.debug=null!==(d=a.debug)&&void 0!==d?d:f.config.debug,f.config.combine=null!==(e=a.combine)&&void 0!==e?e:f.config.combine,f.state.inited=!0;f.state.pendingQueue.length;){var h=f.state.pendingQueue.shift();f._load(h[0],h[1])}},this.use=function(a,d,e,g){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');var h,j='string'===typeof a?[a]:b([],a,!0),k=g;'string'===typeof d?h=e:(h=d,k=e),h=h||c,j=k?j:i(j,f.config.remoteSeparator),f.state.entrances.set(j,{callback:h,loadSources:b([],j,!0)}),f._load(j,j)},this.execute=function(a,b,c){var d,e=f._calibrateName(a);(null===(d=f.state.installedModules[e])||void 0===d?void 0:d.loaded)||(f._store(e,b,c),f._initiate(e))},this.css=function(a,b,c){if(a){var d=c+'@'+b;if(!f.state.cssModule[d])return f.state.cssModule[d]=!0,k(a,b,c)}},this._store=function(a,b,c){var d,e;if(!(null!==(e=f.state.installedModules[a])&&void 0!==e)||!e.loaded){var g=f.state.installedModules[a];g?((d=g.dep).push.apply(d,b),g.sourceCode=c,g.loaded=!0):f.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{upperDep:[],entryDep:[]},loaded:!0,ready:!1,fired:!1}}},this._load=function(a,b){return f.state.inited?void a.forEach(function(a){var c=f.state.installedModules[a];if(f._getReadyModule(a))return void f._triggerCallback(f._addReferToModule({upperDep:[],entryDep:[]},b));if(c)return void f._addReferToModule(c.refer,b);var d=a.split('?')[0];f.state.requireMap[d]=a,f.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[],upperDep:[]},loaded:!1,ready:!1,fired:!1},f._addReferToModule(f.state.installedModules[a].refer,b);var g=f._generatePath(a);e(g)}):void f.state.pendingQueue.push([a,b])},this._triggerCallback=function(a){a.upperDep.forEach(function(a){var b=f.state.installedModules[a];b&&f._initiate(a)}),a.entryDep.forEach(function(a){var b=f.state.entrances.get(a);b&&f._triggerEntryCallback(a)})},this._initiate=function(a){if(f.state.installedModules[a]&&!f.state.installedModules[a].ready){var b=f.state.installedModules[a];if(b){if(!b.loaded)return;if(b.dep.length){var c=!0;if(b.dep.forEach(function(b){f._getReadyModule(b)||f._checkCursiveDep(a,b)||(c=!1,f._load([b],a))}),!c)return}}f.state.installedModules[a].ready=!0,f._triggerCallback(b.refer)}},this._triggerEntryCallback=function(a){var b=f.state.entrances.get(a);b&&b.loadSources.every(f._getReadyModule)&&b.loadSources.every(f._fireModule)&&(b.callback.apply(b,a.map(function(a){return f.state.installedModules[a].exports})),f.state.entrances.delete(a))},this._fireModule=function(a){var b=f.state.installedModules[a];if(!b||!b.ready)return!1;if(b.fired)return!0;var c=!0;try{var d=b.sourceCode.apply(window,[b,b.exports,f._cubeRequire(a),f._cubeLoad(a),f.config.mockedProcess,f.config.mockedGlobal]);b.exports=f._isEsModule(d)?d.default:d,b.error=!1}catch(d){'Cube inner denpendency lost; refetch inited'===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{f.state.lostDepModule[a]?(b.ready=!1,f.state.lostDepModule[a].forEach(function(c){b.dep.includes(c)||(b.dep.push(c),f._load([c],a),console.warn('Cube module '.concat(a,' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(c)))}),Reflect.deleteProperty(f.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=function(a){return function(b,c){if(void 0===c){var d=f._getModule(b);if(null===d||void 0===d?void 0:d.fired)return d.exports;if(f._checkCursiveDep(a,b))return console.error('Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(b,' --> ').concat(a)),{};var e=f._fireModule(b);if(!d||!e)throw f.state.lostDepModule[a]?f.state.lostDepModule[a].push(b):f.state.lostDepModule[a]=[b],new Error('Cube inner denpendency lost; refetch inited');else return d.exports}else{var g=void 0,d=f._getReadyModule(b);if(!d)return;d.fired&&(g=d.exports);var e=f._fireModule(b);return e&&(g=d.exports),f.css(g,c,b)}}},this._cubeLoad=function(a){return function(b,c,d){d===void 0&&'function'===typeof c?(d=c,c='',f.use(b,a,d)):f.use(b,a,function(a){a=f.css(a,c,b),d&&d(a)})}},this._generatePath=function(a){var b=a.split('?'),c=b[0],d=b[1],e=m(c,f.config),g=[];if(g.push('m=1'),f.config.version&&g.push(f.config.version),f.config.combine&&g.push('combine=true'),d){var h=l(d);g.push(Object.keys(h).map(function(a){return''.concat(a,'=').concat(h[a])}))}return g.length&&(e=e+'?'+g.join('&')),e},this._addReferToModule=function(a,b){if(!b)return a;return'string'!==typeof b?a.entryDep.push(b):!a.upperDep.includes(b)&&a.upperDep.push(b),a},this._calibrateName=function(a){var b=f.state.requireMap[a]||a;return f.state.requireMap[a]&&Reflect.deleteProperty(f.state.requireMap,a),b},this._getGlobalRegister=function(a){for(var b,c=0,d=f.state.registerModules;c Date: Wed, 8 Feb 2023 21:31:53 +0800 Subject: [PATCH 34/74] chore: version update --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2b900a1..0cd3583 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "3.2.0", + "version": "5.0.0-beta.0", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", From a1882aa767d654bb63a78d3ee58f0a085f3f0f2e Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Thu, 9 Feb 2023 10:28:16 +0800 Subject: [PATCH 35/74] fix: add iife --- runtime/cube-reconstruction.js | 1044 +++++++++++++++----------------- 1 file changed, 502 insertions(+), 542 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 7ac18b8..a0b656f 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -141,50 +141,7 @@ function rebase(name, config) { if (!remoteBase[rbase]) return defaultPath; return remoteBase[rbase] + name.substr(offset + 1); } -function intercept() { - console.time('intercept exec'); - var referer = 'intercept_mock'; - var dep = []; - var proxy = function (c) { - var d = c.replaceAll('Cube(', 'Cube._store('); - // console.log(d); - return d; - }; - return Promise.all( - dep.map(function (s) { - var _a = String(s).split('?'), - mod = _a[0], - custom = _a[1]; - var config = window.Cube.config; - var srcPath = rebase(mod, config); - var version = config.version, - debug = config.debug; - var query = []; - if (version) { - query.push(version); - } - if (debug) { - query.push('m'); - query.push('ref=' + referer); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs_1).map(function (c) { - return ''.concat(c, '=').concat(customArgs_1[c]); - }) - ); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return fetchCubeCode(srcPath, proxy); - }) - ).then(function () { - console.timeEnd('intercept exec'); - }); -} + /** * 默认配置项变量 */ @@ -210,537 +167,540 @@ var DEFAULT_CUBE_CONFIG = { /** 声明使用 fetch 请求还是创建 script 请求 */ requestMethod: 'fetch', }; -/** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ -var Cube = /** @class */ (function () { - function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: true, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: {}, - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - if (option === void 0) { - option = { matchType: 'version' }; - } - var matchType = option.matchType; - if (_this._getReadyModule(moduleName)) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { upperDep: [], entryDep: [] }, - ready: true, - loaded: true, - fired: true, + +(function () { + /** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ + var Cube = /** @class */ (function () { + function Cube() { + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: true, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: {}, + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d; - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + if (option === void 0) { + option = { matchType: 'version' }; } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.state.inited = true; - while (_this.state.pendingQueue.length) { - var pendingInfo = _this.state.pendingQueue.shift(); - _this._load(pendingInfo[0], pendingInfo[1]); - } - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' ? [moduleName] : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - _this.state.entrances.set(moduleNames, { - callback: callback, - loadSources: __spreadArray([], moduleNames, true), - }); - _this._load(moduleNames, moduleNames); - }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); - }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { - var _a; - var _b; - // 不重复存储 - if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { - return; - } - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; - } else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { upperDep: [], entryDep: [] }, - loaded: true, - ready: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleNames, refer) { - if (!_this.state.inited) { - _this.state.pendingQueue.push([moduleNames, refer]); - return; - } - moduleNames.forEach(function (moduleName) { - var module = _this.state.installedModules[moduleName]; + var matchType = option.matchType; if (_this._getReadyModule(moduleName)) { - _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); - return; - } - if (module) { - _this._addReferToModule(module.refer, refer); - return; + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, + exports: exports, + sourceCode: noop, dep: [], - refer: { - entryDep: [], - upperDep: [], - }, - loaded: false, - ready: false, - fired: false, + refer: { upperDep: [], entryDep: [] }, + ready: true, + loaded: true, + fired: true, }; - _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); - var srcPath = _this._generatePath(moduleName); - fetchCubeCode(srcPath); - }); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (refer) { - refer.upperDep.forEach(function (mName) { - var upperModule = _this.state.installedModules[mName]; - if (upperModule) { - _this._initiate(mName); + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), + module: _this.state.installedModules[moduleName], + }); } - }); - refer.entryDep.forEach(function (entry) { - var upperModule = _this.state.entrances.get(entry); - if (upperModule) { - _this._triggerEntryCallback(entry); + }; + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d; + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); } - }); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) return; - var module = _this.state.installedModules[moduleName]; - if (module) { - if (!module.loaded) return; - if (module.dep.length) { - var allLoad_1 = true; - module.dep.forEach(function (name) { - if (_this._getReadyModule(name)) return; - if (_this._checkCursiveDep(moduleName, name)) return; - allLoad_1 = false; - _this._load([name], moduleName); - }); - if (!allLoad_1) return; + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } } - } - // 此处直接fire 请求资源都默认为需要的 - _this.state.installedModules[moduleName].ready = true; - _this._triggerCallback(module.refer); - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entry) { - var entryInfo = _this.state.entrances.get(entry); - if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { - // 存在隐藏依赖的情况 降低 _fireModule 触发时机 - if (entryInfo.loadSources.every(_this._fireModule)) { - entryInfo.callback.apply( - entryInfo, - entry.map(function (e) { - return _this.state.installedModules[e].exports; - }) - ); - _this.state.entrances.delete(entry); + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.state.inited = true; + while (_this.state.pendingQueue.length) { + var pendingInfo = _this.state.pendingQueue.shift(); + _this._load(pendingInfo[0], pendingInfo[1]); } - } - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.ready) return false; - if (module.fired) return true; - var fireResult = true; - try { - var exports = module.sourceCode.apply(window, [ - module, - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } catch (e) { - if (e.message === 'Cube inner denpendency lost; refetch inited') { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = typeof moduleName === 'string' ? [moduleName] : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; } else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; } - } finally { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - module.ready = false; - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - _this._load([name], moduleName); - console.warn('Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + _this.state.entrances.set(moduleNames, { + callback: callback, + loadSources: __spreadArray([], moduleNames, true), + }); + _this._load(moduleNames, moduleNames); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { + var _a; + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var _b; + // 不重复存储 + if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { + return; + } + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; } else { - module.fired = true; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { upperDep: [], entryDep: [] }, + loaded: true, + ready: false, + fired: false, + }; } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { - return function (moduleName, namespace) { - if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; + }; + /** 请求资源 */ + this._load = function (moduleNames, refer) { + if (!_this.state.inited) { + _this.state.pendingQueue.push([moduleNames, refer]); + return; + } + moduleNames.forEach(function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (_this._getReadyModule(moduleName)) { + _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + return; + } + if (module) { + _this._addReferToModule(module.refer, refer); + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + upperDep: [], + }, + loaded: false, + ready: false, + fired: false, + }; + _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); + var srcPath = _this._generatePath(moduleName); + fetchCubeCode(srcPath); + }); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (refer) { + refer.upperDep.forEach(function (mName) { + var upperModule = _this.state.installedModules[mName]; + if (upperModule) { + _this._initiate(mName); } - if (_this._checkCursiveDep(selfName, moduleName)) { - console.error( - 'Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(moduleName, ' --> ').concat(selfName) + }); + refer.entryDep.forEach(function (entry) { + var upperModule = _this.state.entrances.get(entry); + if (upperModule) { + _this._triggerEntryCallback(entry); + } + }); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) return; + var module = _this.state.installedModules[moduleName]; + if (module) { + if (!module.loaded) return; + if (module.dep.length) { + var allLoad_1 = true; + module.dep.forEach(function (name) { + if (_this._getReadyModule(name)) return; + if (_this._checkCursiveDep(moduleName, name)) return; + allLoad_1 = false; + _this._load([name], moduleName); + }); + if (!allLoad_1) return; + } + } + // 此处直接fire 请求资源都默认为需要的 + _this.state.installedModules[moduleName].ready = true; + _this._triggerCallback(module.refer); + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entry) { + var entryInfo = _this.state.entrances.get(entry); + if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { + // 存在隐藏依赖的情况 降低 _fireModule 触发时机 + if (entryInfo.loadSources.every(_this._fireModule)) { + entryInfo.callback.apply( + entryInfo, + entry.map(function (e) { + return _this.state.installedModules[e].exports; + }) ); - return {}; + _this.state.entrances.delete(entry); + } + } + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.ready) return false; + if (module.fired) return true; + var fireResult = true; + try { + var exports = module.sourceCode.apply(window, [ + module, + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } catch (e) { + if (e.message === 'Cube inner denpendency lost; refetch inited') { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; } - var fireSucceed = _this._fireModule(moduleName); - if (!module || !fireSucceed) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); + } finally { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + module.ready = false; + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + _this._load([name], moduleName); + console.warn('Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { + return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + if (_this._checkCursiveDep(selfName, moduleName)) { + console.error( + 'Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(moduleName, ' --> ').concat(selfName) + ); + return {}; + } + var fireSucceed = _this._fireModule(moduleName); + if (!module || !fireSucceed) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error('Cube inner denpendency lost; refetch inited'); } else { - _this.state.lostDepModule[selfName] = [moduleName]; + return module.exports; } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error('Cube inner denpendency lost; refetch inited'); } else { - return module.exports; - } - } else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getReadyModule(moduleName); - if (!module) return; - if (module.fired) { - css = module.exports; + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getReadyModule(moduleName); + if (!module) return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; + }; + }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); + }); } - return _this.css(css, namespace, moduleName); + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), + name = _a[0], + custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + // 历史逻辑 疑似命中缓存 + query.push('m=1'); + if (_this.config.version) { + query.push(_this.config.version); } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_2 = parseQueryString(custom); + query.push( + Object.keys(customArgs_2).map(function (c) { + return ''.concat(c, '=').concat(customArgs_2[c]); + }) + ); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; }; - }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); + /** 存储引用关系 */ + this._addReferToModule = function (module, referer) { + if (!referer) { + return module; + } + // 此处简单判断 + var isEntry = typeof referer !== 'string'; + if (isEntry) { + module.entryDep.push(referer); } else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); + if (!module.upperDep.includes(referer)) { + module.upperDep.push(referer); + } } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), - name = _a[0], - custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - // 历史逻辑 疑似命中缓存 - query.push('m=1'); - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_2 = parseQueryString(custom); - query.push( - Object.keys(customArgs_2).map(function (c) { - return ''.concat(c, '=').concat(customArgs_2[c]); - }) - ); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToModule = function (module, referer) { - if (!referer) { return module; - } - // 此处简单判断 - var isEntry = typeof referer !== 'string'; - if (isEntry) { - module.entryDep.push(referer); - } else { - if (!module.upperDep.includes(referer)) { - module.upperDep.push(referer); + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); } - } - return module; - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - // /** 引用信息缺失时 自构建引用关系 剩者为王 */ - // private chaosBattle = (names: string[]) => { - // if (names.length === 1) { - // this._initiateAndCallback(names[0]); - // } else if (names.length > 1) { - // // this.state.combineStatus = 'execute'; - // names.forEach((name) => this._initiateAndCallback(name)); - // } - // }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; + return moduleName; + }; + // /** 引用信息缺失时 自构建引用关系 剩者为王 */ + // private chaosBattle = (names: string[]) => { + // if (names.length === 1) { + // this._initiateAndCallback(names[0]); + // } else if (names.length > 1) { + // // this.state.combineStatus = 'execute'; + // names.forEach((name) => this._initiateAndCallback(name)); + // } + // }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getReadyModule = function (name) { + var module = _this._getModule(name); + if (module === null || module === void 0 ? void 0 : module.ready) { + return module; + } + }; + this._getModule = function (name) { + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); } - } - }; - this._getReadyModule = function (name) { - var module = _this._getModule(name); - if (module === null || module === void 0 ? void 0 : module.ready) { return module; - } - }; - this._getModule = function (name) { - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this._checkCursiveDep = function (selfName, requireName) { - if (requireName === selfName) return true; - var depArr = [requireName]; - var detected = false; - var times = 6; // 防止下层依赖环 - var _loop_1 = function () { - var newDep = []; - depArr.forEach(function (d) { - var depModule = _this.state.installedModules[d]; - if (depModule && !depModule.fired) { - newDep.push.apply(newDep, depModule.dep); + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this._checkCursiveDep = function (selfName, requireName) { + if (requireName === selfName) return true; + var depArr = [requireName]; + var detected = false; + var times = 6; // 防止下层依赖环 + var _loop_1 = function () { + var newDep = []; + depArr.forEach(function (d) { + var depModule = _this.state.installedModules[d]; + if (depModule && !depModule.fired) { + newDep.push.apply(newDep, depModule.dep); + } + }); + if (newDep.includes(selfName)) { + detected = true; } - }); - if (newDep.includes(selfName)) { - detected = true; - } - depArr = newDep; - times -= 1; + depArr = newDep; + times -= 1; + }; + do { + _loop_1(); + } while (detected === false && times > 0 && depArr.length > 0); + if (detected) return true; + return false; }; - do { - _loop_1(); - } while (detected === false && times > 0 && depArr.length > 0); - if (detected) return true; - return false; - }; - // 测试使用 - // private _unResolvedDep = () => { - // Object.values(this.state.loadingModule).forEach((m) => { - // m.unresolveDep = m.dep.filter((d) => !this._getFiredModule(d)); - // }); - // }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', _this.state.installedModules); - console.info( - 'unloaded:', - Object.values(_this.state.installedModules).filter(function (m) { - return !m.loaded; - }) - ); - console.info( - 'unfired:', - Object.values(_this.state.installedModules).filter(function (m) { - return !m.fired; - }) - ); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); + // 测试使用 + // private _unResolvedDep = () => { + // Object.values(this.state.loadingModule).forEach((m) => { + // m.unresolveDep = m.dep.filter((d) => !this._getFiredModule(d)); + // }); + // }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', _this.state.installedModules); + console.info( + 'unloaded:', + Object.values(_this.state.installedModules).filter(function (m) { + return !m.loaded; + }) + ); + console.info( + 'unfired:', + Object.values(_this.state.installedModules).filter(function (m) { + return !m.fired; + }) + ); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); + }; + } + return Cube; + })(); + /** 全局初始化单例 */ + function setGlobalCube(alias) { + if (alias === void 0) { + alias = 'Cube'; + } + var global = window; + if (global[alias]) { + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; + } + var cube = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube.execute(moduleName, requires, instance); }; - } - return Cube; -})(); -/** 全局初始化单例 */ -function setGlobalCube(alias) { - if (alias === void 0) { - alias = 'Cube'; - } - var global = window; - if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube).includes(key)) { + return cube[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; return global[alias]; } - var cube = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube).includes(key)) { - return cube[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; - return global[alias]; -} -/** 模拟目前主动挂在 window 的做法 */ -setGlobalCube(); + /** 模拟目前主动挂在 window 的做法 */ + setGlobalCube(); +})(); From b1e25b85bbb1117090b6779a8a3e18965637f84d Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 9 Feb 2023 11:29:23 +0800 Subject: [PATCH 36/74] =?UTF-8?q?fix:=20=E5=AF=B9=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=BE=93=E5=87=BA=E7=89=88=E6=9C=AC=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/version.js | 31 ++++++++++++++++++------------ package.json | 2 +- runtime/cube-reconstruction.min.js | 5 ++++- runtime/cube.min.js | 6 +++--- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/bin/version.js b/bin/version.js index 3a8b3ba..2ffe416 100644 --- a/bin/version.js +++ b/bin/version.js @@ -1,16 +1,23 @@ 'use strict'; -var fs = require('xfs'); -var path = require('path'); -var pkg = require('../package.json'); -var fpath = path.join(__dirname, '../runtime/cube.min.js'); -var code = fs.readFileSync(fpath).toString(); +const fs = require('xfs'); +const path = require('path'); +const pkg = require('../package.json'); +const fpath1 = path.join(__dirname, '../runtime/cube.min.js'); +const fpath2 = path.join(__dirname, '../runtime/cube-reconstruction.min.js'); -code = code.replace(/\$\$version\$\$/, pkg.version); -var cmt = -`/*! - * Cube v${pkg.version} - */ -`; +function combine(fpath) { + let code = fs.readFileSync(fpath).toString(); -fs.writeFileSync(fpath, cmt + code); \ No newline at end of file + code = code.replace(/\$\$version\$\$/, pkg.version); + const cmt = + `/*! + * Cube v${pkg.version} + */ + `; + + fs.writeFileSync(fpath, cmt + code); +} + +combine(fpath1); +combine(fpath2); \ No newline at end of file diff --git a/package.json b/package.json index 0cd3583..99fa597 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.0", + "version": "5.0.0-beta.1", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 44d83ba..bd2285b 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1 +1,4 @@ -var a=this&&this.__assign||function(){return a=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function n(){console.time('intercept exec');var a=function(a){var b=a.replaceAll('Cube(','Cube._store(');return b};return Promise.all([].map(function(b){var c=(b+'').split('?'),d=c[0],f=c[1],g=window.Cube.config,h=m(d,g),i=g.version,j=g.debug,k=[];if(i&&k.push(i),j&&(k.push('m'),k.push('ref='+'intercept_mock')),f){var n=l(f);Array.prototype.push.apply(k,Object.keys(n).map(function(a){return''.concat(a,'=').concat(n[a])}))}return k.length&&(h=h+'?'+k.join('&')),e(h,a)})).then(function(){console.timeEnd('intercept exec')})}var o={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch'},p=function(){function d(){var f=this;this.config=a({},o),this.state={inited:!0,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:{},registerModules:[],requireMap:{}},this.register=function(a,b,d){void 0===d&&(d={matchType:'version'});var e=d.matchType;return f._getReadyModule(a)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(f.state.installedModules[a]={exports:b,sourceCode:c,dep:[],refer:{upperDep:[],entryDep:[]},ready:!0,loaded:!0,fired:!0},'module'===e&&f.state.registerModules.push({moduleName:a,matchType:e,match:new RegExp('^datav:/npm/'.concat(a,'/([^/]+)?$')),module:f.state.installedModules[a]}))},this.init=function(a){var b,c,d,e;if(a.base&&'/'!==a.base&&(f.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(var g in a.remoteBase)a.remoteBase.hasOwnProperty(g)&&(f.config.remoteBase[g]=a.remoteBase[g].replace(/\/$/,''));for(f.config.version=null!==(b=a.version)&&void 0!==b?b:f.config.version,f.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:f.config.esModule,f.config.debug=null!==(d=a.debug)&&void 0!==d?d:f.config.debug,f.config.combine=null!==(e=a.combine)&&void 0!==e?e:f.config.combine,f.state.inited=!0;f.state.pendingQueue.length;){var h=f.state.pendingQueue.shift();f._load(h[0],h[1])}},this.use=function(a,d,e,g){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');var h,j='string'===typeof a?[a]:b([],a,!0),k=g;'string'===typeof d?h=e:(h=d,k=e),h=h||c,j=k?j:i(j,f.config.remoteSeparator),f.state.entrances.set(j,{callback:h,loadSources:b([],j,!0)}),f._load(j,j)},this.execute=function(a,b,c){var d,e=f._calibrateName(a);(null===(d=f.state.installedModules[e])||void 0===d?void 0:d.loaded)||(f._store(e,b,c),f._initiate(e))},this.css=function(a,b,c){if(a){var d=c+'@'+b;if(!f.state.cssModule[d])return f.state.cssModule[d]=!0,k(a,b,c)}},this._store=function(a,b,c){var d,e;if(!(null!==(e=f.state.installedModules[a])&&void 0!==e)||!e.loaded){var g=f.state.installedModules[a];g?((d=g.dep).push.apply(d,b),g.sourceCode=c,g.loaded=!0):f.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{upperDep:[],entryDep:[]},loaded:!0,ready:!1,fired:!1}}},this._load=function(a,b){return f.state.inited?void a.forEach(function(a){var c=f.state.installedModules[a];if(f._getReadyModule(a))return void f._triggerCallback(f._addReferToModule({upperDep:[],entryDep:[]},b));if(c)return void f._addReferToModule(c.refer,b);var d=a.split('?')[0];f.state.requireMap[d]=a,f.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[],upperDep:[]},loaded:!1,ready:!1,fired:!1},f._addReferToModule(f.state.installedModules[a].refer,b);var g=f._generatePath(a);e(g)}):void f.state.pendingQueue.push([a,b])},this._triggerCallback=function(a){a.upperDep.forEach(function(a){var b=f.state.installedModules[a];b&&f._initiate(a)}),a.entryDep.forEach(function(a){var b=f.state.entrances.get(a);b&&f._triggerEntryCallback(a)})},this._initiate=function(a){if(f.state.installedModules[a]&&!f.state.installedModules[a].ready){var b=f.state.installedModules[a];if(b){if(!b.loaded)return;if(b.dep.length){var c=!0;if(b.dep.forEach(function(b){f._getReadyModule(b)||f._checkCursiveDep(a,b)||(c=!1,f._load([b],a))}),!c)return}}f.state.installedModules[a].ready=!0,f._triggerCallback(b.refer)}},this._triggerEntryCallback=function(a){var b=f.state.entrances.get(a);b&&b.loadSources.every(f._getReadyModule)&&b.loadSources.every(f._fireModule)&&(b.callback.apply(b,a.map(function(a){return f.state.installedModules[a].exports})),f.state.entrances.delete(a))},this._fireModule=function(a){var b=f.state.installedModules[a];if(!b||!b.ready)return!1;if(b.fired)return!0;var c=!0;try{var d=b.sourceCode.apply(window,[b,b.exports,f._cubeRequire(a),f._cubeLoad(a),f.config.mockedProcess,f.config.mockedGlobal]);b.exports=f._isEsModule(d)?d.default:d,b.error=!1}catch(d){'Cube inner denpendency lost; refetch inited'===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{f.state.lostDepModule[a]?(b.ready=!1,f.state.lostDepModule[a].forEach(function(c){b.dep.includes(c)||(b.dep.push(c),f._load([c],a),console.warn('Cube module '.concat(a,' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(c)))}),Reflect.deleteProperty(f.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=function(a){return function(b,c){if(void 0===c){var d=f._getModule(b);if(null===d||void 0===d?void 0:d.fired)return d.exports;if(f._checkCursiveDep(a,b))return console.error('Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(b,' --> ').concat(a)),{};var e=f._fireModule(b);if(!d||!e)throw f.state.lostDepModule[a]?f.state.lostDepModule[a].push(b):f.state.lostDepModule[a]=[b],new Error('Cube inner denpendency lost; refetch inited');else return d.exports}else{var g=void 0,d=f._getReadyModule(b);if(!d)return;d.fired&&(g=d.exports);var e=f._fireModule(b);return e&&(g=d.exports),f.css(g,c,b)}}},this._cubeLoad=function(a){return function(b,c,d){d===void 0&&'function'===typeof c?(d=c,c='',f.use(b,a,d)):f.use(b,a,function(a){a=f.css(a,c,b),d&&d(a)})}},this._generatePath=function(a){var b=a.split('?'),c=b[0],d=b[1],e=m(c,f.config),g=[];if(g.push('m=1'),f.config.version&&g.push(f.config.version),f.config.combine&&g.push('combine=true'),d){var h=l(d);g.push(Object.keys(h).map(function(a){return''.concat(a,'=').concat(h[a])}))}return g.length&&(e=e+'?'+g.join('&')),e},this._addReferToModule=function(a,b){if(!b)return a;return'string'!==typeof b?a.entryDep.push(b):!a.upperDep.includes(b)&&a.upperDep.push(b),a},this._calibrateName=function(a){var b=f.state.requireMap[a]||a;return f.state.requireMap[a]&&Reflect.deleteProperty(f.state.requireMap,a),b},this._getGlobalRegister=function(a){for(var b,c=0,d=f.state.registerModules;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}var n={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch'};(function(){var d=function(){function d(){var f=this;this.config=a({},n),this.state={inited:!0,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:{},registerModules:[],requireMap:{}},this.register=function(a,b,d){void 0===d&&(d={matchType:'version'});var e=d.matchType;return f._getReadyModule(a)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(f.state.installedModules[a]={exports:b,sourceCode:c,dep:[],refer:{upperDep:[],entryDep:[]},ready:!0,loaded:!0,fired:!0},'module'===e&&f.state.registerModules.push({moduleName:a,matchType:e,match:new RegExp('^datav:/npm/'.concat(a,'/([^/]+)?$')),module:f.state.installedModules[a]}))},this.init=function(a){var b,c,d,e;if(a.base&&'/'!==a.base&&(f.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(var g in a.remoteBase)a.remoteBase.hasOwnProperty(g)&&(f.config.remoteBase[g]=a.remoteBase[g].replace(/\/$/,''));for(f.config.version=null!==(b=a.version)&&void 0!==b?b:f.config.version,f.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:f.config.esModule,f.config.debug=null!==(d=a.debug)&&void 0!==d?d:f.config.debug,f.config.combine=null!==(e=a.combine)&&void 0!==e?e:f.config.combine,f.state.inited=!0;f.state.pendingQueue.length;){var h=f.state.pendingQueue.shift();f._load(h[0],h[1])}},this.use=function(a,d,e,g){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');var h,j='string'===typeof a?[a]:b([],a,!0),k=g;'string'===typeof d?h=e:(h=d,k=e),h=h||c,j=k?j:i(j,f.config.remoteSeparator),f.state.entrances.set(j,{callback:h,loadSources:b([],j,!0)}),f._load(j,j)},this.execute=function(a,b,c){var d,e=f._calibrateName(a);(null===(d=f.state.installedModules[e])||void 0===d?void 0:d.loaded)||(f._store(e,b,c),f._initiate(e))},this.css=function(a,b,c){if(a){var d=c+'@'+b;if(!f.state.cssModule[d])return f.state.cssModule[d]=!0,k(a,b,c)}},this._store=function(a,b,c){var d,e;if(!(null!==(e=f.state.installedModules[a])&&void 0!==e)||!e.loaded){var g=f.state.installedModules[a];g?((d=g.dep).push.apply(d,b),g.sourceCode=c,g.loaded=!0):f.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{upperDep:[],entryDep:[]},loaded:!0,ready:!1,fired:!1}}},this._load=function(a,b){return f.state.inited?void a.forEach(function(a){var c=f.state.installedModules[a];if(f._getReadyModule(a))return void f._triggerCallback(f._addReferToModule({upperDep:[],entryDep:[]},b));if(c)return void f._addReferToModule(c.refer,b);var d=a.split('?')[0];f.state.requireMap[d]=a,f.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[],upperDep:[]},loaded:!1,ready:!1,fired:!1},f._addReferToModule(f.state.installedModules[a].refer,b);var g=f._generatePath(a);e(g)}):void f.state.pendingQueue.push([a,b])},this._triggerCallback=function(a){a.upperDep.forEach(function(a){var b=f.state.installedModules[a];b&&f._initiate(a)}),a.entryDep.forEach(function(a){var b=f.state.entrances.get(a);b&&f._triggerEntryCallback(a)})},this._initiate=function(a){if(f.state.installedModules[a]&&!f.state.installedModules[a].ready){var b=f.state.installedModules[a];if(b){if(!b.loaded)return;if(b.dep.length){var c=!0;if(b.dep.forEach(function(b){f._getReadyModule(b)||f._checkCursiveDep(a,b)||(c=!1,f._load([b],a))}),!c)return}}f.state.installedModules[a].ready=!0,f._triggerCallback(b.refer)}},this._triggerEntryCallback=function(a){var b=f.state.entrances.get(a);b&&b.loadSources.every(f._getReadyModule)&&b.loadSources.every(f._fireModule)&&(b.callback.apply(b,a.map(function(a){return f.state.installedModules[a].exports})),f.state.entrances.delete(a))},this._fireModule=function(a){var b=f.state.installedModules[a];if(!b||!b.ready)return!1;if(b.fired)return!0;var c=!0;try{var d=b.sourceCode.apply(window,[b,b.exports,f._cubeRequire(a),f._cubeLoad(a),f.config.mockedProcess,f.config.mockedGlobal]);b.exports=f._isEsModule(d)?d.default:d,b.error=!1}catch(d){'Cube inner denpendency lost; refetch inited'===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{f.state.lostDepModule[a]?(b.ready=!1,f.state.lostDepModule[a].forEach(function(c){b.dep.includes(c)||(b.dep.push(c),f._load([c],a),console.warn('Cube module '.concat(a,' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(c)))}),Reflect.deleteProperty(f.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=function(a){return function(b,c){if(void 0===c){var d=f._getModule(b);if(null===d||void 0===d?void 0:d.fired)return d.exports;if(f._checkCursiveDep(a,b))return console.error('Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(b,' --> ').concat(a)),{};var e=f._fireModule(b);if(!d||!e)throw f.state.lostDepModule[a]?f.state.lostDepModule[a].push(b):f.state.lostDepModule[a]=[b],new Error('Cube inner denpendency lost; refetch inited');else return d.exports}else{var g=void 0,d=f._getReadyModule(b);if(!d)return;d.fired&&(g=d.exports);var e=f._fireModule(b);return e&&(g=d.exports),f.css(g,c,b)}}},this._cubeLoad=function(a){return function(b,c,d){d===void 0&&'function'===typeof c?(d=c,c='',f.use(b,a,d)):f.use(b,a,function(a){a=f.css(a,c,b),d&&d(a)})}},this._generatePath=function(a){var b=a.split('?'),c=b[0],d=b[1],e=m(c,f.config),g=[];if(g.push('m=1'),f.config.version&&g.push(f.config.version),f.config.combine&&g.push('combine=true'),d){var h=l(d);g.push(Object.keys(h).map(function(a){return''.concat(a,'=').concat(h[a])}))}return g.length&&(e=e+'?'+g.join('&')),e},this._addReferToModule=function(a,b){if(!b)return a;return'string'!==typeof b?a.entryDep.push(b):!a.upperDep.includes(b)&&a.upperDep.push(b),a},this._calibrateName=function(a){var b=f.state.requireMap[a]||a;return f.state.requireMap[a]&&Reflect.deleteProperty(f.state.requireMap,a),b},this._getGlobalRegister=function(a){for(var b,c=0,d=f.state.registerModules;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v3.2.0'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + * Cube v5.0.0-beta.1 + */ + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.1'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 5fd69266bbd6ccd22c2596590a52cd0981c538a5 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Tue, 14 Feb 2023 17:05:45 +0800 Subject: [PATCH 37/74] Auto stash before merge of "feat/reconstruction" and "upstream/v5.x" --- runtime/cube-reconstruction.js | 503 +++++++++++++++-------------- runtime/cube-reconstruction.min.js | 5 +- 2 files changed, 265 insertions(+), 243 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index a0b656f..c93328c 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,10 +1,24 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 -var __assign = - (this && this.__assign) || - function () { +(function () { + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + var __assign = function () { __assign = Object.assign || - function (t) { + function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; @@ -13,9 +27,8 @@ var __assign = }; return __assign.apply(this, arguments); }; -var __spreadArray = - (this && this.__spreadArray) || - function (to, from, pack) { + + function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { @@ -24,151 +37,133 @@ var __spreadArray = } } return to.concat(ar || Array.prototype.slice.call(from)); - }; -// 支持 cube 的一些工具方法 -function noop() {} -function baseCodeProxy(c) { - return c; -} -function fetchCubeCode(url, inputCodeProxy) { - var codeProxy = inputCodeProxy || baseCodeProxy; - return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, - }) - .then(function (response) { - return response.text(); + } + + // 支持 cube 的一些工具方法 + function noop() {} + function baseCodeProxy(c) { + return c; + } + function combineExecute(c) { + return 'Cube.cStart();' + c + ';Cube.cStop();'; + } + function fetchCubeCode(url, inputCodeProxy) { + var codeProxy = inputCodeProxy || baseCodeProxy; + return fetch(url, { + headers: { + 'Content-Type': 'text/plain', + }, }) - .then(function (code) { - return new Function(codeProxy(code))(); - }); -} -var head = document.querySelector('head'); -/** 原有 cube 请求方法 */ -function scriptCubeCode(url) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.onerror = function () { - window.Cube(require, [], function () { - console.error('load module: '.concat(require, ' failed.')); - }); - }; - script.src = url; - head.appendChild(script); -} -function generateModuleCallback(moduleNames, callback) { - var exportModules = {}; - return function (exportModule, path) { - exportModules[path] = exportModule; - // 外部调用时保障了对应关系 此处简单判断 - if (Object.keys(exportModules).length === moduleNames.length) { - // 保证 module 顺序 - callback.apply( - void 0, - moduleNames.map(function (k) { - return exportModules[k]; - }) - ); - return true; - } - return false; - }; -} -function fixMododulePath(paths, remoteSeparator) { - var len = paths.length; - var mod; - for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; + .then(function (response) { + return response.text(); + }) + .then(function (code) { + return new Function(codeProxy(code))(); + }); + } + var head = document.querySelector('head'); + /** 原有 cube 请求方法 */ + function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = function () { + console.error('load module failed.'); + }; + script.src = url; + head.appendChild(script); + } + function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } } } + return paths; } - return paths; -} -var parseCssRe = /([^};]+)(\{[^}]+\})/g; -/** 原有 css 请求方法 */ -function scriptCubeCss(originCss, namespace, file) { - var css = originCss; - if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); + var parseCssRe = /([^};]+)(\{[^}]+\})/g; + /** 原有 css 请求方法 */ + function scriptCubeCss(originCss, namespace, file) { + var css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; }); - return selectors.join(',') + m2; - }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; } - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - if (file) { - style.setAttribute('mod', file); + function parseQueryString(param) { + var kvs = param.split('&'); + var obj = {}; + kvs.forEach(function (kv) { + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; } - if (namespace) { - style.setAttribute('ns', namespace); + /** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ + function rebase(name, config) { + var base = config.base, + remoteSeparator = config.remoteSeparator, + remoteBase = config.remoteBase; + var defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); } - head.appendChild(style); - style.innerHTML = css; - return css; -} -function parseQueryString(param) { - var kvs = param.split('&'); - var obj = {}; - kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; - }); - return obj; -} -/** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ -function rebase(name, config) { - var base = config.base, - remoteSeparator = config.remoteSeparator, - remoteBase = config.remoteBase; - var defaultPath = base + name; - var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) return defaultPath; - var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) return defaultPath; - return remoteBase[rbase] + name.substr(offset + 1); -} - -/** - * 默认配置项变量 - */ -var DEFAULT_CUBE_CONFIG = { - base: '', - remoteBase: {}, - remoteSeparator: ':', - mockedProcess: { - env: { NODE_ENV: 'production' }, - }, - mockedGlobal: undefined, - /** 这个字段应该已经废弃了 */ - charset: 'utf-8', - /** 仅严格模式 */ - strict: true, - /** 声明组件源码是否使用 esModule 模式*/ - esModule: false, - version: undefined, - /** 是否开启 debug 模式*/ - debug: true, - /** 是否开启请求合并 */ - combine: false, - /** 声明使用 fetch 请求还是创建 script 请求 */ - requestMethod: 'fetch', -}; -(function () { + /** + * 默认配置项变量 + */ + var DEFAULT_CUBE_CONFIG = { + base: '', + remoteBase: {}, + remoteSeparator: ':', + mockedProcess: { + env: { NODE_ENV: 'production' }, + }, + mockedGlobal: undefined, + /** 这个字段应该已经废弃了 */ + charset: 'utf-8', + /** 仅严格模式 */ + strict: true, + /** 声明组件源码是否使用 esModule 模式*/ + esModule: false, + version: undefined, + /** 是否开启 debug 模式*/ + debug: true, + /** 是否开启请求合并 */ + combine: false, + /** 声明使用 fetch 请求还是创建 script 请求 */ + requestMethod: 'fetch', + }; /** * cube 重构 * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg @@ -190,12 +185,13 @@ var DEFAULT_CUBE_CONFIG = { /** 记录 css 模块加载情况 */ cssModule: {}, /** 已下载模块 */ - installedModules: {}, + installedModules: getStringOnlyObj(), /** 注册模块 */ registerModules: [], // 兼容请求 key 带入参,返回 key 不带入参的情况。 // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } requireMap: {}, + fileExecuting: false, }; /** * 跳过请求注册模块 @@ -218,6 +214,7 @@ var DEFAULT_CUBE_CONFIG = { refer: { upperDep: [], entryDep: [] }, ready: true, loaded: true, + firing: false, fired: true, }; if (matchType === 'module') { @@ -231,7 +228,7 @@ var DEFAULT_CUBE_CONFIG = { }; /** 初始化 */ this.init = function (config) { - var _a, _b, _c, _d; + var _a, _b, _c, _d, _e; if (config.base && config.base !== '/') { _this.config.base = config.base.replace(/\/$/, ''); } @@ -246,6 +243,8 @@ var DEFAULT_CUBE_CONFIG = { _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = + (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; _this.state.inited = true; while (_this.state.pendingQueue.length) { var pendingInfo = _this.state.pendingQueue.shift(); @@ -261,7 +260,12 @@ var DEFAULT_CUBE_CONFIG = { } // 整理入参 // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' ? [moduleName] : __spreadArray([], moduleName, true); + var moduleNames = + typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); var omitFix = omitFixOrUndefined; // let _referer: string | undefined; var callback; @@ -279,11 +283,16 @@ var DEFAULT_CUBE_CONFIG = { callback: callback, loadSources: __spreadArray([], moduleNames, true), }); - _this._load(moduleNames, moduleNames); + moduleNames.forEach(function (mName) { + return _this._load(mName, moduleNames); + }); }; /** 执行 cube 源码 即原 Cube(...) */ this.execute = function (responseName, requires, sourceCode) { var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } var moduleName = _this._calibrateName(responseName); // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { @@ -329,44 +338,47 @@ var DEFAULT_CUBE_CONFIG = { refer: { upperDep: [], entryDep: [] }, loaded: true, ready: false, + firing: false, fired: false, }; } }; /** 请求资源 */ - this._load = function (moduleNames, refer) { - if (!_this.state.inited) { - _this.state.pendingQueue.push([moduleNames, refer]); + this._load = function (moduleName, refer) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, refer]); return; } - moduleNames.forEach(function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (_this._getReadyModule(moduleName)) { - _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); - return; - } - if (module) { - _this._addReferToModule(module.refer, refer); - return; - } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - upperDep: [], - }, - loaded: false, - ready: false, - fired: false, - }; - _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); - var srcPath = _this._generatePath(moduleName); - fetchCubeCode(srcPath); - }); + var module = _this.state.installedModules[moduleName]; + if (_this._getReadyModule(moduleName)) { + _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + return; + } + if (module) { + _this._addReferToModule(module.refer, refer); + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + upperDep: [], + }, + loaded: false, + ready: false, + firing: false, + fired: false, + }; + _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); }; /** 向上检索树依赖及回调 */ this._triggerCallback = function (refer) { @@ -392,24 +404,39 @@ var DEFAULT_CUBE_CONFIG = { if (module.dep.length) { var allLoad_1 = true; module.dep.forEach(function (name) { - if (_this._getReadyModule(name)) return; - if (_this._checkCursiveDep(moduleName, name)) return; + var dep = _this._getModule(name); + if (dep) { + if (dep.fired || dep.firing || dep.ready) return; + } allLoad_1 = false; - _this._load([name], moduleName); + _this._load(name, moduleName); }); if (!allLoad_1) return; } } - // 此处直接fire 请求资源都默认为需要的 _this.state.installedModules[moduleName].ready = true; + // 由于目前的文件管理机制,此处不能立刻实例化,仅允许顶层触发 _this._triggerCallback(module.refer); }; /** 执行回调函数 */ this._triggerEntryCallback = function (entry) { var entryInfo = _this.state.entrances.get(entry); if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { - // 存在隐藏依赖的情况 降低 _fireModule 触发时机 - if (entryInfo.loadSources.every(_this._fireModule)) { + var readyCallback_1 = true; + entryInfo.loadSources.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) return; + if (module.firing) { + readyCallback_1 = false; + return; + } + if (module.ready) { + _this._fireModule(moduleName); + if (module.fired) return; + } + readyCallback_1 = false; + }); + if (readyCallback_1) { entryInfo.callback.apply( entryInfo, entry.map(function (e) { @@ -425,10 +452,16 @@ var DEFAULT_CUBE_CONFIG = { var module = _this.state.installedModules[moduleName]; if (!module || !module.ready) return false; if (module.fired) return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } var fireResult = true; try { + module.firing = true; var exports = module.sourceCode.apply(window, [ module, + // 此处需要组件不改变实例 module.exports, _this._cubeRequire(moduleName), _this._cubeLoad(moduleName), @@ -447,13 +480,14 @@ var DEFAULT_CUBE_CONFIG = { module.error = true; } } finally { + module.firing = false; // 避免组件内部有 catch 导致 抓不到错误的情况 if (_this.state.lostDepModule[moduleName]) { module.ready = false; _this.state.lostDepModule[moduleName].forEach(function (name) { if (!module.dep.includes(name)) { module.dep.push(name); - _this._load([name], moduleName); + _this._load(name, moduleName); console.warn('Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name)); } }); @@ -473,14 +507,8 @@ var DEFAULT_CUBE_CONFIG = { if (module === null || module === void 0 ? void 0 : module.fired) { return module.exports; } - if (_this._checkCursiveDep(selfName, moduleName)) { - console.error( - 'Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(moduleName, ' --> ').concat(selfName) - ); - return {}; - } - var fireSucceed = _this._fireModule(moduleName); - if (!module || !fireSucceed) { + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { if (_this.state.lostDepModule[selfName]) { _this.state.lostDepModule[selfName].push(moduleName); } else { @@ -533,8 +561,6 @@ var DEFAULT_CUBE_CONFIG = { custom = _a[1]; var srcPath = rebase(name, _this.config); var query = []; - // 历史逻辑 疑似命中缓存 - query.push('m=1'); if (_this.config.version) { query.push(_this.config.version); } @@ -542,13 +568,17 @@ var DEFAULT_CUBE_CONFIG = { query.push('combine=true'); } if (custom) { - var customArgs_2 = parseQueryString(custom); + var customArgs_1 = parseQueryString(custom); query.push( - Object.keys(customArgs_2).map(function (c) { - return ''.concat(c, '=').concat(customArgs_2[c]); + Object.keys(customArgs_1).map(function (c) { + return ''.concat(c, '=').concat(customArgs_1[c]); }) ); } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } if (query.length) { srcPath = srcPath + '?' + query.join('&'); } @@ -579,15 +609,6 @@ var DEFAULT_CUBE_CONFIG = { } return moduleName; }; - // /** 引用信息缺失时 自构建引用关系 剩者为王 */ - // private chaosBattle = (names: string[]) => { - // if (names.length === 1) { - // this._initiateAndCallback(names[0]); - // } else if (names.length > 1) { - // // this.state.combineStatus = 'execute'; - // names.forEach((name) => this._initiateAndCallback(name)); - // } - // }; /** * 获取全局默认模块 * requirePath => datav:/npm/react/16.4.6?env=xxx @@ -616,30 +637,15 @@ var DEFAULT_CUBE_CONFIG = { this._isEsModule = function (module) { return _this.config.esModule && module && typeof module === 'object' && module.__esModule; }; - this._checkCursiveDep = function (selfName, requireName) { - if (requireName === selfName) return true; - var depArr = [requireName]; - var detected = false; - var times = 6; // 防止下层依赖环 - var _loop_1 = function () { - var newDep = []; - depArr.forEach(function (d) { - var depModule = _this.state.installedModules[d]; - if (depModule && !depModule.fired) { - newDep.push.apply(newDep, depModule.dep); - } - }); - if (newDep.includes(selfName)) { - detected = true; - } - depArr = newDep; - times -= 1; - }; - do { - _loop_1(); - } while (detected === false && times > 0 && depArr.length > 0); - if (detected) return true; - return false; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + while (_this.state.pendingQueue.length) { + var pendingInfo = _this.state.pendingQueue.shift(); + _this._load(pendingInfo[0], pendingInfo[1]); + } }; // 测试使用 // private _unResolvedDep = () => { @@ -650,18 +656,22 @@ var DEFAULT_CUBE_CONFIG = { /****************************** 以下为原有方法兼容 **************************/ /** 原有方法 直接打印内部状态 */ this.cache = function () { - console.info('modules:', _this.state.installedModules); + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); console.info( 'unloaded:', - Object.values(_this.state.installedModules).filter(function (m) { - return !m.loaded; - }) + Object.fromEntries( + Object.entries(_this.state.installedModules).filter(function (m) { + return !m[1].loaded; + }) + ) ); console.info( 'unfired:', - Object.values(_this.state.installedModules).filter(function (m) { - return !m.fired; - }) + Object.fromEntries( + Object.entries(_this.state.installedModules).filter(function (m) { + return !m[1].fired; + }) + ) ); }; /** @deprecated */ @@ -675,6 +685,21 @@ var DEFAULT_CUBE_CONFIG = { } return Cube; })(); + function getStringOnlyObj() { + return new Proxy( + {}, + { + get: function (target, propKey) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); + }, + set: function (target, propKey, value, receiver) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); + }, + } + ); + } /** 全局初始化单例 */ function setGlobalCube(alias) { if (alias === void 0) { @@ -701,6 +726,6 @@ var DEFAULT_CUBE_CONFIG = { global[alias] = mockCube; return global[alias]; } - /** 模拟目前主动挂在 window 的做法 */ + setGlobalCube(); })(); diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index bd2285b..15ca70b 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1 @@ -/*! - * Cube v5.0.0-beta.1 - */ - var a=this&&this.__assign||function(){return a=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}var n={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch'};(function(){var d=function(){function d(){var f=this;this.config=a({},n),this.state={inited:!0,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:{},registerModules:[],requireMap:{}},this.register=function(a,b,d){void 0===d&&(d={matchType:'version'});var e=d.matchType;return f._getReadyModule(a)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(f.state.installedModules[a]={exports:b,sourceCode:c,dep:[],refer:{upperDep:[],entryDep:[]},ready:!0,loaded:!0,fired:!0},'module'===e&&f.state.registerModules.push({moduleName:a,matchType:e,match:new RegExp('^datav:/npm/'.concat(a,'/([^/]+)?$')),module:f.state.installedModules[a]}))},this.init=function(a){var b,c,d,e;if(a.base&&'/'!==a.base&&(f.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(var g in a.remoteBase)a.remoteBase.hasOwnProperty(g)&&(f.config.remoteBase[g]=a.remoteBase[g].replace(/\/$/,''));for(f.config.version=null!==(b=a.version)&&void 0!==b?b:f.config.version,f.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:f.config.esModule,f.config.debug=null!==(d=a.debug)&&void 0!==d?d:f.config.debug,f.config.combine=null!==(e=a.combine)&&void 0!==e?e:f.config.combine,f.state.inited=!0;f.state.pendingQueue.length;){var h=f.state.pendingQueue.shift();f._load(h[0],h[1])}},this.use=function(a,d,e,g){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');var h,j='string'===typeof a?[a]:b([],a,!0),k=g;'string'===typeof d?h=e:(h=d,k=e),h=h||c,j=k?j:i(j,f.config.remoteSeparator),f.state.entrances.set(j,{callback:h,loadSources:b([],j,!0)}),f._load(j,j)},this.execute=function(a,b,c){var d,e=f._calibrateName(a);(null===(d=f.state.installedModules[e])||void 0===d?void 0:d.loaded)||(f._store(e,b,c),f._initiate(e))},this.css=function(a,b,c){if(a){var d=c+'@'+b;if(!f.state.cssModule[d])return f.state.cssModule[d]=!0,k(a,b,c)}},this._store=function(a,b,c){var d,e;if(!(null!==(e=f.state.installedModules[a])&&void 0!==e)||!e.loaded){var g=f.state.installedModules[a];g?((d=g.dep).push.apply(d,b),g.sourceCode=c,g.loaded=!0):f.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{upperDep:[],entryDep:[]},loaded:!0,ready:!1,fired:!1}}},this._load=function(a,b){return f.state.inited?void a.forEach(function(a){var c=f.state.installedModules[a];if(f._getReadyModule(a))return void f._triggerCallback(f._addReferToModule({upperDep:[],entryDep:[]},b));if(c)return void f._addReferToModule(c.refer,b);var d=a.split('?')[0];f.state.requireMap[d]=a,f.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[],upperDep:[]},loaded:!1,ready:!1,fired:!1},f._addReferToModule(f.state.installedModules[a].refer,b);var g=f._generatePath(a);e(g)}):void f.state.pendingQueue.push([a,b])},this._triggerCallback=function(a){a.upperDep.forEach(function(a){var b=f.state.installedModules[a];b&&f._initiate(a)}),a.entryDep.forEach(function(a){var b=f.state.entrances.get(a);b&&f._triggerEntryCallback(a)})},this._initiate=function(a){if(f.state.installedModules[a]&&!f.state.installedModules[a].ready){var b=f.state.installedModules[a];if(b){if(!b.loaded)return;if(b.dep.length){var c=!0;if(b.dep.forEach(function(b){f._getReadyModule(b)||f._checkCursiveDep(a,b)||(c=!1,f._load([b],a))}),!c)return}}f.state.installedModules[a].ready=!0,f._triggerCallback(b.refer)}},this._triggerEntryCallback=function(a){var b=f.state.entrances.get(a);b&&b.loadSources.every(f._getReadyModule)&&b.loadSources.every(f._fireModule)&&(b.callback.apply(b,a.map(function(a){return f.state.installedModules[a].exports})),f.state.entrances.delete(a))},this._fireModule=function(a){var b=f.state.installedModules[a];if(!b||!b.ready)return!1;if(b.fired)return!0;var c=!0;try{var d=b.sourceCode.apply(window,[b,b.exports,f._cubeRequire(a),f._cubeLoad(a),f.config.mockedProcess,f.config.mockedGlobal]);b.exports=f._isEsModule(d)?d.default:d,b.error=!1}catch(d){'Cube inner denpendency lost; refetch inited'===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{f.state.lostDepModule[a]?(b.ready=!1,f.state.lostDepModule[a].forEach(function(c){b.dep.includes(c)||(b.dep.push(c),f._load([c],a),console.warn('Cube module '.concat(a,' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(c)))}),Reflect.deleteProperty(f.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=function(a){return function(b,c){if(void 0===c){var d=f._getModule(b);if(null===d||void 0===d?void 0:d.fired)return d.exports;if(f._checkCursiveDep(a,b))return console.error('Cube \u68C0\u6D4B\u5230\u5FAA\u73AF\u4F9D\u8D56 '.concat(b,' --> ').concat(a)),{};var e=f._fireModule(b);if(!d||!e)throw f.state.lostDepModule[a]?f.state.lostDepModule[a].push(b):f.state.lostDepModule[a]=[b],new Error('Cube inner denpendency lost; refetch inited');else return d.exports}else{var g=void 0,d=f._getReadyModule(b);if(!d)return;d.fired&&(g=d.exports);var e=f._fireModule(b);return e&&(g=d.exports),f.css(g,c,b)}}},this._cubeLoad=function(a){return function(b,c,d){d===void 0&&'function'===typeof c?(d=c,c='',f.use(b,a,d)):f.use(b,a,function(a){a=f.css(a,c,b),d&&d(a)})}},this._generatePath=function(a){var b=a.split('?'),c=b[0],d=b[1],e=m(c,f.config),g=[];if(g.push('m=1'),f.config.version&&g.push(f.config.version),f.config.combine&&g.push('combine=true'),d){var h=l(d);g.push(Object.keys(h).map(function(a){return''.concat(a,'=').concat(h[a])}))}return g.length&&(e=e+'?'+g.join('&')),e},this._addReferToModule=function(a,b){if(!b)return a;return'string'!==typeof b?a.entryDep.push(b):!a.upperDep.includes(b)&&a.upperDep.push(b),a},this._calibrateName=function(a){var b=f.state.requireMap[a]||a;return f.state.requireMap[a]&&Reflect.deleteProperty(f.state.requireMap,a),b},this._getGlobalRegister=function(a){for(var b,c=0,d=f.state.registerModules;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Tue, 14 Feb 2023 17:06:18 +0800 Subject: [PATCH 38/74] chore: add version to min.js --- runtime/cube-reconstruction.min.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 15ca70b..5e7c85a 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1 +1,4 @@ -(function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Wed, 15 Feb 2023 10:28:21 +0800 Subject: [PATCH 39/74] chore: version update --- package.json | 2 +- runtime/cube-reconstruction.min.js | 2 +- runtime/cube.min.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 99fa597..98bc62d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 5e7c85a..c24feb9 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.1 + * Cube v5.0.0-beta.2 */ (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.1'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.2'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 753cb4fdf64fe35a1251b7ef488bf54a5614c4a4 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Mon, 20 Feb 2023 11:01:33 +0800 Subject: [PATCH 40/74] fix: fix sub resource circularly depend cause error in static check --- runtime/cube-reconstruction.js | 1482 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 2 +- 2 files changed, 757 insertions(+), 727 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index c93328c..dd2c0c8 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,731 +1,761 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 (function () { - /****************************************************************************** - Copyright (c) Microsoft Corporation. - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} - var __assign = function () { - __assign = - Object.assign || - function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; +// 支持 cube 的一些工具方法 +function noop() { } +function baseCodeProxy(c) { + return c; +} +function combineExecute(c) { + return 'Cube.cStart();' + c + ';Cube.cStop();'; +} +function fetchCubeCode(url, inputCodeProxy) { + var codeProxy = inputCodeProxy || baseCodeProxy; + return fetch(url, { + headers: { + 'Content-Type': 'text/plain', + }, + }) + .then(function (response) { return response.text(); }) + .then(function (code) { return new Function(codeProxy(code))(); }); +} +var head = document.querySelector('head'); +/** 原有 cube 请求方法 */ +function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = function () { + console.error("load module failed."); + }; + script.src = url; + head.appendChild(script); +} +function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } + else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } + } + } + return paths; +} +var parseCssRe = /([^};]+)(\{[^}]+\})/g; +/** 原有 css 请求方法 */ +function scriptCubeCss(originCss, namespace, file) { + var css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; + }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; +} +function parseQueryString(param) { + var kvs = param.split('&'); + var obj = {}; + kvs.forEach(function (kv) { + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; +} +/** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ +function rebase(name, config) { + var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; + var defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) + return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) + return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); +} - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - } +/** + * 默认配置项变量 + */ +var DEFAULT_CUBE_CONFIG = { + base: '', + remoteBase: {}, + remoteSeparator: ':', + mockedProcess: { + env: { NODE_ENV: 'production' }, + }, + mockedGlobal: undefined, + /** 这个字段应该已经废弃了 */ + charset: 'utf-8', + /** 仅严格模式 */ + strict: true, + /** 声明组件源码是否使用 esModule 模式*/ + esModule: false, + version: undefined, + /** 是否开启 debug 模式*/ + debug: true, + /** 是否开启请求合并 */ + combine: false, + /** 声明使用 fetch 请求还是创建 script 请求 */ + requestMethod: 'fetch', +}; +/** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ +var Cube = /** @class */ (function () { + function Cube() { + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: true, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + fileExecuting: false, + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + if (option === void 0) { option = { matchType: 'version' }; } + var matchType = option.matchType; + if (_this._getReadyModule(moduleName)) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + _this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { upperDep: [], entryDep: [] }, + ready: true, + loaded: true, + firing: false, + fired: true, + }; + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), + module: _this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d, _e; + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.state.inited = true; + while (_this.state.pendingQueue.length) { + var pendingInfo = _this.state.pendingQueue.shift(); + _this._load(pendingInfo[0], pendingInfo[1]); + } + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } + else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + _this.state.entrances.set(moduleNames, { + callback: callback, + loadSources: __spreadArray([], moduleNames, true), + }); + moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { + var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var _b; + // 不重复存储 + if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { + return; + } + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; + } + else { + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { upperDep: [], entryDep: [] }, + loaded: true, + ready: false, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = function (moduleName, refer) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, refer]); + return; + } + var module = _this.state.installedModules[moduleName]; + if (_this._getReadyModule(moduleName)) { + _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + return; + } + if (module) { + _this._addReferToModule(module.refer, refer); + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + upperDep: [], + }, + loaded: false, + ready: false, + firing: false, + fired: false, + }; + _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (refer) { + refer.upperDep.forEach(function (mName) { + var upperModule = _this.state.installedModules[mName]; + if (upperModule) { + _this._initiate(mName); + } + }); + refer.entryDep.forEach(function (entry) { + var upperModule = _this.state.entrances.get(entry); + if (upperModule) { + _this._triggerEntryCallback(entry); + } + }); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) + return; + var module = _this.state.installedModules[moduleName]; + if (module) { + if (!module.loaded) + return; + if (module.dep.length) { + var allLoad_1 = true; + module.dep.forEach(function (name) { + var dep = _this._getModule(name); + if (dep) { + if (dep.fired || dep.firing || dep.ready) + return; + if (_this._isCursiveCausedUnready(name, moduleName)) + return; + } + allLoad_1 = false; + _this._load(name, moduleName); + }); + if (!allLoad_1) + return; + } + } + _this.state.installedModules[moduleName].ready = true; + // 由于目前的文件管理机制,此处不能立刻实例化,仅允许顶层触发 + _this._triggerCallback(module.refer); + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entry) { + var entryInfo = _this.state.entrances.get(entry); + if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { + var readyCallback_1 = true; + entryInfo.loadSources.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) + return; + // 理论上不会不存在 + if (module.firing) { + readyCallback_1 = false; + return; + } + if (module.ready) { + _this._fireModule(moduleName); + if (module.fired) + return; + } + readyCallback_1 = false; + }); + if (readyCallback_1) { + entryInfo.callback.apply(entryInfo, entry.map(function (e) { return _this.state.installedModules[e].exports; })); + _this.state.entrances.delete(entry); + } + } + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.ready) + return false; + if (module.fired) + return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + var fireResult = true; + try { + module.firing = true; + var exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } + catch (e) { + if (e.message === "Cube inner denpendency lost; refetch inited") { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } + else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } + finally { + module.firing = false; + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + module.ready = false; + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + _this._load(name, moduleName); + console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } + else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } + else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error("Cube inner denpendency lost; refetch inited"); + } + else { + return module.exports; + } + } + else { + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getReadyModule(moduleName); + if (!module) + return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); + } + }; }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } + else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); + }); + } + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + if (_this.config.version) { + query.push(_this.config.version); + } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_1 = parseQueryString(custom); + query.push(Object.keys(customArgs_1).map(function (c) { + return "".concat(c, "=").concat(customArgs_1[c]); + })); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToModule = function (module, referer) { + if (!referer) { + return module; + } + // 此处简单判断 + var isEntry = typeof referer !== 'string'; + if (isEntry) { + module.entryDep.push(referer); + } + else { + if (!module.upperDep.includes(referer)) { + module.upperDep.push(referer); + } + } + return module; + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getReadyModule = function (name) { + var module = _this._getModule(name); + if (module === null || module === void 0 ? void 0 : module.ready) { + return module; + } + }; + this._getModule = function (name) { + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + while (_this.state.pendingQueue.length) { + var pendingInfo = _this.state.pendingQueue.shift(); + _this._load(pendingInfo[0], pendingInfo[1]); + } + }; + // 测试使用 + this._unResolveDep = function (name, deep) { + var _a; + if (deep === void 0) { deep = false; } + var result = (((_a = _this.state.installedModules[name]) === null || _a === void 0 ? void 0 : _a.dep) || []).filter(function (m) { + var d = _this.state.installedModules[m]; + if (!d || !d.ready) { + return true; + } + }); + if (deep) { + var deepResult = [result]; + var i = 0; + while (i < 5) { + result = result.map(_this._unResolveDep); + deepResult.push(result); + i += 1; + } + return deepResult; + } + return result; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); + console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); + console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); + }; + } + Cube.prototype._isCursiveCausedUnready = function (depName, targetName) { + var _this = this; + if (depName === targetName) + return true; + var depArr = [depName]; + var breakIter = false; + var detected = false; + var times = 500; // 防止下层依赖环 + var _loop_1 = function () { + var newDep = []; + depArr.some(function (d) { + var depModule = _this.state.installedModules[d]; + if (!depModule || !depModule.loaded) { + breakIter = true; + return true; + } + else { + newDep.push.apply(newDep, depModule.dep); + } + }); + if (newDep.includes(targetName)) { + detected = true; + } + depArr = newDep; + times -= 1; + }; + do { + _loop_1(); + } while (!detected && !breakIter && times > 0 && depArr.length > 0); + if (detected) + return true; + return false; + }; + return Cube; +}()); +function getStringOnlyObj() { + return new Proxy({}, { + get: function (target, propKey) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); + }, + set: function (target, propKey, value, receiver) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); + }, + }); +} +/** 全局初始化单例 */ +function setGlobalCube(alias) { + if (alias === void 0) { alias = 'Cube'; } + var global = window; + if (global[alias]) { + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; + } + var cube = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube).includes(key)) { + return cube[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + return global[alias]; +} - // 支持 cube 的一些工具方法 - function noop() {} - function baseCodeProxy(c) { - return c; - } - function combineExecute(c) { - return 'Cube.cStart();' + c + ';Cube.cStop();'; - } - function fetchCubeCode(url, inputCodeProxy) { - var codeProxy = inputCodeProxy || baseCodeProxy; - return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, - }) - .then(function (response) { - return response.text(); - }) - .then(function (code) { - return new Function(codeProxy(code))(); - }); - } - var head = document.querySelector('head'); - /** 原有 cube 请求方法 */ - function scriptCubeCode(url) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.onerror = function () { - console.error('load module failed.'); - }; - script.src = url; - head.appendChild(script); - } - function fixMododulePath(paths, remoteSeparator) { - var len = paths.length; - var mod; - for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } - } - } - return paths; - } - var parseCssRe = /([^};]+)(\{[^}]+\})/g; - /** 原有 css 请求方法 */ - function scriptCubeCss(originCss, namespace, file) { - var css = originCss; - if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; - }); - } - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - if (file) { - style.setAttribute('mod', file); - } - if (namespace) { - style.setAttribute('ns', namespace); - } - head.appendChild(style); - style.innerHTML = css; - return css; - } - function parseQueryString(param) { - var kvs = param.split('&'); - var obj = {}; - kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; - }); - return obj; - } - /** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ - function rebase(name, config) { - var base = config.base, - remoteSeparator = config.remoteSeparator, - remoteBase = config.remoteBase; - var defaultPath = base + name; - var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) return defaultPath; - var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) return defaultPath; - return remoteBase[rbase] + name.substr(offset + 1); - } - - /** - * 默认配置项变量 - */ - var DEFAULT_CUBE_CONFIG = { - base: '', - remoteBase: {}, - remoteSeparator: ':', - mockedProcess: { - env: { NODE_ENV: 'production' }, - }, - mockedGlobal: undefined, - /** 这个字段应该已经废弃了 */ - charset: 'utf-8', - /** 仅严格模式 */ - strict: true, - /** 声明组件源码是否使用 esModule 模式*/ - esModule: false, - version: undefined, - /** 是否开启 debug 模式*/ - debug: true, - /** 是否开启请求合并 */ - combine: false, - /** 声明使用 fetch 请求还是创建 script 请求 */ - requestMethod: 'fetch', - }; - /** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ - var Cube = /** @class */ (function () { - function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: true, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - fileExecuting: false, - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - if (option === void 0) { - option = { matchType: 'version' }; - } - var matchType = option.matchType; - if (_this._getReadyModule(moduleName)) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { upperDep: [], entryDep: [] }, - ready: true, - loaded: true, - firing: false, - fired: true, - }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e; - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = - (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.state.inited = true; - while (_this.state.pendingQueue.length) { - var pendingInfo = _this.state.pendingQueue.shift(); - _this._load(pendingInfo[0], pendingInfo[1]); - } - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = - typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - _this.state.entrances.set(moduleNames, { - callback: callback, - loadSources: __spreadArray([], moduleNames, true), - }); - moduleNames.forEach(function (mName) { - return _this._load(mName, moduleNames); - }); - }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); - }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { - var _a; - var _b; - // 不重复存储 - if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { - return; - } - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; - } else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { upperDep: [], entryDep: [] }, - loaded: true, - ready: false, - firing: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleName, refer) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); - } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, refer]); - return; - } - var module = _this.state.installedModules[moduleName]; - if (_this._getReadyModule(moduleName)) { - _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); - return; - } - if (module) { - _this._addReferToModule(module.refer, refer); - return; - } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - upperDep: [], - }, - loaded: false, - ready: false, - firing: false, - fired: false, - }; - _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (refer) { - refer.upperDep.forEach(function (mName) { - var upperModule = _this.state.installedModules[mName]; - if (upperModule) { - _this._initiate(mName); - } - }); - refer.entryDep.forEach(function (entry) { - var upperModule = _this.state.entrances.get(entry); - if (upperModule) { - _this._triggerEntryCallback(entry); - } - }); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) return; - var module = _this.state.installedModules[moduleName]; - if (module) { - if (!module.loaded) return; - if (module.dep.length) { - var allLoad_1 = true; - module.dep.forEach(function (name) { - var dep = _this._getModule(name); - if (dep) { - if (dep.fired || dep.firing || dep.ready) return; - } - allLoad_1 = false; - _this._load(name, moduleName); - }); - if (!allLoad_1) return; - } - } - _this.state.installedModules[moduleName].ready = true; - // 由于目前的文件管理机制,此处不能立刻实例化,仅允许顶层触发 - _this._triggerCallback(module.refer); - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entry) { - var entryInfo = _this.state.entrances.get(entry); - if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { - var readyCallback_1 = true; - entryInfo.loadSources.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) return; - if (module.firing) { - readyCallback_1 = false; - return; - } - if (module.ready) { - _this._fireModule(moduleName); - if (module.fired) return; - } - readyCallback_1 = false; - }); - if (readyCallback_1) { - entryInfo.callback.apply( - entryInfo, - entry.map(function (e) { - return _this.state.installedModules[e].exports; - }) - ); - _this.state.entrances.delete(entry); - } - } - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.ready) return false; - if (module.fired) return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } catch (e) { - if (e.message === 'Cube inner denpendency lost; refetch inited') { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } finally { - module.firing = false; - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - module.ready = false; - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - _this._load(name, moduleName); - console.warn('Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; - } else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { - return function (moduleName, namespace) { - if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; - } - var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } else { - _this.state.lostDepModule[selfName] = [moduleName]; - } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error('Cube inner denpendency lost; refetch inited'); - } else { - return module.exports; - } - } else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getReadyModule(moduleName); - if (!module) return; - if (module.fired) { - css = module.exports; - } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; - } - return _this.css(css, namespace, moduleName); - } - }; - }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); - } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), - name = _a[0], - custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push( - Object.keys(customArgs_1).map(function (c) { - return ''.concat(c, '=').concat(customArgs_1[c]); - }) - ); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToModule = function (module, referer) { - if (!referer) { - return module; - } - // 此处简单判断 - var isEntry = typeof referer !== 'string'; - if (isEntry) { - module.entryDep.push(referer); - } else { - if (!module.upperDep.includes(referer)) { - module.upperDep.push(referer); - } - } - return module; - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getReadyModule = function (name) { - var module = _this._getModule(name); - if (module === null || module === void 0 ? void 0 : module.ready) { - return module; - } - }; - this._getModule = function (name) { - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - while (_this.state.pendingQueue.length) { - var pendingInfo = _this.state.pendingQueue.shift(); - _this._load(pendingInfo[0], pendingInfo[1]); - } - }; - // 测试使用 - // private _unResolvedDep = () => { - // Object.values(this.state.loadingModule).forEach((m) => { - // m.unresolveDep = m.dep.filter((d) => !this._getFiredModule(d)); - // }); - // }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info( - 'unloaded:', - Object.fromEntries( - Object.entries(_this.state.installedModules).filter(function (m) { - return !m[1].loaded; - }) - ) - ); - console.info( - 'unfired:', - Object.fromEntries( - Object.entries(_this.state.installedModules).filter(function (m) { - return !m[1].fired; - }) - ) - ); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); - }; - } - return Cube; - })(); - function getStringOnlyObj() { - return new Proxy( - {}, - { - get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); - }, - set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); - }, - } - ); - } - /** 全局初始化单例 */ - function setGlobalCube(alias) { - if (alias === void 0) { - alias = 'Cube'; - } - var global = window; - if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; - } - var cube = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube).includes(key)) { - return cube[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; - return global[alias]; - } - - setGlobalCube(); -})(); +setGlobalCube(); +})(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 5e7c85a..1a2fd26 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! * Cube v5.0.0-beta.1 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;cg;)e=e.map(c._unResolveDep),f.push(e),g+=1;return f}return e},this.cache=function(){console.info('modules:',Object.fromEntries(Object.entries(c.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].loaded}))),console.info('unfired:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].fired})))},this.debug=function(){console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=function(){console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}return c.prototype._isCursiveCausedUnready=function(a,b){var c=this;if(a===b)return!0;var d=[a],e=!1,f=!1,g=500,h=function(){var a=[];d.some(function(b){var d=c.state.installedModules[b];return d&&d.loaded?void a.push.apply(a,d.dep):(e=!0,!0)}),a.includes(b)&&(f=!0),d=a,g-=1};do h();while(!f&&!e&&0 Date: Mon, 20 Feb 2023 11:33:43 +0800 Subject: [PATCH 41/74] chore: update version --- package.json | 2 +- runtime/cube-reconstruction.min.js | 2 +- runtime/cube.min.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 98bc62d..98acf56 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.2", + "version": "5.0.0-beta.3", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 6f9ecf6..e77730d 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.2 + * Cube v5.0.0-beta.3 */ (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;cg;)e=e.map(c._unResolveDep),f.push(e),g+=1;return f}return e},this.cache=function(){console.info('modules:',Object.fromEntries(Object.entries(c.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].loaded}))),console.info('unfired:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].fired})))},this.debug=function(){console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=function(){console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}return c.prototype._isCursiveCausedUnready=function(a,b){var c=this;if(a===b)return!0;var d=[a],e=!1,f=!1,g=500,h=function(){var a=[];d.some(function(b){var d=c.state.installedModules[b];return d&&d.loaded?void a.push.apply(a,d.dep):(e=!0,!0)}),a.includes(b)&&(f=!0),d=a,g-=1};do h();while(!f&&!e&&0=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.2'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.3'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 5c905935da75cc3ff2668ee224004ba99dcd9890 Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Thu, 2 Mar 2023 15:29:27 +0800 Subject: [PATCH 42/74] support redirect to classial version --- package.json | 2 +- runtime/cube-reconstruction.js | 916 ++++++++++++++++++++++------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 722 insertions(+), 204 deletions(-) diff --git a/package.json b/package.json index 99fa597..59de2c9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.4", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index dd2c0c8..79139de 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -133,6 +133,509 @@ function rebase(name, config) { return remoteBase[rbase] + name.substr(offset + 1); } +// import Cube from 'node-cube/runtime/cube'; + +function mockClassialCube() { + /* short global val */ + var global = window; + var win = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = false; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + var registerArr = []; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + // let isIntercepted = false; + + /** + * The require function + * @param module + * @param namespace + * @returns {*} + * @private + */ + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); + } else { + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; + } + } + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); + } + }; + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; + } + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + debug && console.timeEnd('cube load'); + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + */ + function load(requires, referer) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + return; + } + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + var srcPath = rebase(mod, { base, remoteSeparator, remoteBase }); + + var query = []; + // 这个格式 没有key对吗? + if (version) { + query.push(version); + } + if (combine) { + query.push('combine=true'); + } + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + { + fetchCubeCode(srcPath); + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; + requireMap[mod] = require; + loading[require] = true; + }); + checkAllDownloaded(); + } + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } + } + return false; + } + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = installedModules[module] || getGlobalRegister(module); + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } + } + } + return isEsModule(m.exports) ? m.exports.default : m.exports; + } + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } + debug && console.timeEnd('cube exec'); + } + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } + } + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + if (config.debug !== undefined) { + debug = config.debug; + } + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine) { + combine = config.combine; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (moduleNames, referer, cb, noFix) { + if (!moduleNames) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof moduleNames === 'string') { + moduleNames = [moduleNames]; + } + + if (!noFix) { + moduleNames = fixMododulePath(moduleNames, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(moduleNames)) { + entrances.set(moduleNames, []); + } + entrances.get(moduleNames).push( + (function () { + var apps = []; + var length = moduleNames.length; + var firing = false; + + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + + load(moduleNames, referer); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, + }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + + return this; + }; + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + /* debug */ + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } + } + } + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; + + if (win.localStorage && localStorage.cube === 'debug') { + debug = true; + win.addEventListener('load', Cube.cache); + } + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); + } else { + global['Cube'] = Cube; + } + + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } + } + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + }; + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; + } +} + /** * 默认配置项变量 */ @@ -157,6 +660,12 @@ var DEFAULT_CUBE_CONFIG = { combine: false, /** 声明使用 fetch 请求还是创建 script 请求 */ requestMethod: 'fetch', + // 旧版 fetchUndeclaredModule = false && aggregateFetch = true + // 新版 fetchUndeclaredModule = true && aggregateFetch = false + /** 是否重新请求未声明的文件 */ + fetchUndeclaredModule: false, + /** 是否聚合请求 */ + aggregateFetch: true, }; /** * cube 重构 @@ -168,7 +677,7 @@ var Cube = /** @class */ (function () { this.config = __assign({}, DEFAULT_CUBE_CONFIG); this.state = { /** 是否完成初始化 */ - inited: true, + inited: false, /** 是否被拦截 */ isIntercepted: false, /** 未初始化时添加的等待请求的 module */ @@ -185,7 +694,11 @@ var Cube = /** @class */ (function () { // 兼容请求 key 带入参,返回 key 不带入参的情况。 // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } requireMap: {}, + // 是否处于文件合并执行状态 fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, }; /** * 跳过请求注册模块 @@ -194,17 +707,17 @@ var Cube = /** @class */ (function () { * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 */ this.register = function (moduleName, exports, option) { + var _a; if (option === void 0) { option = { matchType: 'version' }; } var matchType = option.matchType; - if (_this._getReadyModule(moduleName)) { + if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); } _this.state.installedModules[moduleName] = { exports: exports, sourceCode: noop, dep: [], - refer: { upperDep: [], entryDep: [] }, - ready: true, + refer: { entryDep: [] }, loaded: true, firing: false, fired: true, @@ -220,7 +733,10 @@ var Cube = /** @class */ (function () { }; /** 初始化 */ this.init = function (config) { - var _a, _b, _c, _d, _e; + var _a, _b, _c, _d, _e, _f, _g; + if (_this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } if (config.base && config.base !== '/') { _this.config.base = config.base.replace(/\/$/, ''); } @@ -236,11 +752,14 @@ var Cube = /** @class */ (function () { _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; + _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; _this.state.inited = true; - while (_this.state.pendingQueue.length) { - var pendingInfo = _this.state.pendingQueue.shift(); + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; _this._load(pendingInfo[0], pendingInfo[1]); } + _this.state.pendingQueue = []; }; /** * 异步加载模块 @@ -270,10 +789,18 @@ var Cube = /** @class */ (function () { } callback = callback || noop; moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - _this.state.entrances.set(moduleNames, { + var entry = { callback: callback, - loadSources: __spreadArray([], moduleNames, true), - }); + loadSource: {}, + targets: __spreadArray([], moduleNames, true), + }; + if (_this.config.aggregateFetch) ; + else { + moduleNames.forEach(function (i) { + entry.loadSource[i] = false; + }); + } + _this.state.entrances.set(moduleNames, entry); moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); }; /** 执行 cube 源码 即原 Cube(...) */ @@ -309,11 +836,6 @@ var Cube = /** @class */ (function () { */ this._store = function (moduleName, dep, sourceCode) { var _a; - var _b; - // 不重复存储 - if ((_b = _this.state.installedModules[moduleName]) === null || _b === void 0 ? void 0 : _b.loaded) { - return; - } var module = _this.state.installedModules[moduleName]; if (module) { (_a = module.dep).push.apply(_a, dep); @@ -325,30 +847,34 @@ var Cube = /** @class */ (function () { exports: {}, sourceCode: sourceCode, dep: dep, - refer: { upperDep: [], entryDep: [] }, + refer: { entryDep: [] }, loaded: true, - ready: false, firing: false, fired: false, }; } }; /** 请求资源 */ - this._load = function (moduleName, refer) { + this._load = function (moduleName, entryKey) { if (typeof moduleName === 'number') { moduleName = moduleName.toString(); } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, refer]); - return; + if (!_this.config.aggregateFetch) { + var entry = _this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; + } } - var module = _this.state.installedModules[moduleName]; - if (_this._getReadyModule(moduleName)) { - _this._triggerCallback(_this._addReferToModule({ upperDep: [], entryDep: [] }, refer)); + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, entryKey]); return; } + var module = _this._getModule(moduleName); if (module) { - _this._addReferToModule(module.refer, refer); + _this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + _this._triggerCallback(moduleName, module); + } return; } var name = moduleName.split('?')[0]; @@ -359,92 +885,111 @@ var Cube = /** @class */ (function () { dep: [], refer: { entryDep: [], - upperDep: [], }, loaded: false, - ready: false, firing: false, fired: false, }; - _this._addReferToModule(_this.state.installedModules[moduleName].refer, refer); + _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); var srcPath = _this._generatePath(moduleName); _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (refer) { - refer.upperDep.forEach(function (mName) { - var upperModule = _this.state.installedModules[mName]; - if (upperModule) { - _this._initiate(mName); - } - }); - refer.entryDep.forEach(function (entry) { - var upperModule = _this.state.entrances.get(entry); - if (upperModule) { - _this._triggerEntryCallback(entry); - } - }); - }; /** 实例化并执行回调 */ this._initiate = function (moduleName) { - if (!_this.state.installedModules[moduleName] || _this.state.installedModules[moduleName].ready) - return; var module = _this.state.installedModules[moduleName]; - if (module) { - if (!module.loaded) - return; - if (module.dep.length) { - var allLoad_1 = true; - module.dep.forEach(function (name) { - var dep = _this._getModule(name); - if (dep) { - if (dep.fired || dep.firing || dep.ready) + _this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (moduleName, module) { + if (!module.loaded) + return; + if (_this.config.aggregateFetch) { + module.dep.forEach(function (m) { + var _a; + if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._load(m, []); + }); + if (_this.state.aggregateLoading[moduleName]) { + delete _this.state.aggregateLoading[moduleName]; + _this._triggerAllCallback(); + } + return; + } + var refDep = module.refer; + var finishedEntry = []; + refDep.entryDep.forEach(function (entryKey) { + var entry = _this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + var next_1 = true; + if (!module.fired) { + module.dep.forEach(function (m) { + if (entry.loadSource[m]) return; - if (_this._isCursiveCausedUnready(name, moduleName)) + var subModule = _this._getModule(m); + if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) return; + next_1 = false; + _this._load(m, entryKey); + }); + } + if (next_1) { + // 考虑标记 unload 提速 + if (Object.values(entry.loadSource).every(function (i) { return i; })) { + _this._triggerEntryCallback(entryKey, entry); } - allLoad_1 = false; - _this._load(name, moduleName); - }); - if (!allLoad_1) - return; + } + } + else { + finishedEntry.push(entryKey); } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); } - _this.state.installedModules[moduleName].ready = true; - // 由于目前的文件管理机制,此处不能立刻实例化,仅允许顶层触发 - _this._triggerCallback(module.refer); }; /** 执行回调函数 */ - this._triggerEntryCallback = function (entry) { - var entryInfo = _this.state.entrances.get(entry); - if (entryInfo && entryInfo.loadSources.every(_this._getReadyModule)) { - var readyCallback_1 = true; - entryInfo.loadSources.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) - return; - // 理论上不会不存在 - if (module.firing) { - readyCallback_1 = false; - return; - } - if (module.ready) { - _this._fireModule(moduleName); - if (module.fired) - return; - } - readyCallback_1 = false; - }); - if (readyCallback_1) { - entryInfo.callback.apply(entryInfo, entry.map(function (e) { return _this.state.installedModules[e].exports; })); - _this.state.entrances.delete(entry); + this._triggerEntryCallback = function (entryKey, entry) { + var readyCallback = true; + entry.targets.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) + return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; } + _this._fireModule(moduleName); + if (module.fired) + return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); + _this.state.entrances.delete(entryKey); } }; + this._triggerAllCallback = function () { + if (_this.state.delayTrigger) + return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (_this.state.pendingQueue.length) + return; + if (Object.keys(_this.state.aggregateLoading).length) + return; + _this.state.entrances.forEach(function (entry, entryKey) { + _this._triggerEntryCallback(entryKey, entry); + }); + // }); + }; /** 实例化某一模块 */ this._fireModule = function (moduleName) { var module = _this.state.installedModules[moduleName]; - if (!module || !module.ready) + if (!module || !module.loaded) return false; if (module.fired) return true; @@ -468,7 +1013,7 @@ var Cube = /** @class */ (function () { module.error = false; } catch (e) { - if (e.message === "Cube inner denpendency lost; refetch inited") { + if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { console.warn('Cube 检测到文件依赖缺失'); fireResult = false; } @@ -480,18 +1025,21 @@ var Cube = /** @class */ (function () { } finally { module.firing = false; - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - module.ready = false; - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - _this._load(name, moduleName); - console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; + if (_this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach(function (eKey) { + _this._load(name, eKey); + }); + console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } } else { module.fired = true; @@ -508,15 +1056,20 @@ var Cube = /** @class */ (function () { } var fireFinished = _this._fireModule(moduleName); if (!module || !fireFinished) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); + if (_this.config.fetchUndeclaredModule) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } + else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error("Cube inner denpendency lost; refetch inited"); } else { - _this.state.lostDepModule[selfName] = [moduleName]; + throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error("Cube inner denpendency lost; refetch inited"); } else { return module.exports; @@ -525,8 +1078,8 @@ var Cube = /** @class */ (function () { else { // 默认 css 模块不再依赖其它模块 var css = void 0; - var module = _this._getReadyModule(moduleName); - if (!module) + var module = _this._getModule(moduleName); + if (!module || !module.loaded) return; if (module.fired) { css = module.exports; @@ -584,21 +1137,20 @@ var Cube = /** @class */ (function () { return srcPath; }; /** 存储引用关系 */ - this._addReferToModule = function (module, referer) { - if (!referer) { - return module; + this._addReferToDependency = function (moduleName, module, referer) { + if (_this.config.aggregateFetch) { + if (!module.loaded) { + _this.state.aggregateLoading[moduleName] = true; + } + return; } - // 此处简单判断 - var isEntry = typeof referer !== 'string'; - if (isEntry) { - module.entryDep.push(referer); + var refDep = module.refer; + if (!referer) { + return; } - else { - if (!module.upperDep.includes(referer)) { - module.upperDep.push(referer); - } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); } - return module; }; /** 修正返回值 */ this._calibrateName = function (responseName) { @@ -621,12 +1173,6 @@ var Cube = /** @class */ (function () { } } }; - this._getReadyModule = function (name) { - var module = _this._getModule(name); - if (module === null || module === void 0 ? void 0 : module.ready) { - return module; - } - }; this._getModule = function (name) { var module = _this.state.installedModules[name]; if (!module) { @@ -642,33 +1188,32 @@ var Cube = /** @class */ (function () { }; this.cStop = function () { _this.state.fileExecuting = false; - while (_this.state.pendingQueue.length) { - var pendingInfo = _this.state.pendingQueue.shift(); + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; _this._load(pendingInfo[0], pendingInfo[1]); } + _this.state.pendingQueue = []; }; // 测试使用 - this._unResolveDep = function (name, deep) { - var _a; - if (deep === void 0) { deep = false; } - var result = (((_a = _this.state.installedModules[name]) === null || _a === void 0 ? void 0 : _a.dep) || []).filter(function (m) { - var d = _this.state.installedModules[m]; - if (!d || !d.ready) { - return true; - } - }); - if (deep) { - var deepResult = [result]; - var i = 0; - while (i < 5) { - result = result.map(_this._unResolveDep); - deepResult.push(result); - i += 1; - } - return deepResult; - } - return result; - }; + // private _unResolveDep = (name: string, deep = false) => { + // let result: any = (this.state.installedModules[name]?.dep || []).filter((m) => { + // const d = this.state.installedModules[m]; + // if (!d || !d.ready) { + // return true; + // } + // }); + // if (deep) { + // const deepResult = [result]; + // let i = 0; + // while (i < 5) { + // result = result.map(this._unResolveDep); + // deepResult.push(result); + // i += 1; + // } + // return deepResult; + // } + // return result; + // }; /****************************** 以下为原有方法兼容 **************************/ /** 原有方法 直接打印内部状态 */ this.cache = function () { @@ -685,39 +1230,6 @@ var Cube = /** @class */ (function () { console.error('不支持动态修改 remoteBase'); }; } - Cube.prototype._isCursiveCausedUnready = function (depName, targetName) { - var _this = this; - if (depName === targetName) - return true; - var depArr = [depName]; - var breakIter = false; - var detected = false; - var times = 500; // 防止下层依赖环 - var _loop_1 = function () { - var newDep = []; - depArr.some(function (d) { - var depModule = _this.state.installedModules[d]; - if (!depModule || !depModule.loaded) { - breakIter = true; - return true; - } - else { - newDep.push.apply(newDep, depModule.dep); - } - }); - if (newDep.includes(targetName)) { - detected = true; - } - depArr = newDep; - times -= 1; - }; - do { - _loop_1(); - } while (!detected && !breakIter && times > 0 && depArr.length > 0); - if (detected) - return true; - return false; - }; return Cube; }()); function getStringOnlyObj() { @@ -733,29 +1245,35 @@ function getStringOnlyObj() { }); } /** 全局初始化单例 */ -function setGlobalCube(alias) { - if (alias === void 0) { alias = 'Cube'; } +function setGlobalCube(oldVersion) { + console.log('setGlobalCube'); + var alias = 'Cube'; var global = window; if (global[alias]) { console.error('Cube Error: window.' + alias + ' already in using'); return global[alias]; } - var cube = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube).includes(key)) { - return cube[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; + if (oldVersion) { + mockClassialCube(); + } + else { + var cube_1 = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube_1.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube_1).includes(key)) { + return cube_1[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + } return global[alias]; } -setGlobalCube(); +setGlobalCube(true); })(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 1a2fd26..c39803d 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.1 + * Cube v5.0.0-beta.4 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var l=function(){return l=Object.assign||function(a){for(var b,c=1,d=arguments.length;cg;)e=e.map(c._unResolveDep),f.push(e),g+=1;return f}return e},this.cache=function(){console.info('modules:',Object.fromEntries(Object.entries(c.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].loaded}))),console.info('unfired:',Object.fromEntries(Object.entries(c.state.installedModules).filter(function(a){return!a[1].fired})))},this.debug=function(){console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=function(){console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}return c.prototype._isCursiveCausedUnready=function(a,b){var c=this;if(a===b)return!0;var d=[a],e=!1,f=!1,g=500,h=function(){var a=[];d.some(function(b){var d=c.state.installedModules[b];return d&&d.loaded?void a.push.apply(a,d.dep):(e=!0,!0)}),a.includes(b)&&(f=!0),d=a,g-=1};do h();while(!f&&!e&&0=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(K.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;z&&console.timeEnd('cube load'),m()}function f(a,b){return'string'===typeof a&&(a=[a]),J?void(a.forEach(function(a){if(!(H[a]||k(a))){const[d,f]=(a+'').split('?');var b=j(d,{base:u,remoteSeparator:w,remoteBase:v}),c=[];if(p&&c.push(p),A&&c.push('combine=true'),f){const a=i(f);Array.prototype.push.apply(c,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.length&&(b=b+'?'+c.join('&')),e(b),H[a]={exports:{},loaded:!1,fired:!1},F[d]=a,I[a]=!0}}),d()):void K.push([a,b])}function k(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=H[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),B,C])}catch(a){t.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)});z&&console.timeEnd('cube exec')}function n(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e||(e=H[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],f(b,a)):b.length&&f(b,a)}function o(a){return D&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A=!1,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J=!1,K=[];n.setRemoteBase=function(a){Object.assign(v,a)},n.toString=function(){return'Cube:v5.0.0-beta.4'},n.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(z=a.debug),void 0!==a.strict&&(y=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),void 0!==a.esModule&&(D=a.esModule),J=!0;K.length;){var c=K.shift();f(c[0],c[1])}return this},n.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),e||(a=g(a,w)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),f(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return H[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var L={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d])return L[d]=!0,h(a,b,c)}},n.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',H),t.info('unloaded:',c),t.info('unfired:',d)},r.localStorage&&'debug'===localStorage.cube&&(z=!0,r.addEventListener('load',n.cache)),q.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var M=s.currentScript;if(M){var N=M.dataset;N.base&&(n.init(N),n.use(N.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:p,strict:y,debug:z,esModule:D,mockedGlobal:C,mockedProcess:B,charset:x}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.1'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.4'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 954ec19b7169b54376de33ce63153d5dc76e5afa Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Fri, 3 Mar 2023 18:01:47 +0800 Subject: [PATCH 43/74] fix fetch caused error --- package.json | 2 +- runtime/cube-reconstruction.js | 46 ++++++++++++++++++------------ runtime/cube-reconstruction.min.js | 4 +-- runtime/cube.min.js | 4 +-- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 59de2c9..52ca34b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 79139de..a6dfbe1 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -150,7 +150,6 @@ function mockClassialCube() { var version; var strict = true; var debug = true; - var combine = false; var mockedProcess = { env: { NODE_ENV: 'production' }, @@ -254,15 +253,18 @@ function mockClassialCube() { // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key const [mod, custom] = String(require).split('?'); - var srcPath = rebase(mod, { base, remoteSeparator, remoteBase }); + // download form server + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; var query = []; - // 这个格式 没有key对吗? if (version) { query.push(version); } - if (combine) { - query.push('combine=true'); + if (debug) { + query.push('m'); + query.push('ref=' + referer); } if (custom) { @@ -278,10 +280,10 @@ function mockClassialCube() { if (query.length) { srcPath = srcPath + '?' + query.join('&'); } + { - fetchCubeCode(srcPath); + scriptCubeCode(srcPath); } - installedModules[require] = { exports: {}, loaded: false, @@ -446,7 +448,7 @@ function mockClassialCube() { mockedGlobal = config.global; } if (config.combine) { - combine = config.combine; + config.combine; } // support ES6 module, default is true if (config.esModule !== undefined) { @@ -469,8 +471,8 @@ function mockClassialCube() { * @param {Function} cb callback function, usually with module.exports as it's first param * @param {Boolean} noFix used only in single mode */ - Cube.use = function (moduleNames, referer, cb, noFix) { - if (!moduleNames) { + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { throw new Error('Cube.use(moduleName) moduleName is undefined!'); } if (typeof referer === 'function') { @@ -483,22 +485,22 @@ function mockClassialCube() { } cb = cb || noop; - if (typeof moduleNames === 'string') { - moduleNames = [moduleNames]; + if (typeof mods === 'string') { + mods = [mods]; } if (!noFix) { - moduleNames = fixMododulePath(moduleNames, remoteSeparator); + mods = fixMododulePath(mods, remoteSeparator); } // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(moduleNames)) { - entrances.set(moduleNames, []); + if (!entrances.has(mods)) { + entrances.set(mods, []); } - entrances.get(moduleNames).push( + entrances.get(mods).push( (function () { var apps = []; - var length = moduleNames.length; + var length = mods.length; var firing = false; return function (exports) { @@ -514,8 +516,7 @@ function mockClassialCube() { }; })() ); - - load(moduleNames, referer); + load(mods, referer); return this; }; /** @@ -547,6 +548,13 @@ function mockClassialCube() { return this; }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ var cssMod = {}; Cube.css = function (css, namespace, file) { if (!css) { diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index c39803d..d7fbaad 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.4 + * Cube v5.0.0-beta.5 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(K.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;z&&console.timeEnd('cube load'),m()}function f(a,b){return'string'===typeof a&&(a=[a]),J?void(a.forEach(function(a){if(!(H[a]||k(a))){const[d,f]=(a+'').split('?');var b=j(d,{base:u,remoteSeparator:w,remoteBase:v}),c=[];if(p&&c.push(p),A&&c.push('combine=true'),f){const a=i(f);Array.prototype.push.apply(c,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.length&&(b=b+'?'+c.join('&')),e(b),H[a]={exports:{},loaded:!1,fired:!1},F[d]=a,I[a]=!0}}),d()):void K.push([a,b])}function k(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=H[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),B,C])}catch(a){t.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)});z&&console.timeEnd('cube exec')}function n(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e||(e=H[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],f(b,a)):b.length&&f(b,a)}function o(a){return D&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A=!1,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J=!1,K=[];n.setRemoteBase=function(a){Object.assign(v,a)},n.toString=function(){return'Cube:v5.0.0-beta.4'},n.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(z=a.debug),void 0!==a.strict&&(y=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),void 0!==a.esModule&&(D=a.esModule),J=!0;K.length;){var c=K.shift();f(c[0],c[1])}return this},n.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),e||(a=g(a,w)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),f(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return H[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var L={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d])return L[d]=!0,h(a,b,c)}},n.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',H),t.info('unloaded:',c),t.info('unfired:',d)},r.localStorage&&'debug'===localStorage.cube&&(z=!0,r.addEventListener('load',n.cache)),q.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var M=s.currentScript;if(M){var N=M.dataset;N.base&&(n.init(N),n.use(N.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:p,strict:y,debug:z,esModule:D,mockedGlobal:C,mockedProcess:B,charset:x}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(J.length)return!1;for(var a in H)if(H.hasOwnProperty(a))return!1;z&&console.timeEnd('cube load'),m()}function e(a,b){return'string'===typeof a&&(a=[a]),I?void(a.forEach(function(a){if(!(G[a]||k(a))){const[g,h]=(a+'').split('?');var c=j(g,{base:u,remoteSeparator:w,remoteBase:v}),d=c||u+g,e=[];if(p&&e.push(p),z&&(e.push('m'),e.push('ref='+b)),h){const a=i(h);Array.prototype.push.apply(e,Object.keys(a).map((b)=>`${b}=${a[b]}`))}e.length&&(d=d+'?'+e.join('&')),f(d),G[a]={exports:{},loaded:!1,fired:!1},E[g]=a,H[a]=!0}}),d()):void J.push([a,b])}function k(a){for(const b of F)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=G[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),A,B]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),A,B])}catch(a){t.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of D)a.length&&a.forEach(function(c){if(H[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&D.delete(a)});z&&console.timeEnd('cube exec')}function n(a,b,c){const d=a+'';a=E[a]||a;var f=G[a];f||(f=G[a]={exports:{},fired:!1}),f.loaded=!0,f.fn=c,E[d]&&delete E[d],H[a]?(delete H[a],e(b,a)):b.length&&e(b,a)}function o(a){return C&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A={env:{NODE_ENV:'production'}},B=void 0,C=!1,D=new Map,E={},F=[],G={},H={},I=!1,J=[];n.setRemoteBase=function(a){Object.assign(v,a)},n.toString=function(){return'Cube:v5.0.0-beta.5'},n.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(z=a.debug),void 0!==a.strict&&(y=a.strict),a.env&&(A.env.NODE_ENV=a.env),a.global&&(B=a.global),a.combine&&a.combine,void 0!==a.esModule&&(C=a.esModule),I=!0;J.length;){var c=J.shift();e(c[0],c[1])}return this},n.use=function(a,c,d,f){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(f=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),f||(a=g(a,w)),D.has(a)||D.set(a,[]),D.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),e(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return G[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(G[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&F.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:G[a]}),this)};var K={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!K[d])return K[d]=!0,h(a,b,c)}},n.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in G)G.hasOwnProperty(a)&&(b=G[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',G),t.info('unloaded:',c),t.info('unfired:',d)},r.localStorage&&'debug'===localStorage.cube&&(z=!0,r.addEventListener('load',n.cache)),q.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var L=s.currentScript;if(L){var M=L.dataset;M.base&&(n.init(M),n.use(M.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:p,strict:y,debug:z,esModule:C,mockedGlobal:B,mockedProcess:A,charset:x}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.4'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.5'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 356ec0f5db4b392619960e546d2e4b0a64e0b92c Mon Sep 17 00:00:00 2001 From: "luojiaxing.ljx" Date: Mon, 6 Mar 2023 11:30:20 +0800 Subject: [PATCH 44/74] fix combine --- runtime/cube-reconstruction.js | 23 ++++++----------------- runtime/cube-reconstruction.min.js | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index a6dfbe1..dd0ab4f 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -138,7 +138,6 @@ function rebase(name, config) { function mockClassialCube() { /* short global val */ var global = window; - var win = window; var doc = document; var log = console; @@ -150,6 +149,7 @@ function mockClassialCube() { var version; var strict = true; var debug = true; + var combine = false; var mockedProcess = { env: { NODE_ENV: 'production' }, @@ -228,7 +228,6 @@ function mockClassialCube() { return false; } } - debug && console.timeEnd('cube load'); startAppAndCallback(); } @@ -253,7 +252,6 @@ function mockClassialCube() { // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key const [mod, custom] = String(require).split('?'); - // download form server var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); var srcPath = rebaseName || base + mod; @@ -262,9 +260,9 @@ function mockClassialCube() { if (version) { query.push(version); } - if (debug) { - query.push('m'); - query.push('ref=' + referer); + + if (combine) { + query.push('combine=true'); } if (custom) { @@ -376,7 +374,6 @@ function mockClassialCube() { } }); } - debug && console.timeEnd('cube exec'); } /** @@ -435,9 +432,7 @@ function mockClassialCube() { if (config.version) { version = config.version; } - if (config.debug !== undefined) { - debug = config.debug; - } + if (config.strict !== undefined) { strict = config.strict; } @@ -448,7 +443,7 @@ function mockClassialCube() { mockedGlobal = config.global; } if (config.combine) { - config.combine; + combine = config.combine; } // support ES6 module, default is true if (config.esModule !== undefined) { @@ -568,7 +563,6 @@ function mockClassialCube() { return scriptCubeCss(css, namespace, file); }; - /* debug */ Cube.debug = function () { log.error('Cube Error: Cube.debug nolonger supported'); }; @@ -596,11 +590,6 @@ function mockClassialCube() { log.info('unfired:', unfired); }; - if (win.localStorage && localStorage.cube === 'debug') { - debug = true; - win.addEventListener('load', Cube.cache); - } - if (global['Cube']) { log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); } else { diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index d7fbaad..37dfbb5 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! * Cube v5.0.0-beta.5 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(J.length)return!1;for(var a in H)if(H.hasOwnProperty(a))return!1;z&&console.timeEnd('cube load'),m()}function e(a,b){return'string'===typeof a&&(a=[a]),I?void(a.forEach(function(a){if(!(G[a]||k(a))){const[g,h]=(a+'').split('?');var c=j(g,{base:u,remoteSeparator:w,remoteBase:v}),d=c||u+g,e=[];if(p&&e.push(p),z&&(e.push('m'),e.push('ref='+b)),h){const a=i(h);Array.prototype.push.apply(e,Object.keys(a).map((b)=>`${b}=${a[b]}`))}e.length&&(d=d+'?'+e.join('&')),f(d),G[a]={exports:{},loaded:!1,fired:!1},E[g]=a,H[a]=!0}}),d()):void J.push([a,b])}function k(a){for(const b of F)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=G[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),A,B]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),A,B])}catch(a){t.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of D)a.length&&a.forEach(function(c){if(H[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&D.delete(a)});z&&console.timeEnd('cube exec')}function n(a,b,c){const d=a+'';a=E[a]||a;var f=G[a];f||(f=G[a]={exports:{},fired:!1}),f.loaded=!0,f.fn=c,E[d]&&delete E[d],H[a]?(delete H[a],e(b,a)):b.length&&e(b,a)}function o(a){return C&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A={env:{NODE_ENV:'production'}},B=void 0,C=!1,D=new Map,E={},F=[],G={},H={},I=!1,J=[];n.setRemoteBase=function(a){Object.assign(v,a)},n.toString=function(){return'Cube:v5.0.0-beta.5'},n.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(z=a.debug),void 0!==a.strict&&(y=a.strict),a.env&&(A.env.NODE_ENV=a.env),a.global&&(B=a.global),a.combine&&a.combine,void 0!==a.esModule&&(C=a.esModule),I=!0;J.length;){var c=J.shift();e(c[0],c[1])}return this},n.use=function(a,c,d,f){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(f=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),f||(a=g(a,w)),D.has(a)||D.set(a,[]),D.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),e(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return G[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(G[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&F.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:G[a]}),this)};var K={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!K[d])return K[d]=!0,h(a,b,c)}},n.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in G)G.hasOwnProperty(a)&&(b=G[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',G),t.info('unloaded:',c),t.info('unfired:',d)},r.localStorage&&'debug'===localStorage.cube&&(z=!0,r.addEventListener('load',n.cache)),q.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var L=s.currentScript;if(L){var M=L.dataset;M.base&&(n.init(M),n.use(M.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:p,strict:y,debug:z,esModule:C,mockedGlobal:B,mockedProcess:A,charset:x}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(I.length)return!1;for(var a in G)if(G.hasOwnProperty(a))return!1;m()}function e(a,b){return'string'===typeof a&&(a=[a]),H?void(a.forEach(function(a){if(!(F[a]||k(a))){const[e,g]=(a+'').split('?');var b=j(e,{base:t,remoteSeparator:v,remoteBase:u}),c=b||t+e,d=[];if(p&&d.push(p),y&&d.push('combine=true'),g){const a=i(g);Array.prototype.push.apply(d,Object.keys(a).map((b)=>`${b}=${a[b]}`))}d.length&&(c=c+'?'+d.join('&')),f(c),F[a]={exports:{},loaded:!1,fired:!1},D[e]=a,G[a]=!0}}),d()):void I.push([a,b])}function k(a){for(const b of E)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=F[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!d.fired)if(d.fired=!0,x)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),z,A]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),z,A])}catch(a){s.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of C)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&C.delete(a)})}function n(a,b,c){const d=a+'';a=D[a]||a;var f=F[a];f||(f=F[a]={exports:{},fired:!1}),f.loaded=!0,f.fn=c,D[d]&&delete D[d],G[a]?(delete G[a],e(b,a)):b.length&&e(b,a)}function o(a){return B&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!1,z={env:{NODE_ENV:'production'}},A=void 0,B=!1,C=new Map,D={},E=[],F={},G={},H=!1,I=[];n.setRemoteBase=function(a){Object.assign(u,a)},n.toString=function(){return'Cube:v5.0.0-beta.5'},n.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.strict&&(x=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),a.combine&&(y=a.combine),void 0!==a.esModule&&(B=a.esModule),H=!0;I.length;){var c=I.shift();e(c[0],c[1])}return this},n.use=function(a,c,d,f){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(f=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),f||(a=g(a,v)),C.has(a)||C.set(a,[]),C.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),e(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&E.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var J={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!J[d])return J[d]=!0,h(a,b,c)}},n.debug=function(){s.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.Cube?s.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var K=r.currentScript;if(K){var L=K.dataset;L.base&&(n.init(L),n.use(L.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:t,remoteBase:u,remoteSeparator:v,version:p,strict:x,debug:!0,esModule:B,mockedGlobal:A,mockedProcess:z,charset:w}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Fri, 7 Apr 2023 11:11:41 +0800 Subject: [PATCH 45/74] feat: support combine degradation --- package.json | 2 +- runtime/cube-reconstruction.js | 2368 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 1203 insertions(+), 1175 deletions(-) diff --git a/package.json b/package.json index 52ca34b..3da491f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.5", + "version": "5.0.0-beta.7", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index dd0ab4f..2b0d14f 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,647 +1,669 @@ -// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 -(function () { -/****************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */ - -var __assign = function() { - __assign = Object.assign || function __assign(t) { +// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 +(function () { + var __assign = function () { + __assign = + Object.assign || + function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; - }; + }; return __assign.apply(this, arguments); -}; + }; -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; } - } + } return to.concat(ar || Array.prototype.slice.call(from)); -} - -// 支持 cube 的一些工具方法 -function noop() { } -function baseCodeProxy(c) { + } + + // 支持 cube 的一些工具方法 + function noop() {} + function baseCodeProxy(c) { return c; -} -function combineExecute(c) { + } + function combineExecute(c) { return 'Cube.cStart();' + c + ';Cube.cStop();'; -} -function fetchCubeCode(url, inputCodeProxy) { + } + function fetchCubeCode(url, inputCodeProxy) { var codeProxy = inputCodeProxy || baseCodeProxy; return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, + headers: { + 'Content-Type': 'text/plain', + }, }) - .then(function (response) { return response.text(); }) - .then(function (code) { return new Function(codeProxy(code))(); }); -} -var head = document.querySelector('head'); -/** 原有 cube 请求方法 */ -function scriptCubeCode(url) { + .then(function (response) { + return response.text(); + }) + .then(function (code) { + return new Function(codeProxy(code))(); + }); + } + var head = document.querySelector('head'); + /** 原有 cube 请求方法 */ + function scriptCubeCode(url) { var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.onerror = function () { - console.error("load module failed."); + console.error('load module failed.'); }; script.src = url; head.appendChild(script); -} -function fixMododulePath(paths, remoteSeparator) { + } + function fixMododulePath(paths, remoteSeparator) { var len = paths.length; var mod; for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } - else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; } + } } return paths; -} -var parseCssRe = /([^};]+)(\{[^}]+\})/g; -/** 原有 css 请求方法 */ -function scriptCubeCss(originCss, namespace, file) { + } + var parseCssRe = /([^};]+)(\{[^}]+\})/g; + /** 原有 css 请求方法 */ + function scriptCubeCss(originCss, namespace, file) { var css = originCss; if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); }); + return selectors.join(',') + m2; + }); } var style = document.createElement('style'); style.setAttribute('type', 'text/css'); if (file) { - style.setAttribute('mod', file); + style.setAttribute('mod', file); } if (namespace) { - style.setAttribute('ns', namespace); + style.setAttribute('ns', namespace); } head.appendChild(style); style.innerHTML = css; return css; -} -function parseQueryString(param) { + } + function parseQueryString(param) { var kvs = param.split('&'); var obj = {}; kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; }); return obj; -} -/** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ -function rebase(name, config) { - var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; + } + /** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ + function rebase(name, config) { + var base = config.base, + remoteSeparator = config.remoteSeparator, + remoteBase = config.remoteBase; var defaultPath = base + name; var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) - return defaultPath; + if (offset <= 0) return defaultPath; var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) - return defaultPath; + if (!remoteBase[rbase]) return defaultPath; return remoteBase[rbase] + name.substr(offset + 1); -} - -// import Cube from 'node-cube/runtime/cube'; - -function mockClassialCube() { - /* short global val */ - var global = window; - var doc = document; - var log = console; - - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = false; - - var mockedProcess = { - env: { NODE_ENV: 'production' }, - }; - var mockedGlobal = undefined; - var esModule = false; - - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - var registerArr = []; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - // let isIntercepted = false; - - /** - * The require function - * @param module - * @param namespace - * @returns {*} - * @private - */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); - } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; - } - } - - /** - * This function creates the load function - */ - function __cube_load_creator__(referer) { - /** - * The load function - * @param module - * @param namespace - * @param cb - * @private - */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); - } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); - } - }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; - - function checkAllDownloaded() { - if (loadQueue.length) { - return false; - } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { - return false; - } - } - startAppAndCallback(); - } - - /** - * 下载模块 - * @param requires - * @param referer - */ - function load(requires, referer) { - if (typeof requires === 'string') { - requires = [requires]; - } - if (!inited) { - loadQueue.push([requires, referer]); - return; - } - - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - return; - } - - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; - - var query = []; - if (version) { - query.push(version); - } - - if (combine) { - query.push('combine=true'); - } - - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } - - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - - { - scriptCubeCode(srcPath); - } - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, - }; - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - for (const register of registerArr) { - if (require && register.match.test(require)) { - return register.module; - } - } - return false; - } - - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = installedModules[module] || getGlobalRegister(module); - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; - } - } - if (!m.fired) { - m.fired = true; - if (strict) { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } else { - try { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } catch (e) { - log.error(e); - m.exports = {}; - } - } - } - return isEsModule(m.exports) ? m.exports.default : m.exports; - } - - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); - } - } - - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; - } - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); - } - } - - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; - - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } - - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine) { - combine = config.combine; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } - - inited = true; - - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } - - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; - - if (typeof mods === 'string') { - mods = [mods]; - } - - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } - - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); - } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; - - return function (exports) { - if (firing) { - return; - } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; - } - }; - })() - ); - load(mods, referer); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, - }; - - if (matchType === 'module') { - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - }); - } - - return this; - }; - /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code - */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; - } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; - - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; - - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; - } - if (!m.fired) { - unfired[i] = m; - } - } - } - - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); - }; - - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; - } - - /** - * intergration with - */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); - }); - } - } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - }; - }, - }); - - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; - } -} - -/** - * 默认配置项变量 - */ -var DEFAULT_CUBE_CONFIG = { + } + + // import Cube from 'node-cube/runtime/cube'; + + function mockClassialCube() { + /* short global val */ + var global = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + var registerArr = []; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + + /** + * The require function + * @param module + * @param namespace + * @returns {*} + * @private + */ + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); + } else { + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; + } + } + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); + } + }; + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; + } + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if (!installedModules[require].loaded && installedModules[require].combine); + else { + return; + } + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; + + var query = []; + if (version) { + query.push(version); + } + // 目前仅根节点(组件级别)发起 combine + if (combine && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = setTimeout(() => { + if (loading[require]) { + load(require, referer); + // 标记超时了 + combineMap[require] = true; + } + }, 3000); + } + } + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + + if (requestMethod === 'fetch') { + fetchCubeCode(srcPath); + } else { + scriptCubeCode(srcPath); + } + + requireMap[mod] = require; + loading[require] = true; + }); + checkAllDownloaded(); + } + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } + } + return false; + } + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } + } + } + return isEsModule(m.exports) ? m.exports.default : m.exports; + } + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } + } + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + if (combineMap[name] && combineMap[name] !== true) { + clearTimeout(combineMap[name]); + delete combineMap[name]; + } + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } + } + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine) { + combine = config.combine; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof mods === 'string') { + mods = [mods]; + } + + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; + + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + load(mods, referer, true); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, + }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + + return this; + }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } + } + } + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); + } else { + global['Cube'] = Cube; + } + + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } + } + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, + }; + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; + } + } + + /** + * 默认配置项变量 + */ + var DEFAULT_CUBE_CONFIG = { base: '', remoteBase: {}, remoteSeparator: ':', mockedProcess: { - env: { NODE_ENV: 'production' }, + env: { NODE_ENV: 'production' }, }, mockedGlobal: undefined, /** 这个字段应该已经废弃了 */ @@ -663,614 +685,620 @@ var DEFAULT_CUBE_CONFIG = { fetchUndeclaredModule: false, /** 是否聚合请求 */ aggregateFetch: true, -}; -/** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ -var Cube = /** @class */ (function () { + }; + /** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ + var Cube = /** @class */ (function () { function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: false, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - // 是否处于文件合并执行状态 - fileExecuting: false, - // 聚合请求 - aggregateLoading: {}, - delayTrigger: undefined, - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - var _a; - if (option === void 0) { option = { matchType: 'version' }; } - var matchType = option.matchType; - if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: true, - }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e, _f, _g; - if (_this.state.inited) { - console.warn('Cube 重复初始化,可能产生资源请求错误'); - } - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; - _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; - _this.state.inited = true; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } - else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - var entry = { - callback: callback, - loadSource: {}, - targets: __spreadArray([], moduleNames, true), - }; - if (_this.config.aggregateFetch) ; - else { - moduleNames.forEach(function (i) { - entry.loadSource[i] = false; - }); - } - _this.state.entrances.set(moduleNames, entry); - moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: false, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + // 是否处于文件合并执行状态 + fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, + // TODO 新版支持 combine 兜底(combineMap) + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + var _a; + if (option === void 0) { + option = { matchType: 'version' }; + } + var matchType = option.matchType; + if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + _this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: true, }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), + module: _this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d, _e, _f, _g; + if (_this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); + } + } + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = + (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.config.fetchUndeclaredModule = + (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; + _this.config.aggregateFetch = + (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; + _this.state.inited = true; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = + typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + var entry = { + callback: callback, + loadSource: {}, + targets: __spreadArray([], moduleNames, true), }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); + if (_this.config.aggregateFetch); + else { + moduleNames.forEach(function (i) { + entry.loadSource[i] = false; + }); + } + _this.state.entrances.set(moduleNames, entry); + moduleNames.forEach(function (mName) { + return _this._load(mName, moduleNames); + }); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { + var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; + } else { + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = function (moduleName, entryKey) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.config.aggregateFetch) { + var entry = _this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; + } + } + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, entryKey]); + return; + } + var module = _this._getModule(moduleName); + if (module) { + _this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + _this._triggerCallback(moduleName, module); + } + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + }, + loaded: false, + firing: false, + fired: false, }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { + _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + _this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (moduleName, module) { + if (!module.loaded) return; + if (_this.config.aggregateFetch) { + module.dep.forEach(function (m) { var _a; - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; + if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { + return; } - else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: false, - }; + _this._load(m, []); + }); + if (_this.state.aggregateLoading[moduleName]) { + delete _this.state.aggregateLoading[moduleName]; + _this._triggerAllCallback(); + } + return; + } + var refDep = module.refer; + var finishedEntry = []; + refDep.entryDep.forEach(function (entryKey) { + var entry = _this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + var next_1 = true; + if (!module.fired) { + module.dep.forEach(function (m) { + if (entry.loadSource[m]) return; + var subModule = _this._getModule(m); + if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) return; + next_1 = false; + _this._load(m, entryKey); + }); } - }; - /** 请求资源 */ - this._load = function (moduleName, entryKey) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); + if (next_1) { + // 考虑标记 unload 提速 + if ( + Object.values(entry.loadSource).every(function (i) { + return i; + }) + ) { + _this._triggerEntryCallback(entryKey, entry); + } } - if (!_this.config.aggregateFetch) { - var entry = _this.state.entrances.get(entryKey); - if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { - entry.loadSource[moduleName] = false; + } else { + finishedEntry.push(entryKey); + } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter(function (i) { + return !finishedEntry.includes(i); + }); + } + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entryKey, entry) { + var readyCallback = true; + entry.targets.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; + } + _this._fireModule(moduleName); + if (module.fired) return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback.apply( + entry, + entry.targets.map(function (e) { + return _this.state.installedModules[e].exports; + }) + ); + _this.state.entrances.delete(entryKey); + } + }; + this._triggerAllCallback = function () { + if (_this.state.delayTrigger) return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (_this.state.pendingQueue.length) return; + if (Object.keys(_this.state.aggregateLoading).length) return; + _this.state.entrances.forEach(function (entry, entryKey) { + _this._triggerEntryCallback(entryKey, entry); + }); + // }); + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.loaded) return false; + if (module.fired) return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + var fireResult = true; + try { + module.firing = true; + var exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } catch (e) { + if (_this.config.fetchUndeclaredModule && e.message === 'Cube inner denpendency lost; refetch inited') { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } finally { + module.firing = false; + if (_this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach(function (eKey) { + _this._load(name, eKey); + }); + console.warn( + 'Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name) + ); } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, entryKey]); - return; - } + } else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { + return function (moduleName, namespace) { + if (namespace === undefined) { var module = _this._getModule(moduleName); - if (module) { - _this._addReferToDependency(moduleName, module, entryKey); - if (module.loaded) { - _this._triggerCallback(moduleName, module); - } - return; + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - }, - loaded: false, - firing: false, - fired: false, - }; - _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - _this._triggerCallback(moduleName, module); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (moduleName, module) { - if (!module.loaded) - return; - if (_this.config.aggregateFetch) { - module.dep.forEach(function (m) { - var _a; - if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._load(m, []); - }); - if (_this.state.aggregateLoading[moduleName]) { - delete _this.state.aggregateLoading[moduleName]; - _this._triggerAllCallback(); + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { + if (_this.config.fetchUndeclaredModule) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } else { + _this.state.lostDepModule[selfName] = [moduleName]; } - return; + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error('Cube inner denpendency lost; refetch inited'); + } else { + throw new Error('Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 '.concat(moduleName, ' \u5931\u8D25')); + } + } else { + return module.exports; } - var refDep = module.refer; - var finishedEntry = []; - refDep.entryDep.forEach(function (entryKey) { - var entry = _this.state.entrances.get(entryKey); - if (entry) { - entry.loadSource[moduleName] = true; - var next_1 = true; - if (!module.fired) { - module.dep.forEach(function (m) { - if (entry.loadSource[m]) - return; - var subModule = _this._getModule(m); - if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) - return; - next_1 = false; - _this._load(m, entryKey); - }); - } - if (next_1) { - // 考虑标记 unload 提速 - if (Object.values(entry.loadSource).every(function (i) { return i; })) { - _this._triggerEntryCallback(entryKey, entry); - } - } - } - else { - finishedEntry.push(entryKey); - } - }); - if (finishedEntry.length) { - module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); + } else { + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getModule(moduleName); + if (!module || !module.loaded) return; + if (module.fired) { + css = module.exports; } - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entryKey, entry) { - var readyCallback = true; - entry.targets.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) - return; - // 理论上不会不存在 - if (module.firing) { - readyCallback = false; - return; - } - _this._fireModule(moduleName); - if (module.fired) - return; - readyCallback = false; - }); - if (readyCallback) { - entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); - _this.state.entrances.delete(entryKey); + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; } + return _this.css(css, namespace, moduleName); + } }; - this._triggerAllCallback = function () { - if (_this.state.delayTrigger) - return; - // this.state.delayTrigger = setTimeout(() => { - // this.state.delayTrigger = undefined; - if (_this.state.pendingQueue.length) - return; - if (Object.keys(_this.state.aggregateLoading).length) - return; - _this.state.entrances.forEach(function (entry, entryKey) { - _this._triggerEntryCallback(entryKey, entry); + }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); }); - // }); - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.loaded) - return false; - if (module.fired) - return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } - catch (e) { - if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } - else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } - finally { - module.firing = false; - if (_this.config.fetchUndeclaredModule) { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - module.refer.entryDep.forEach(function (eKey) { - _this._load(name, eKey); - }); - console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; - } - } - else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { return function (moduleName, namespace) { - if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; - } - var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { - if (_this.config.fetchUndeclaredModule) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } - else { - _this.state.lostDepModule[selfName] = [moduleName]; - } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error("Cube inner denpendency lost; refetch inited"); - } - else { - throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); - } - } - else { - return module.exports; - } - } - else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getModule(moduleName); - if (!module || !module.loaded) - return; - if (module.fired) { - css = module.exports; - } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; - } - return _this.css(css, namespace, moduleName); - } - }; }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } - else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); - } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push(Object.keys(customArgs_1).map(function (c) { - return "".concat(c, "=").concat(customArgs_1[c]); - })); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToDependency = function (moduleName, module, referer) { - if (_this.config.aggregateFetch) { - if (!module.loaded) { - _this.state.aggregateLoading[moduleName] = true; - } - return; - } - var refDep = module.refer; - if (!referer) { - return; - } - if (!refDep.entryDep.includes(referer)) { - refDep.entryDep.push(referer); - } - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getModule = function (name) { - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - // 测试使用 - // private _unResolveDep = (name: string, deep = false) => { - // let result: any = (this.state.installedModules[name]?.dep || []).filter((m) => { - // const d = this.state.installedModules[m]; - // if (!d || !d.ready) { - // return true; - // } - // }); - // if (deep) { - // const deepResult = [result]; - // let i = 0; - // while (i < 5) { - // result = result.map(this._unResolveDep); - // deepResult.push(result); - // i += 1; - // } - // return deepResult; - // } - // return result; - // }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); - console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); + } }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), + name = _a[0], + custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + if (_this.config.version) { + query.push(_this.config.version); + } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_1 = parseQueryString(custom); + query.push( + Object.keys(customArgs_1).map(function (c) { + return ''.concat(c, '=').concat(customArgs_1[c]); + }) + ); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToDependency = function (moduleName, module, referer) { + if (_this.config.aggregateFetch) { + if (!module.loaded) { + _this.state.aggregateLoading[moduleName] = true; + } + return; + } + var refDep = module.refer; + if (!referer) { + return; + } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); + } + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getModule = function (name) { + // TODO 此处有问题 理论上优先选取 globalRegister + // 但考虑到正则匹配的耗时 每次匹配耗时过长 + // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); + console.info( + 'unloaded:', + Object.fromEntries( + Object.entries(_this.state.installedModules).filter(function (m) { + return !m[1].loaded; + }) + ) + ); + console.info( + 'unfired:', + Object.fromEntries( + Object.entries(_this.state.installedModules).filter(function (m) { + return !m[1].fired; + }) + ) + ); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); + }; } return Cube; -}()); -function getStringOnlyObj() { - return new Proxy({}, { + })(); + function getStringOnlyObj() { + return new Proxy( + {}, + { get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); }, set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); }, - }); -} -/** 全局初始化单例 */ -function setGlobalCube(oldVersion) { - console.log('setGlobalCube'); + } + ); + } + /** 全局初始化单例 */ + function setGlobalCube(oldVersion) { var alias = 'Cube'; var global = window; if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; } if (oldVersion) { - mockClassialCube(); - } - else { - var cube_1 = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube_1.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube_1).includes(key)) { - return cube_1[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; + mockClassialCube(); + } else { + var cube_1 = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube_1.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube_1).includes(key)) { + return cube_1[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; } + var cubeVersion = '5.0.0-beta.7'; + global[alias].cubeVersion = cubeVersion; + global[alias].oldVersion = oldVersion; return global[alias]; -} - -setGlobalCube(true); -})(); \ No newline at end of file + } + + setGlobalCube(true); +})(); diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 37dfbb5..1ea6674 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.5 + * Cube v5.0.0-beta.7 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return l(a);var c=l(a);return n.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,n.use(b,a,d)):n.use(b,a,function(a){a=n.css(a,c,b),d&&d(a)})}}function d(){if(I.length)return!1;for(var a in G)if(G.hasOwnProperty(a))return!1;m()}function e(a,b){return'string'===typeof a&&(a=[a]),H?void(a.forEach(function(a){if(!(F[a]||k(a))){const[e,g]=(a+'').split('?');var b=j(e,{base:t,remoteSeparator:v,remoteBase:u}),c=b||t+e,d=[];if(p&&d.push(p),y&&d.push('combine=true'),g){const a=i(g);Array.prototype.push.apply(d,Object.keys(a).map((b)=>`${b}=${a[b]}`))}d.length&&(c=c+'?'+d.join('&')),f(c),F[a]={exports:{},loaded:!1,fired:!1},D[e]=a,G[a]=!0}}),d()):void I.push([a,b])}function k(a){for(const b of E)if(a&&b.match.test(a))return b.module;return!1}function l(b){var d=F[b]||k(b);if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!d.fired)if(d.fired=!0,x)d.exports=d.fn.apply(q,[d,d.exports,a,c(b),z,A]);else try{d.exports=d.fn.apply(q,[d,d.exports,a,c(b),z,A])}catch(a){s.error(a),d.exports={}}return o(d.exports)?d.exports.default:d.exports}function m(){for(let[a,b]of C)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=l(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&C.delete(a)})}function n(a,b,c){const d=a+'';a=D[a]||a;var f=F[a];f||(f=F[a]={exports:{},fired:!1}),f.loaded=!0,f.fn=c,D[d]&&delete D[d],G[a]?(delete G[a],e(b,a)):b.length&&e(b,a)}function o(a){return B&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!1,z={env:{NODE_ENV:'production'}},A=void 0,B=!1,C=new Map,D={},E=[],F={},G={},H=!1,I=[];n.setRemoteBase=function(a){Object.assign(u,a)},n.toString=function(){return'Cube:v5.0.0-beta.5'},n.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.strict&&(x=a.strict),a.env&&(z.env.NODE_ENV=a.env),a.global&&(A=a.global),a.combine&&(y=a.combine),void 0!==a.esModule&&(B=a.esModule),H=!0;I.length;){var c=I.shift();e(c[0],c[1])}return this},n.use=function(a,c,d,f){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(f=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),f||(a=g(a,v)),C.has(a)||C.set(a,[]),C.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(q,b),!0):void 0}}()),e(a,c),this},n.register=function(a,c,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&E.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var J={};n.css=function(a,b,c){if(a){var d=c+'@'+b;if(!J[d])return J[d]=!0,h(a,b,c)}},n.debug=function(){s.error('Cube Error: Cube.debug nolonger supported')},n.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.Cube?s.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):q.Cube=n;var K=r.currentScript;if(K){var L=K.dataset;L.base&&(n.init(L),n.use(L.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(n,'config',{get(){return{base:t,remoteBase:u,remoteSeparator:v,version:p,strict:x,debug:!0,esModule:B,mockedGlobal:A,mockedProcess:z,charset:w}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return o.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,o.use(b,a,d)):o.use(b,a,function(a){a=o.css(a,c,b),d&&d(a)})}}function d(){if(K.length)return!1;for(var a in H)if(H.hasOwnProperty(a))return!1;n()}function k(a,b,c){return'string'===typeof a&&(a=[a]),J?void(a.forEach(function(a){if(G[a]||l(a))if(!G[a].loaded&&G[a].combine);else return;G[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:u,remoteSeparator:w,remoteBase:v}),m=h||u+d,n=[];if(q&&n.push(q),z&&c&&(n.push('combine=true'),G[a].combine=!0,!I[a]&&(I[a]=setTimeout(()=>{H[a]&&(k(a,b),I[a]=!0)},3e3))),g){const a=i(g);Array.prototype.push.apply(n,Object.keys(a).map((b)=>`${b}=${a[b]}`))}n.length&&(m=m+'?'+n.join('&')),'fetch'===L?e(m):f(m),E[d]=a,H[a]=!0}),d()):void K.push([a,b])}function l(a){for(const b of F)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=l(b)||G[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(r,[d,d.exports,a,c(b),A,B]);else try{d.exports=d.fn.apply(r,[d,d.exports,a,c(b),A,B])}catch(a){t.error(a),d.exports={}}return p(d.exports)?d.exports.default:d.exports}function n(){for(let[a,b]of D)a.length&&a.forEach(function(c){if(H[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&D.delete(a)})}function o(a,b,c){const d=a+'';a=E[a]||a;var e=G[a];e||(e=G[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,E[d]&&delete E[d],I[a]&&!0!==I[a]&&(clearTimeout(I[a]),delete I[a]),H[a]?(delete H[a],k(b,a)):b.length&&k(b,a)}function p(a){return C&&a&&'object'===typeof a&&a.__esModule}var q,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A={env:{NODE_ENV:'production'}},B=void 0,C=!1,D=new Map,E={},F=[],G={},H={},I={},J=!1,K=[];let L='script';o.setRemoteBase=function(a){Object.assign(v,a)},o.toString=function(){return'Cube:v5.0.0-beta.7'},o.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(q=a.version),void 0!==a.strict&&(y=a.strict),a.env&&(A.env.NODE_ENV=a.env),a.global&&(B=a.global),a.combine&&(z=a.combine),a.requestMethod&&(L=a.requestMethod),void 0!==a.esModule&&(C=a.esModule),J=!0;K.length;){var c=K.shift();k(c[0],c[1])}return this},o.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),e||(a=g(a,w)),D.has(a)||D.set(a,[]),D.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(r,b),!0):void 0}}()),k(a,c,!0),this},o.register=function(a,c,{matchType:d='version'}={}){return G[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(G[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&F.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:G[a]}),this)};var M={};o.css=function(a,b,c){if(a){var d=c+'@'+b;if(!M[d])return M[d]=!0,h(a,b,c)}},o.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},o.cache=function(){var a,b,c={},d={};for(a in G)G.hasOwnProperty(a)&&(b=G[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',G),t.info('unloaded:',c),t.info('unfired:',d)},r.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):r.Cube=o;var N=s.currentScript;if(N){var O=N.dataset;O.base&&(o.init(O),o.use(O.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(o,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:q,strict:y,debug:!0,esModule:C,mockedGlobal:B,mockedProcess:A,charset:x,combine:z,combineMap:I}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.5'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.7'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 96ca6479491c9dc2a258eee6073eb27046b9dfd3 Mon Sep 17 00:00:00 2001 From: queti <> Date: Tue, 23 May 2023 14:36:29 +0800 Subject: [PATCH 46/74] feat: support cube omit env --- package.json | 6 +-- runtime/cube-reconstruction.js | 86 ++++++++++++++++++++++++------ runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 77 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 3da491f..4c7cc45 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.7", + "version": "5.0.0-beta.11", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", @@ -32,6 +32,7 @@ "debug": "4.1.0", "lodash": "4.17.15", "serve-static": "1.12.4", + "tnpm-sync": "^1.0.1", "uglify-js": "^3.14.1", "uuid": "^8.3.0", "xfs": "~0.2.2" @@ -53,6 +54,5 @@ "minami": "^1.1.1", "mocha": "3.2.0", "supertest": "3.0.0" - }, - "optionalDependencies": {} + } } diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 2b0d14f..fe78c93 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -32,13 +32,17 @@ function combineExecute(c) { return 'Cube.cStart();' + c + ';Cube.cStop();'; } - function fetchCubeCode(url, inputCodeProxy) { + function fetchCubeCode(url, inputCodeProxy, responseAdapter) { var codeProxy = inputCodeProxy || baseCodeProxy; return fetch(url, { headers: { 'Content-Type': 'text/plain', }, }) + .then(function (response) { + if (responseAdapter) responseAdapter(response); + return response; + }) .then(function (response) { return response.text(); }) @@ -123,6 +127,28 @@ if (!remoteBase[rbase]) return defaultPath; return remoteBase[rbase] + name.substr(offset + 1); } + // 定制业务逻辑 ?env=publish === 不加 env + // 此逻辑加在 cube 处不合理 + function removePublishName(name) { + var _a = String(name).split('?'), + main = _a[0], + params = _a[1]; + if (params) { + var kvs = params.split('&'); + if (kvs.includes('env=publish')) { + kvs = kvs.filter(function (v) { + return v !== 'env=publish'; + }); + var newParams = kvs.join('&'); + if (newParams) { + return main + '?' + newParams; + } else { + return main; + } + } + } + return name; + } // import Cube from 'node-cube/runtime/cube'; @@ -243,7 +269,12 @@ requires.forEach(function (require) { if (installedModules[require] || getGlobalRegister(require)) { - if (!installedModules[require].loaded && installedModules[require].combine); + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ); else { return; } @@ -270,13 +301,17 @@ query.push('combine=true'); installedModules[require].combine = true; if (!combineMap[require]) { - combineMap[require] = setTimeout(() => { - if (loading[require]) { - load(require, referer); - // 标记超时了 - combineMap[require] = true; - } - }, 3000); + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, 3000), + failed: false, + }; } } @@ -295,7 +330,15 @@ } if (requestMethod === 'fetch') { - fetchCubeCode(srcPath); + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode(srcPath, undefined, (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + }); + } else { + fetchCubeCode(srcPath); + } } else { scriptCubeCode(srcPath); } @@ -401,19 +444,28 @@ const oldName = String(name); name = requireMap[name] || name; var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); if (!mod) { mod = installedModules[name] = { exports: {}, fired: false, }; } + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; + } else { + combineMap[name].end = Date.now(); + } + } + mod.loaded = true; mod.fn = callback; requireMap[oldName] && delete requireMap[oldName]; - if (combineMap[name] && combineMap[name] !== true) { - clearTimeout(combineMap[name]); - delete combineMap[name]; - } + if (loading[name]) { delete loading[name]; load(requires, name); @@ -501,7 +553,9 @@ cb = cb || noop; if (typeof mods === 'string') { - mods = [mods]; + mods = [removePublishName(mods)]; + } else { + mods = mods.map(removePublishName); } if (!noFix) { @@ -1294,7 +1348,7 @@ }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.7'; + var cubeVersion = '5.0.0-beta.11'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 1ea6674..5d0b768 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.7 + * Cube v5.0.0-beta.11 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return o.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,o.use(b,a,d)):o.use(b,a,function(a){a=o.css(a,c,b),d&&d(a)})}}function d(){if(K.length)return!1;for(var a in H)if(H.hasOwnProperty(a))return!1;n()}function k(a,b,c){return'string'===typeof a&&(a=[a]),J?void(a.forEach(function(a){if(G[a]||l(a))if(!G[a].loaded&&G[a].combine);else return;G[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:u,remoteSeparator:w,remoteBase:v}),m=h||u+d,n=[];if(q&&n.push(q),z&&c&&(n.push('combine=true'),G[a].combine=!0,!I[a]&&(I[a]=setTimeout(()=>{H[a]&&(k(a,b),I[a]=!0)},3e3))),g){const a=i(g);Array.prototype.push.apply(n,Object.keys(a).map((b)=>`${b}=${a[b]}`))}n.length&&(m=m+'?'+n.join('&')),'fetch'===L?e(m):f(m),E[d]=a,H[a]=!0}),d()):void K.push([a,b])}function l(a){for(const b of F)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=l(b)||G[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(y)throw a;else return t.error(a),{}}if(!d.fired)if(d.fired=!0,y)d.exports=d.fn.apply(r,[d,d.exports,a,c(b),A,B]);else try{d.exports=d.fn.apply(r,[d,d.exports,a,c(b),A,B])}catch(a){t.error(a),d.exports={}}return p(d.exports)?d.exports.default:d.exports}function n(){for(let[a,b]of D)a.length&&a.forEach(function(c){if(H[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&D.delete(a)})}function o(a,b,c){const d=a+'';a=E[a]||a;var e=G[a];e||(e=G[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,E[d]&&delete E[d],I[a]&&!0!==I[a]&&(clearTimeout(I[a]),delete I[a]),H[a]?(delete H[a],k(b,a)):b.length&&k(b,a)}function p(a){return C&&a&&'object'===typeof a&&a.__esModule}var q,r=window,s=document,t=console,u='',v={},w=':',x='utf-8',y=!0,z=!0,A={env:{NODE_ENV:'production'}},B=void 0,C=!1,D=new Map,E={},F=[],G={},H={},I={},J=!1,K=[];let L='script';o.setRemoteBase=function(a){Object.assign(v,a)},o.toString=function(){return'Cube:v5.0.0-beta.7'},o.init=function(a){if(a.base&&'/'!==a.base&&(u=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(v[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(x=a.charset),a.version&&(q=a.version),void 0!==a.strict&&(y=a.strict),a.env&&(A.env.NODE_ENV=a.env),a.global&&(B=a.global),a.combine&&(z=a.combine),a.requestMethod&&(L=a.requestMethod),void 0!==a.esModule&&(C=a.esModule),J=!0;K.length;){var c=K.shift();k(c[0],c[1])}return this},o.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,'string'===typeof a&&(a=[a]),e||(a=g(a,w)),D.has(a)||D.set(a,[]),D.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(r,b),!0):void 0}}()),k(a,c,!0),this},o.register=function(a,c,{matchType:d='version'}={}){return G[a]?t.warn('Cube Warning: Module \''+a+'\' already registered'):(G[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&F.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:G[a]}),this)};var M={};o.css=function(a,b,c){if(a){var d=c+'@'+b;if(!M[d])return M[d]=!0,h(a,b,c)}},o.debug=function(){t.error('Cube Error: Cube.debug nolonger supported')},o.cache=function(){var a,b,c={},d={};for(a in G)G.hasOwnProperty(a)&&(b=G[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));t.info('modules:',G),t.info('unloaded:',c),t.info('unfired:',d)},r.Cube?t.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):r.Cube=o;var N=s.currentScript;if(N){var O=N.dataset;O.base&&(o.init(O),o.use(O.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(o,'config',{get(){return{base:u,remoteBase:v,remoteSeparator:w,version:q,strict:y,debug:!0,esModule:C,mockedGlobal:B,mockedProcess:A,charset:x,combine:z,combineMap:I}}})}function l(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var m=function(){return m=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},3e3),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===M?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[];let M='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.11'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),a.requestMethod&&(M=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var N={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!N[d])return N[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var O=t.currentScript;if(O){var P=O.dataset;P.base&&(p.init(P),p.use(P.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.7'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.11'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 75e63b38f62ade685b745fe5e954a00d1e34c19f Mon Sep 17 00:00:00 2001 From: queti <> Date: Mon, 29 May 2023 17:27:35 +0800 Subject: [PATCH 47/74] feat: cube support custom fail time --- package-lock.json | 11057 +++++++++++++++++++++++++++ package.json | 2 +- runtime/cube-reconstruction.js | 11 +- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 5 files changed, 11070 insertions(+), 8 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..617ff24 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11057 @@ +{ + "name": "node-cube", + "version": "5.0.0-beta.12", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "node-cube", + "version": "5.0.0-beta.12", + "license": "MIT", + "dependencies": { + "async": "2.6.0", + "babel-generator": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "clean-css": "^4.1.4", + "commander": "4.0.1", + "connect": "^3.6.3", + "debug": "4.1.0", + "lodash": "4.17.15", + "serve-static": "1.12.4", + "tnpm-sync": "^1.0.1", + "uglify-js": "^3.14.1", + "uuid": "^8.3.0", + "xfs": "~0.2.2" + }, + "bin": { + "cube": "bin/cube" + }, + "devDependencies": { + "babel-preset-env": "*", + "cube-babel": "*", + "cube-coffee": "*", + "cube-ejs": "*", + "cube-jade": "*", + "cube-lazy-parse": "*", + "cube-less": "*", + "cube-react": "*", + "cube-stylus": "*", + "esminify": "3.0.5", + "expect.js": "0.3.1", + "jscoverage": "0.6.0", + "jsdom": "6.2.0", + "minami": "^1.1.1", + "mocha": "3.2.0", + "supertest": "3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/code-frame/download/@babel/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/compat-data/download/@babel/compat-data-7.22.3.tgz", + "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.6.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/core/download/@babel/core-7.6.4.tgz", + "integrity": "sha1-br2f4Akl9sPhd7tyahiLX1eAiP8=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.4", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.4", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/generator/download/@babel/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", + "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.22.1.tgz", + "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.22.1.tgz", + "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-environment-visitor/download/@babel/helper-environment-visitor-7.22.1.tgz", + "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-function-name/download/@babel/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.22.3.tgz", + "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.22.1.tgz", + "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.22.1.tgz", + "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-member-expression-to-functions": "^7.22.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-string-parser/download/@babel/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helpers/download/@babel/helpers-7.22.3.tgz", + "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/highlight/download/@babel/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/parser/download/@babel/parser-7.22.3.tgz", + "integrity": "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.22.3.tgz", + "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", + "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.22.3.tgz", + "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.22.3.tgz", + "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.6.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/preset-env/download/@babel/preset-env-7.6.3.tgz", + "integrity": "sha1-nhvwWi4taHA20kxA5GOdxGzvInE=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.6.3", + "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.6.0", + "@babel/plugin-transform-dotall-regex": "^7.6.2", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.6.2", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.6.2", + "@babel/types": "^7.6.3", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/@babel/preset-env/node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/regjsgen/download/@babel/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/runtime/download/@babel/runtime-7.22.3.tgz", + "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/@babel/template": { + "version": "7.21.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/template/download/@babel/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/traverse/download/@babel/traverse-7.22.1.tgz", + "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.22.0", + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.22.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/types/download/@babel/types-7.22.3.tgz", + "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/gen-mapping/download/@jridgewell/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/resolve-uri/download/@jridgewell/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/set-array/download/@jridgewell/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/trace-mapping/download/@jridgewell/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/acorn": { + "version": "2.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/acorn-globals/download/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "dependencies": { + "acorn": "^2.1.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/align-text/download/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-1.0.0.tgz", + "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/asn1/download/asn1-0.2.6.tgz", + "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "2.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-2.6.0.tgz", + "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", + "dependencies": { + "lodash": "^4.14.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws4/download/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-core": { + "version": "6.25.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.25.0.tgz", + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.22.0", + "babel-generator": "^6.25.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.25.0", + "babel-traverse": "^6.25.0", + "babel-types": "^6.25.0", + "babylon": "^6.17.2", + "convert-source-map": "^1.1.0", + "debug": "^2.1.1", + "json5": "^0.5.0", + "lodash": "^4.2.0", + "minimatch": "^3.0.2", + "path-is-absolute": "^1.0.0", + "private": "^0.1.6", + "slash": "^1.0.0", + "source-map": "^0.5.0" + } + }, + "node_modules/babel-core/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-core/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-core/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-generator/download/babel-generator-6.26.1.tgz", + "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-evaluate-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.3.0.tgz", + "integrity": "sha1-JDlUXgturlt/SbeQrL69a5pz3yA=", + "dev": true + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-flip-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.3.0.tgz", + "integrity": "sha1-9bY5S9Uhm0PPj3sgFTXtVAxuf6I=", + "dev": true + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "node_modules/babel-helper-is-void-0": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.3.0.tgz", + "integrity": "sha1-lVcNIL0nsiBvaAg66ZgO5wA9j+c=", + "dev": true + }, + "node_modules/babel-helper-mark-eval-scopes": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.3.0.tgz", + "integrity": "sha1-tHMTFP3XqJCRJxpSE7ThLSNuKeg=", + "dev": true + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-remove-or-void": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.3.0.tgz", + "integrity": "sha1-9DyGFHyPzDlalSjLsx5/9J1+FuM=", + "dev": true + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-to-multiple-sequence-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", + "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=", + "dev": true + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helpers/download/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-messages/download/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-minify-builtins": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.3.0.tgz", + "integrity": "sha1-R0ARemp4QGOq+PCSmJz55L1ISGA=", + "dev": true, + "dependencies": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-constant-folding": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.3.0.tgz", + "integrity": "sha1-aH5AM2vU3dkh4OGX8ABiNawYS7k=", + "dev": true, + "dependencies": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-dead-code-elimination": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", + "integrity": "sha1-oyP2hsQEuCQYa6VYPPeZbKyBcZ4=", + "dev": true, + "dependencies": { + "babel-helper-evaluate-path": "^0.3.0", + "babel-helper-mark-eval-scopes": "^0.3.0", + "babel-helper-remove-or-void": "^0.3.0", + "lodash.some": "^4.6.0" + } + }, + "node_modules/babel-plugin-minify-flip-comparisons": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.3.0.tgz", + "integrity": "sha1-ZieJOkCcnzDvfyyJ4Mbup+6X3cQ=", + "dev": true, + "dependencies": { + "babel-helper-is-void-0": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-guarded-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.3.0.tgz", + "integrity": "sha1-JVLZYYnvRdmkY/GmteT6EQcDrI0=", + "dev": true, + "dependencies": { + "babel-helper-flip-expressions": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-infinity": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.3.0.tgz", + "integrity": "sha1-xewO3UM1F88xs68XB3wgK+tIu+c=", + "dev": true + }, + "node_modules/babel-plugin-minify-mangle-names": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.3.0.tgz", + "integrity": "sha1-8oVhutDdLwOAgWgWu5RuIZs7YTU=", + "dev": true, + "dependencies": { + "babel-helper-mark-eval-scopes": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-numeric-literals": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.3.0.tgz", + "integrity": "sha1-tXc0phLopZIAVAcyPDIRGfJ9S0A=", + "dev": true + }, + "node_modules/babel-plugin-minify-replace": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.3.0.tgz", + "integrity": "sha1-mAElu/fLtaY3Q53p0LGwMKRpOJM=", + "dev": true + }, + "node_modules/babel-plugin-minify-simplify": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.3.0.tgz", + "integrity": "sha1-FFdMx00hyB0wYPr6BBAQAoGJ8Rs=", + "dev": true, + "dependencies": { + "babel-helper-flip-expressions": "^0.3.0", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.3.0" + } + }, + "node_modules/babel-plugin-minify-type-constructors": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.3.0.tgz", + "integrity": "sha1-f1qG7zIsR0Y2TjxZG4UU7q/qatQ=", + "dev": true, + "dependencies": { + "babel-helper-is-void-0": "^0.3.0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", + "dev": true, + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-inline-consecutive-adds": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", + "integrity": "sha1-8H2TaJwAAu0rK2KWm92Z9zTgP1c=", + "dev": true + }, + "node_modules/babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true + }, + "node_modules/babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.5", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.5.tgz", + "integrity": "sha512-xj/KrWi6/uP+DrD844h66Qh2cZN++iugEIgH8QcIxhmZZPNP6VpOE9b4gP2FFW39xDAY43kCmYMM6U0QNKN8fw==", + "dev": true + }, + "node_modules/babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true + }, + "node_modules/babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + } + }, + "node_modules/babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "dependencies": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-regexp-constructors": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.3.0.tgz", + "integrity": "sha1-m7LI3QgicaXLGzpEGnxS6P0H4PU=", + "dev": true + }, + "node_modules/babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "node_modules/babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "node_modules/babel-plugin-transform-remove-undefined": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.3.0.tgz", + "integrity": "sha1-A/XwBxhneB6b6rvHt3v4CV/T8+w=", + "dev": true, + "dependencies": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "node_modules/babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-env/download/babel-preset-env-1.7.0.tgz", + "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", + "dev": true, + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-minify": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-minify/download/babel-preset-minify-0.3.0.tgz", + "integrity": "sha1-fbZK+nXxb24GwKpfJRlfbzZ4TXc=", + "dev": true, + "dependencies": { + "babel-plugin-minify-builtins": "^0.3.0", + "babel-plugin-minify-constant-folding": "^0.3.0", + "babel-plugin-minify-dead-code-elimination": "^0.3.0", + "babel-plugin-minify-flip-comparisons": "^0.3.0", + "babel-plugin-minify-guarded-expressions": "^0.3.0", + "babel-plugin-minify-infinity": "^0.3.0", + "babel-plugin-minify-mangle-names": "^0.3.0", + "babel-plugin-minify-numeric-literals": "^0.3.0", + "babel-plugin-minify-replace": "^0.3.0", + "babel-plugin-minify-simplify": "^0.3.0", + "babel-plugin-minify-type-constructors": "^0.3.0", + "babel-plugin-transform-inline-consecutive-adds": "^0.3.0", + "babel-plugin-transform-member-expression-literals": "^6.9.0", + "babel-plugin-transform-merge-sibling-variables": "^6.9.0", + "babel-plugin-transform-minify-booleans": "^6.9.0", + "babel-plugin-transform-property-literals": "^6.9.0", + "babel-plugin-transform-regexp-constructors": "^0.3.0", + "babel-plugin-transform-remove-console": "^6.9.0", + "babel-plugin-transform-remove-debugger": "^6.9.0", + "babel-plugin-transform-remove-undefined": "^0.3.0", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.0", + "babel-plugin-transform-undefined-to-void": "^6.9.0", + "lodash.isplainobject": "^4.0.6" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-register/download/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-register/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-register/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-register/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-register/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-template/download/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-traverse/download/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-types/download/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/babylon/download/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/balanced-match/download/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/boom": { + "version": "2.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/boom/download/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.alibaba-inc.com/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browser-request": { + "version": "0.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/browser-request/download/browser-request-0.3.3.tgz", + "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=", + "dev": true, + "engines": [ + "node" + ] + }, + "node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/browser-stdout/download/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-3.2.8.tgz", + "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001489", + "resolved": "https://registry.npm.alibaba-inc.com/caniuse-lite/download/caniuse-lite-1.0.30001489.tgz", + "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", + "dev": true + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/center-align/download/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/character-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/character-parser/download/character-parser-1.2.1.tgz", + "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", + "dev": true + }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-4.2.4.tgz", + "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/cliui/download/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/cliui/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npm.alibaba-inc.com/coffee-script/download/coffee-script-1.12.7.tgz", + "integrity": "sha1-wF2uDLeVkdBbMHCoQzqYyaiczFM=", + "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coffeescript": { + "version": "2.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/coffeescript/download/coffeescript-2.7.0.tgz", + "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "dev": true, + "bin": { + "cake": "bin/cake", + "coffee": "bin/coffee" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.alibaba-inc.com/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-4.0.1.tgz", + "integrity": "sha1-tnYicheFmTGC6Af0iDYz5kAbpTw=", + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/connect/download/connect-3.7.0.tgz", + "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/constantinople": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/constantinople/download/constantinople-3.0.2.tgz", + "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", + "deprecated": "Please update to at least constantinople 3.1.1", + "dev": true, + "dependencies": { + "acorn": "^2.1.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/convert-source-map/download/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/cookiejar/download/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.alibaba-inc.com/core-js/download/core-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npm.alibaba-inc.com/core-js-compat/download/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5" + } + }, + "node_modules/core-js-compat/node_modules/browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/core-js-compat/node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/cryptiles/download/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/css": { + "version": "1.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/css/download/css-1.0.8.tgz", + "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", + "dev": true, + "dependencies": { + "css-parse": "1.0.4", + "css-stringify": "1.0.5" + } + }, + "node_modules/css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "node_modules/css-stringify": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/css-stringify/download/css-stringify-1.0.5.tgz", + "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", + "dev": true + }, + "node_modules/css/node_modules/css-parse": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.0.4.tgz", + "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", + "dev": true + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npm.alibaba-inc.com/cssom/download/cssom-0.3.8.tgz", + "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", + "dev": true + }, + "node_modules/cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npm.alibaba-inc.com/cssstyle/download/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/cube-babel": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/cube-babel/download/cube-babel-1.0.4.tgz", + "integrity": "sha1-2mWUrv3hVQ3gRUF8rx8xX9ozTtE=", + "dev": true, + "dependencies": { + "@babel/core": "7.6.4", + "@babel/preset-env": "7.6.3", + "lodash": "4.17.15" + } + }, + "node_modules/cube-coffee": { + "version": "2.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/cube-coffee/download/cube-coffee-2.0.2.tgz", + "integrity": "sha1-y+8QXfbhCedi9os4QMJL7HJYRgs=", + "dev": true, + "dependencies": { + "coffeescript": "^2.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cube-ejs": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-ejs/download/cube-ejs-2.0.1.tgz", + "integrity": "sha1-LWbZor8AYMZNm7IaFnaA1Vnm0tc=", + "dev": true, + "dependencies": { + "ejs": "2.4.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cube-jade": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-jade/download/cube-jade-2.0.1.tgz", + "integrity": "sha1-GLAAv7ea42XVYS37YdMcFwnx7RY=", + "dev": true, + "dependencies": { + "jade": "~1.11.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cube-lazy-parse": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-lazy-parse/download/cube-lazy-parse-1.0.1.tgz", + "integrity": "sha1-mucksT3OYryfdWRJvw5pCxflOPI=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cube-less": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-less/download/cube-less-3.1.1.tgz", + "integrity": "sha1-QpFLAgx0XKwPsaswQp7/kArSzbs=", + "dev": true, + "dependencies": { + "less": "3.0.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cube-react": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/cube-react/download/cube-react-2.1.0.tgz", + "integrity": "sha1-SXepk6TYzoydZyfkuJUi6R/YMcE=", + "dev": true, + "dependencies": { + "babel-core": "~6.25.0", + "babel-plugin-transform-react-jsx": "~6.24.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cube-stylus": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/cube-stylus/download/cube-stylus-2.0.0.tgz", + "integrity": "sha1-dvSe8OEnzDZKg1I5+xuQyEKL9BI=", + "dev": true, + "dependencies": { + "stylus": "0.53.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.alibaba-inc.com/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "4.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-4.1.0.tgz", + "integrity": "sha1-NzaHv/pnizixzZH4YbY4UANd3Ic=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/deep-is/download/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/detect-indent/download/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/diff/download/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/dom-serializer/download/dom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-2.2.0.tgz", + "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", + "dev": true + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/ejs": { + "version": "2.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-2.4.1.tgz", + "integrity": "sha1-guFbGyoflIsYCXR2uivXxm9NFWY=", + "deprecated": "Critical security bugs fixed in 2.5.5", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.411", + "resolved": "https://registry.npm.alibaba-inc.com/electron-to-chromium/download/electron-to-chromium-1.4.411.tgz", + "integrity": "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npm.alibaba-inc.com/errno/download/errno-0.1.8.tgz", + "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/escalade/download/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.alibaba-inc.com/escodegen/download/escodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esminify": { + "version": "3.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/esminify/download/esminify-3.0.5.tgz", + "integrity": "sha1-AxN4p2Ye95VadnvXwwPs6Ln3XLQ=", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-preset-minify": "0.3.0", + "commander": "2.10.0", + "litelog": "^2.0.8", + "lodash": "4.17.5", + "xfs": "0.2.3" + }, + "bin": { + "esminify": "bin/esminify" + } + }, + "node_modules/esminify/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/esminify/node_modules/commander": { + "version": "2.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.10.0.tgz", + "integrity": "sha1-4fXTJF3iRtGlygRwL6GtG9fkBf4=", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/esminify/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/esminify/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/esminify/node_modules/lodash": { + "version": "4.17.5", + "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.5.tgz", + "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=", + "dev": true + }, + "node_modules/esminify/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/esminify/node_modules/xfs": { + "version": "0.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.3.tgz", + "integrity": "sha1-RW63DXVm3U33sXnIBOJaFZ+PKyU=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/estraverse/download/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.alibaba-inc.com/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/execa/download/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/expect.js": { + "version": "0.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/expect.js/download/expect.js-0.3.1.tgz", + "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/formidable/download/formidable-1.2.6.tgz", + "integrity": "sha1-0qUdYBYrvJtKBV2EV6fHUxXRoWg=", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/fresh": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/fresh/download/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.alibaba-inc.com/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-7.0.5.tgz", + "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npm.alibaba-inc.com/graceful-fs/download/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "optional": true + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/graceful-readlink/download/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "node_modules/growl": { + "version": "1.9.2", + "resolved": "https://registry.npm.alibaba-inc.com/growl/download/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hawk": { + "version": "3.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/hawk/download/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/hoek": { + "version": "2.16.3", + "resolved": "https://registry.npm.alibaba-inc.com/hoek/download/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/htmlparser2/download/htmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.alibaba-inc.com/http-errors/download/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.alibaba-inc.com/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/invariant/download/invariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-core-module/download/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/is-finite/download/is-finite-1.1.0.tgz", + "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-2.2.2.tgz", + "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-stream/download/is-stream-2.0.1.tgz", + "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/jade": { + "version": "1.11.0", + "resolved": "https://registry.npm.alibaba-inc.com/jade/download/jade-1.11.0.tgz", + "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", + "deprecated": "Jade has been renamed to pug, please install the latest version of pug instead of jade", + "dev": true, + "dependencies": { + "character-parser": "1.2.1", + "clean-css": "^3.1.9", + "commander": "~2.6.0", + "constantinople": "~3.0.1", + "jstransformer": "0.0.2", + "mkdirp": "~0.5.0", + "transformers": "2.1.0", + "uglify-js": "^2.4.19", + "void-elements": "~2.0.1", + "with": "~4.0.0" + }, + "bin": { + "jade": "bin/jade.js" + } + }, + "node_modules/jade/node_modules/clean-css": { + "version": "3.4.28", + "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-3.4.28.tgz", + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", + "dev": true, + "dependencies": { + "commander": "2.8.x", + "source-map": "0.4.x" + }, + "bin": { + "cleancss": "bin/cleancss" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jade/node_modules/clean-css/node_modules/commander": { + "version": "2.8.1", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/jade/node_modules/clean-css/node_modules/source-map": { + "version": "0.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jade/node_modules/commander": { + "version": "2.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/jade/node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/js-levenshtein/download/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jscoverage": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/jscoverage/download/jscoverage-0.6.0.tgz", + "integrity": "sha1-9eE6nhN3Yzh2jB7gLhrnHVFc2sk=", + "dev": true, + "dependencies": { + "coffee-script": "*", + "commander": "^2.6.0", + "debug": "~1.0.3", + "ejs": "1.0.0", + "optimist": "^0.6.1", + "uglify-js": "~2.4.15", + "xfs": "~0.1.8" + }, + "bin": { + "jscoverage": "bin/jscoverage" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/jscoverage/node_modules/async": { + "version": "0.2.10", + "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "node_modules/jscoverage/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jscoverage/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true + }, + "node_modules/jscoverage/node_modules/debug": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-1.0.5.tgz", + "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/jscoverage/node_modules/ejs": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-1.0.0.tgz", + "integrity": "sha1-ycYKSKRu5FL7MqccMXuV5aofyz0=", + "deprecated": "Critical security bugs fixed in 2.5.5", + "dev": true + }, + "node_modules/jscoverage/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/jscoverage/node_modules/source-map": { + "version": "0.1.34", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jscoverage/node_modules/uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "dev": true, + "dependencies": { + "async": "~0.2.6", + "source-map": "0.1.34", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jscoverage/node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jscoverage/node_modules/xfs": { + "version": "0.1.10", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.10.tgz", + "integrity": "sha1-TdL9uyraKifmxdRxy1fAleZStwM=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jscoverage/node_modules/yargs": { + "version": "3.5.4", + "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + } + }, + "node_modules/jsdom": { + "version": "6.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsdom/download/jsdom-6.2.0.tgz", + "integrity": "sha1-nead00VcGfMQBtJUJe3AHAx+1ok=", + "dev": true, + "dependencies": { + "acorn": "^1.2.1", + "acorn-globals": "^1.0.4", + "browser-request": ">= 0.3.1 < 0.4.0", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.29 < 0.3.0", + "escodegen": "^1.6.1", + "htmlparser2": ">= 3.7.3 < 4.0.0", + "nwmatcher": ">= 1.3.6 < 2.0.0", + "parse5": "^1.4.2", + "request": "^2.55.0", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^1.1.0", + "whatwg-url-compat": "~0.6.1", + "xml-name-validator": ">= 2.0.1 < 3.0.0", + "xmlhttprequest": ">= 1.6.0 < 2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "1.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/json-schema/download/json-schema-0.4.0.tgz", + "integrity": "sha1-995M9u+rg4666zI2R0y7paGTCrU=", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/json-stable-stringify/download/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "optional": true, + "dependencies": { + "jsonify": "^0.0.1" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/json3/download/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "deprecated": "Please use the native JSON object instead of JSON 3", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/jsonify/download/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "optional": true + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/jsprim/download/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jstransformer": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/jstransformer/download/jstransformer-0.0.2.tgz", + "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^6.0.1" + } + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/lazy-cache/download/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/less/download/less-3.0.1.tgz", + "integrity": "sha1-ui/qJKVjLMuMhCMNYEPAv5GFXjc=", + "dev": true, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + } + }, + "node_modules/less/node_modules/ajv": { + "version": "4.11.8", + "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "dependencies": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "node_modules/less/node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "node_modules/less/node_modules/assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less/node_modules/aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/form-data": { + "version": "2.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/less/node_modules/har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "deprecated": "this library is no longer supported", + "dev": true, + "optional": true, + "dependencies": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/less/node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "node_modules/less/node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "dev": true, + "optional": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/less/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "node_modules/less/node_modules/qs": { + "version": "6.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.4.1.tgz", + "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/less/node_modules/request": { + "version": "2.81.0", + "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "optional": true, + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/less/node_modules/tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.3.4.tgz", + "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", + "dev": true, + "optional": true, + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "optional": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/litelog": { + "version": "2.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/litelog/download/litelog-2.0.9.tgz", + "integrity": "sha1-7BvyETZM3KzdCnsl/rVjNXxVLC4=", + "dev": true, + "dependencies": { + "xfs": "0.1.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/litelog/node_modules/xfs": { + "version": "0.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.6.tgz", + "integrity": "sha1-0hJZO/of4Ny7ogdAAsQbWGZWhFI=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, + "node_modules/lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "node_modules/lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._getnative/download/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "node_modules/lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.create/download/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true, + "dependencies": { + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" + } + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarray/download/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.keys/download/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "node_modules/lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.some/download/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npm.alibaba-inc.com/mime-db/download/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npm.alibaba-inc.com/mime-types/download/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "engines": { + "node": ">=6" + } + }, + "node_modules/minami": { + "version": "1.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/minami/download/minami-1.2.3.tgz", + "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "3.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/mocha/download/mocha-3.2.0.tgz", + "integrity": "sha1-fcT0XlCIB1FxpoiWgU5q6et6heM=", + "dev": true, + "dependencies": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.5", + "glob": "7.0.5", + "growl": "1.9.2", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 0.10.x", + "npm": ">= 1.4.x" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "2.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "dependencies": { + "ms": "0.7.1" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "0.7.1", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npm.alibaba-inc.com/node-releases/download/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/nwmatcher/download/nwmatcher-1.4.4.tgz", + "integrity": "sha1-IoVjHzSpXw0Dlc2QDJbtObWPNG4=", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/optimist/node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/optionator/download/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/os-homedir/download/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "1.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/parse5/download/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npm.alibaba-inc.com/path-parse/download/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/picocolors/download/picocolors-1.0.0.tgz", + "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npm.alibaba-inc.com/private/download/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "node_modules/promise": { + "version": "6.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-6.1.0.tgz", + "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", + "dev": true, + "dependencies": { + "asap": "~1.0.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/psl/download/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/regenerate/download/regenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/regenerate-unicode-properties/download/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.10.1.tgz", + "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/regjsgen/download/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/repeating/download/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npm.alibaba-inc.com/resolve/download/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/right-align/download/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "node_modules/sax": { + "version": "0.5.8", + "resolved": "https://registry.npm.alibaba-inc.com/sax/download/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.15.4", + "resolved": "https://registry.npm.alibaba-inc.com/send/download/send-0.15.4.tgz", + "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "dependencies": { + "debug": "2.6.8", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "fresh": "0.5.0", + "http-errors": "~1.6.2", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.8", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.3.4", + "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "bin": { + "mime": "cli.js" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.12.4", + "resolved": "https://registry.npm.alibaba-inc.com/serve-static/download/serve-static-1.12.4.tgz", + "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "dependencies": { + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.15.4" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "engines": { + "node": ">=8" + } + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/sigmund/download/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npm.alibaba-inc.com/signal-exit/download/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sntp": { + "version": "1.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/sntp/download/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npm.alibaba-inc.com/source-map-support/download/source-map-support-0.4.18.tgz", + "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npm.alibaba-inc.com/sshpk/download/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.3.0.tgz", + "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/stringstream/download/stringstream-0.0.6.tgz", + "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", + "dev": true, + "optional": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "engines": { + "node": ">=6" + } + }, + "node_modules/stylus": { + "version": "0.53.0", + "resolved": "https://registry.npm.alibaba-inc.com/stylus/download/stylus-0.53.0.tgz", + "integrity": "sha1-a1HnZlCX+N1KaWXhTO6l5Ln9cko=", + "dev": true, + "dependencies": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "3.2.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/glob": { + "version": "3.2.11", + "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "dependencies": { + "inherits": "2", + "minimatch": "0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "node_modules/stylus/node_modules/minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", + "dev": true, + "dependencies": { + "lru-cache": "2", + "sigmund": "~1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/superagent": { + "version": "3.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/superagent/download/superagent-3.8.3.tgz", + "integrity": "sha1-Rg6g29t9WxG8T3jeulZfhqF44Sg=", + "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", + "dev": true, + "dependencies": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/superagent/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/superagent/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "node_modules/superagent/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/supertest": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supertest/download/supertest-3.0.0.tgz", + "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", + "dev": true, + "dependencies": { + "methods": "~1.1.2", + "superagent": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-preserve-symlinks-flag/download/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/symbol-tree/download/symbol-tree-3.2.4.tgz", + "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", + "dev": true + }, + "node_modules/tnpm-sync": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/tnpm-sync/download/tnpm-sync-1.0.1.tgz", + "integrity": "sha1-CW7fgvo4rbi6Bry7hrVLUbMeSOM=", + "dependencies": { + "execa": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "bin": { + "tnpm-sync": "bin/index.js" + } + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tough-cookie": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-1.2.0.tgz", + "integrity": "sha1-m36dmOdp6AtaqJnZRP5E4C6/gq0=", + "deprecated": "ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/tr46/download/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "node_modules/transformers": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/transformers/download/transformers-2.1.0.tgz", + "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", + "deprecated": "Deprecated, use jstransformer", + "dev": true, + "dependencies": { + "css": "~1.0.8", + "promise": "~2.0", + "uglify-js": "~2.2.5" + } + }, + "node_modules/transformers/node_modules/is-promise": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-1.0.1.tgz", + "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", + "dev": true + }, + "node_modules/transformers/node_modules/optimist": { + "version": "0.3.7", + "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "dependencies": { + "wordwrap": "~0.0.2" + } + }, + "node_modules/transformers/node_modules/promise": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-2.0.0.tgz", + "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", + "dev": true, + "dependencies": { + "is-promise": "~1" + } + }, + "node_modules/transformers/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/transformers/node_modules/uglify-js": { + "version": "2.2.5", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.2.5.tgz", + "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", + "dev": true, + "dependencies": { + "optimist": "~0.3.5", + "source-map": "~0.1.7" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/trim-right/download/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.alibaba-inc.com/tweetnacl/download/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/uri-js/download/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-8.3.2.tgz", + "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/void-elements/download/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npm.alibaba-inc.com/whatwg-url-compat/download/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "dev": true, + "dependencies": { + "tr46": "~0.0.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/window-size/download/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/with": { + "version": "4.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/with/download/with-4.0.3.tgz", + "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", + "dev": true, + "dependencies": { + "acorn": "^1.0.1", + "acorn-globals": "^1.0.3" + } + }, + "node_modules/with/node_modules/acorn": { + "version": "1.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xfs": { + "version": "0.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.6.tgz", + "integrity": "sha1-nn5L3JO8o5wjFcPSTFRHM8/rITY=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/xml-name-validator/download/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npm.alibaba-inc.com/xmlhttprequest/download/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/yargs-parser/download/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/code-frame/download/@babel/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/compat-data/download/@babel/compat-data-7.22.3.tgz", + "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", + "dev": true + }, + "@babel/core": { + "version": "7.6.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/core/download/@babel/core-7.6.4.tgz", + "integrity": "sha1-br2f4Akl9sPhd7tyahiLX1eAiP8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.4", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.4", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/generator/download/@babel/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", + "dev": true, + "requires": { + "@babel/types": "^7.22.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", + "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.3" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.22.1.tgz", + "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.0", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.22.1.tgz", + "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-environment-visitor/download/@babel/helper-environment-visitor-7.22.1.tgz", + "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-function-name/download/@babel/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "requires": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.22.3.tgz", + "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", + "dev": true, + "requires": { + "@babel/types": "^7.22.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.22.1.tgz", + "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.22.1.tgz", + "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-member-expression-to-functions": "^7.22.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "requires": { + "@babel/types": "^7.21.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-string-parser/download/@babel/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + } + }, + "@babel/helpers": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/helpers/download/@babel/helpers-7.22.3.tgz", + "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "dev": true, + "requires": { + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.3" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/highlight/download/@babel/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/parser/download/@babel/parser-7.22.3.tgz", + "integrity": "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.22.3.tgz", + "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", + "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.22.3.tgz", + "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.22.3.tgz", + "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.21.5", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + } + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.6.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/preset-env/download/@babel/preset-env-7.6.3.tgz", + "integrity": "sha1-nhvwWi4taHA20kxA5GOdxGzvInE=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.6.3", + "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.6.0", + "@babel/plugin-transform-dotall-regex": "^7.6.2", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.6.2", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.6.2", + "@babel/types": "^7.6.3", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + } + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/regjsgen/download/@babel/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/runtime/download/@babel/runtime-7.22.3.tgz", + "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.21.9", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/template/download/@babel/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" + } + }, + "@babel/traverse": { + "version": "7.22.1", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/traverse/download/@babel/traverse-7.22.1.tgz", + "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.22.0", + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.22.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.22.3", + "resolved": "https://registry.npm.alibaba-inc.com/@babel/types/download/@babel/types-7.22.3.tgz", + "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/gen-mapping/download/@jridgewell/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/resolve-uri/download/@jridgewell/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/set-array/download/@jridgewell/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/trace-mapping/download/@jridgewell/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + } + } + }, + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/acorn-globals/download/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "requires": { + "acorn": "^2.1.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/align-text/download/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "asap": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-1.0.0.tgz", + "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/asn1/download/asn1-0.2.6.tgz", + "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-2.6.0.tgz", + "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", + "requires": { + "lodash": "^4.14.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws4/download/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.25.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.25.0.tgz", + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "babel-generator": "^6.25.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.25.0", + "babel-traverse": "^6.25.0", + "babel-types": "^6.25.0", + "babylon": "^6.17.2", + "convert-source-map": "^1.1.0", + "debug": "^2.1.1", + "json5": "^0.5.0", + "lodash": "^4.2.0", + "minimatch": "^3.0.2", + "path-is-absolute": "^1.0.0", + "private": "^0.1.6", + "slash": "^1.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-generator/download/babel-generator-6.26.1.tgz", + "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-evaluate-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.3.0.tgz", + "integrity": "sha1-JDlUXgturlt/SbeQrL69a5pz3yA=", + "dev": true + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-flip-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.3.0.tgz", + "integrity": "sha1-9bY5S9Uhm0PPj3sgFTXtVAxuf6I=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.3.0.tgz", + "integrity": "sha1-lVcNIL0nsiBvaAg66ZgO5wA9j+c=", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.3.0.tgz", + "integrity": "sha1-tHMTFP3XqJCRJxpSE7ThLSNuKeg=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-remove-or-void": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.3.0.tgz", + "integrity": "sha1-9DyGFHyPzDlalSjLsx5/9J1+FuM=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", + "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-helpers/download/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-messages/download/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.3.0.tgz", + "integrity": "sha1-R0ARemp4QGOq+PCSmJz55L1ISGA=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "babel-plugin-minify-constant-folding": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.3.0.tgz", + "integrity": "sha1-aH5AM2vU3dkh4OGX8ABiNawYS7k=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", + "integrity": "sha1-oyP2hsQEuCQYa6VYPPeZbKyBcZ4=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.3.0", + "babel-helper-mark-eval-scopes": "^0.3.0", + "babel-helper-remove-or-void": "^0.3.0", + "lodash.some": "^4.6.0" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.3.0.tgz", + "integrity": "sha1-ZieJOkCcnzDvfyyJ4Mbup+6X3cQ=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.3.0" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.3.0.tgz", + "integrity": "sha1-JVLZYYnvRdmkY/GmteT6EQcDrI0=", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "^0.3.0" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.3.0.tgz", + "integrity": "sha1-xewO3UM1F88xs68XB3wgK+tIu+c=", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.3.0.tgz", + "integrity": "sha1-8oVhutDdLwOAgWgWu5RuIZs7YTU=", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "^0.3.0" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.3.0.tgz", + "integrity": "sha1-tXc0phLopZIAVAcyPDIRGfJ9S0A=", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.3.0.tgz", + "integrity": "sha1-mAElu/fLtaY3Q53p0LGwMKRpOJM=", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.3.0.tgz", + "integrity": "sha1-FFdMx00hyB0wYPr6BBAQAoGJ8Rs=", + "dev": true, + "requires": { + "babel-helper-flip-expressions": "^0.3.0", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.3.0" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.3.0.tgz", + "integrity": "sha1-f1qG7zIsR0Y2TjxZG4UU7q/qatQ=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.3.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", + "integrity": "sha1-8H2TaJwAAu0rK2KWm92Z9zTgP1c=", + "dev": true + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.5", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.5.tgz", + "integrity": "sha512-xj/KrWi6/uP+DrD844h66Qh2cZN++iugEIgH8QcIxhmZZPNP6VpOE9b4gP2FFW39xDAY43kCmYMM6U0QNKN8fw==", + "dev": true + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true + }, + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.3.0.tgz", + "integrity": "sha1-m7LI3QgicaXLGzpEGnxS6P0H4PU=", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.3.0.tgz", + "integrity": "sha1-A/XwBxhneB6b6rvHt3v4CV/T8+w=", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.3.0" + } + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-env/download/babel-preset-env-1.7.0.tgz", + "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-minify": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-minify/download/babel-preset-minify-0.3.0.tgz", + "integrity": "sha1-fbZK+nXxb24GwKpfJRlfbzZ4TXc=", + "dev": true, + "requires": { + "babel-plugin-minify-builtins": "^0.3.0", + "babel-plugin-minify-constant-folding": "^0.3.0", + "babel-plugin-minify-dead-code-elimination": "^0.3.0", + "babel-plugin-minify-flip-comparisons": "^0.3.0", + "babel-plugin-minify-guarded-expressions": "^0.3.0", + "babel-plugin-minify-infinity": "^0.3.0", + "babel-plugin-minify-mangle-names": "^0.3.0", + "babel-plugin-minify-numeric-literals": "^0.3.0", + "babel-plugin-minify-replace": "^0.3.0", + "babel-plugin-minify-simplify": "^0.3.0", + "babel-plugin-minify-type-constructors": "^0.3.0", + "babel-plugin-transform-inline-consecutive-adds": "^0.3.0", + "babel-plugin-transform-member-expression-literals": "^6.9.0", + "babel-plugin-transform-merge-sibling-variables": "^6.9.0", + "babel-plugin-transform-minify-booleans": "^6.9.0", + "babel-plugin-transform-property-literals": "^6.9.0", + "babel-plugin-transform-regexp-constructors": "^0.3.0", + "babel-plugin-transform-remove-console": "^6.9.0", + "babel-plugin-transform-remove-debugger": "^6.9.0", + "babel-plugin-transform-remove-undefined": "^0.3.0", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.0", + "babel-plugin-transform-undefined-to-void": "^6.9.0", + "lodash.isplainobject": "^4.0.6" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-register/download/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-template/download/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-traverse/download/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npm.alibaba-inc.com/babel-types/download/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/babylon/download/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/balanced-match/download/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/boom/download/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.alibaba-inc.com/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browser-request": { + "version": "0.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/browser-request/download/browser-request-0.3.3.tgz", + "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=", + "dev": true + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/browser-stdout/download/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-3.2.8.tgz", + "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" + }, + "caniuse-lite": { + "version": "1.0.30001489", + "resolved": "https://registry.npm.alibaba-inc.com/caniuse-lite/download/caniuse-lite-1.0.30001489.tgz", + "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.alibaba-inc.com/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/center-align/download/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "character-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/character-parser/download/character-parser-1.2.1.tgz", + "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", + "dev": true + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-4.2.4.tgz", + "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/cliui/download/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "optional": true + }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npm.alibaba-inc.com/coffee-script/download/coffee-script-1.12.7.tgz", + "integrity": "sha1-wF2uDLeVkdBbMHCoQzqYyaiczFM=", + "dev": true + }, + "coffeescript": { + "version": "2.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/coffeescript/download/coffeescript-2.7.0.tgz", + "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.alibaba-inc.com/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-4.0.1.tgz", + "integrity": "sha1-tnYicheFmTGC6Af0iDYz5kAbpTw=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/connect/download/connect-3.7.0.tgz", + "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "constantinople": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/constantinople/download/constantinople-3.0.2.tgz", + "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", + "dev": true, + "requires": { + "acorn": "^2.1.0" + } + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/convert-source-map/download/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/cookiejar/download/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npm.alibaba-inc.com/core-js/download/core-js-2.6.12.tgz", + "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" + }, + "core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npm.alibaba-inc.com/core-js-compat/download/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "dev": true, + "requires": { + "browserslist": "^4.21.5" + }, + "dependencies": { + "browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/cryptiles/download/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "css": { + "version": "1.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/css/download/css-1.0.8.tgz", + "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", + "dev": true, + "requires": { + "css-parse": "1.0.4", + "css-stringify": "1.0.5" + }, + "dependencies": { + "css-parse": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.0.4.tgz", + "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", + "dev": true + } + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-stringify": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/css-stringify/download/css-stringify-1.0.5.tgz", + "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", + "dev": true + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npm.alibaba-inc.com/cssom/download/cssom-0.3.8.tgz", + "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npm.alibaba-inc.com/cssstyle/download/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "cube-babel": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/cube-babel/download/cube-babel-1.0.4.tgz", + "integrity": "sha1-2mWUrv3hVQ3gRUF8rx8xX9ozTtE=", + "dev": true, + "requires": { + "@babel/core": "7.6.4", + "@babel/preset-env": "7.6.3", + "lodash": "4.17.15" + } + }, + "cube-coffee": { + "version": "2.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/cube-coffee/download/cube-coffee-2.0.2.tgz", + "integrity": "sha1-y+8QXfbhCedi9os4QMJL7HJYRgs=", + "dev": true, + "requires": { + "coffeescript": "^2.0.0" + } + }, + "cube-ejs": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-ejs/download/cube-ejs-2.0.1.tgz", + "integrity": "sha1-LWbZor8AYMZNm7IaFnaA1Vnm0tc=", + "dev": true, + "requires": { + "ejs": "2.4.1" + } + }, + "cube-jade": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-jade/download/cube-jade-2.0.1.tgz", + "integrity": "sha1-GLAAv7ea42XVYS37YdMcFwnx7RY=", + "dev": true, + "requires": { + "jade": "~1.11.0" + } + }, + "cube-lazy-parse": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-lazy-parse/download/cube-lazy-parse-1.0.1.tgz", + "integrity": "sha1-mucksT3OYryfdWRJvw5pCxflOPI=", + "dev": true + }, + "cube-less": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/cube-less/download/cube-less-3.1.1.tgz", + "integrity": "sha1-QpFLAgx0XKwPsaswQp7/kArSzbs=", + "dev": true, + "requires": { + "less": "3.0.1" + } + }, + "cube-react": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/cube-react/download/cube-react-2.1.0.tgz", + "integrity": "sha1-SXepk6TYzoydZyfkuJUi6R/YMcE=", + "dev": true, + "requires": { + "babel-core": "~6.25.0", + "babel-plugin-transform-react-jsx": "~6.24.0" + } + }, + "cube-stylus": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/cube-stylus/download/cube-stylus-2.0.0.tgz", + "integrity": "sha1-dvSe8OEnzDZKg1I5+xuQyEKL9BI=", + "dev": true, + "requires": { + "stylus": "0.53.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.alibaba-inc.com/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-4.1.0.tgz", + "integrity": "sha1-NzaHv/pnizixzZH4YbY4UANd3Ic=", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/decamelize/download/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/deep-is/download/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/detect-indent/download/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/diff/download/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/dom-serializer/download/dom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-2.2.0.tgz", + "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.alibaba-inc.com/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-2.4.1.tgz", + "integrity": "sha1-guFbGyoflIsYCXR2uivXxm9NFWY=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.411", + "resolved": "https://registry.npm.alibaba-inc.com/electron-to-chromium/download/electron-to-chromium-1.4.411.tgz", + "integrity": "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npm.alibaba-inc.com/errno/download/errno-0.1.8.tgz", + "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/escalade/download/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.alibaba-inc.com/escodegen/download/escodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "optional": true + } + } + }, + "esminify": { + "version": "3.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/esminify/download/esminify-3.0.5.tgz", + "integrity": "sha1-AxN4p2Ye95VadnvXwwPs6Ln3XLQ=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-preset-minify": "0.3.0", + "commander": "2.10.0", + "litelog": "^2.0.8", + "lodash": "4.17.5", + "xfs": "0.2.3" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", + "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "commander": { + "version": "2.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.10.0.tgz", + "integrity": "sha1-4fXTJF3iRtGlygRwL6GtG9fkBf4=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.5.tgz", + "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "xfs": { + "version": "0.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.3.tgz", + "integrity": "sha1-RW63DXVm3U33sXnIBOJaFZ+PKyU=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/esprima/download/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/estraverse/download/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.alibaba-inc.com/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/execa/download/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "expect.js": { + "version": "0.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/expect.js/download/expect.js-0.3.1.tgz", + "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/formidable/download/formidable-1.2.6.tgz", + "integrity": "sha1-0qUdYBYrvJtKBV2EV6fHUxXRoWg=", + "dev": true + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/fresh/download/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/get-stream/download/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.alibaba-inc.com/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-7.0.5.tgz", + "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-9.18.0.tgz", + "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npm.alibaba-inc.com/graceful-fs/download/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "optional": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/graceful-readlink/download/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npm.alibaba-inc.com/growl/download/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-5.1.5.tgz", + "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/hawk/download/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npm.alibaba-inc.com/hoek/download/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true, + "optional": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/htmlparser2/download/htmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.alibaba-inc.com/http-errors/download/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/human-signals/download/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=" + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.alibaba-inc.com/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/invariant/download/invariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-core-module/download/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/is-finite/download/is-finite-1.1.0.tgz", + "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=" + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-2.2.2.tgz", + "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-stream/download/is-stream-2.0.1.tgz", + "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jade": { + "version": "1.11.0", + "resolved": "https://registry.npm.alibaba-inc.com/jade/download/jade-1.11.0.tgz", + "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", + "dev": true, + "requires": { + "character-parser": "1.2.1", + "clean-css": "^3.1.9", + "commander": "~2.6.0", + "constantinople": "~3.0.1", + "jstransformer": "0.0.2", + "mkdirp": "~0.5.0", + "transformers": "2.1.0", + "uglify-js": "^2.4.19", + "void-elements": "~2.0.1", + "with": "~4.0.0" + }, + "dependencies": { + "clean-css": { + "version": "3.4.28", + "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-3.4.28.tgz", + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", + "dev": true, + "requires": { + "commander": "2.8.x", + "source-map": "0.4.x" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + } + } + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/js-levenshtein/download/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jscoverage": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/jscoverage/download/jscoverage-0.6.0.tgz", + "integrity": "sha1-9eE6nhN3Yzh2jB7gLhrnHVFc2sk=", + "dev": true, + "requires": { + "coffee-script": "*", + "commander": "^2.6.0", + "debug": "~1.0.3", + "ejs": "1.0.0", + "optimist": "^0.6.1", + "uglify-js": "~2.4.15", + "xfs": "~0.1.8" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true + }, + "debug": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-1.0.5.tgz", + "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ejs": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-1.0.0.tgz", + "integrity": "sha1-ycYKSKRu5FL7MqccMXuV5aofyz0=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.1.34", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.34.tgz", + "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "uglify-js": { + "version": "2.4.24", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.4.24.tgz", + "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", + "dev": true, + "requires": { + "async": "~0.2.6", + "source-map": "0.1.34", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "xfs": { + "version": "0.1.10", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.10.tgz", + "integrity": "sha1-TdL9uyraKifmxdRxy1fAleZStwM=", + "dev": true + }, + "yargs": { + "version": "3.5.4", + "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.5.4.tgz", + "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", + "window-size": "0.1.0", + "wordwrap": "0.0.2" + } + } + } + }, + "jsdom": { + "version": "6.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsdom/download/jsdom-6.2.0.tgz", + "integrity": "sha1-nead00VcGfMQBtJUJe3AHAx+1ok=", + "dev": true, + "requires": { + "acorn": "^1.2.1", + "acorn-globals": "^1.0.4", + "browser-request": ">= 0.3.1 < 0.4.0", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.29 < 0.3.0", + "escodegen": "^1.6.1", + "htmlparser2": ">= 3.7.3 < 4.0.0", + "nwmatcher": ">= 1.3.6 < 2.0.0", + "parse5": "^1.4.2", + "request": "^2.55.0", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^1.1.0", + "whatwg-url-compat": "~0.6.1", + "xml-name-validator": ">= 2.0.1 < 3.0.0", + "xmlhttprequest": ">= 1.6.0 < 2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/json-schema/download/json-schema-0.4.0.tgz", + "integrity": "sha1-995M9u+rg4666zI2R0y7paGTCrU=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/json-stable-stringify/download/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", + "dev": true, + "optional": true, + "requires": { + "jsonify": "^0.0.1" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/json3/download/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/jsonify/download/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/jsprim/download/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jstransformer": { + "version": "0.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/jstransformer/download/jstransformer-0.0.2.tgz", + "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^6.0.1" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/lazy-cache/download/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "less": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/less/download/less-3.0.1.tgz", + "integrity": "sha1-ui/qJKVjLMuMhCMNYEPAv5GFXjc=", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.4.1.tgz", + "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", + "dev": true, + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.3.4.tgz", + "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true, + "optional": true + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "litelog": { + "version": "2.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/litelog/download/litelog-2.0.9.tgz", + "integrity": "sha1-7BvyETZM3KzdCnsl/rVjNXxVLC4=", + "dev": true, + "requires": { + "xfs": "0.1.6" + }, + "dependencies": { + "xfs": { + "version": "0.1.6", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.6.tgz", + "integrity": "sha1-0hJZO/of4Ny7ogdAAsQbWGZWhFI=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._getnative/download/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.create/download/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true, + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarray/download/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.keys/download/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/lodash.some/download/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npm.alibaba-inc.com/mime-db/download/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npm.alibaba-inc.com/mime-types/download/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" + }, + "minami": { + "version": "1.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/minami/download/minami-1.2.3.tgz", + "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mocha": { + "version": "3.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/mocha/download/mocha-3.2.0.tgz", + "integrity": "sha1-fcT0XlCIB1FxpoiWgU5q6et6heM=", + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.5", + "glob": "7.0.5", + "growl": "1.9.2", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.1.3.tgz", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" + }, + "node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npm.alibaba-inc.com/node-releases/download/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "requires": { + "path-key": "^3.0.0" + } + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npm.alibaba-inc.com/nwmatcher/download/nwmatcher-1.4.4.tgz", + "integrity": "sha1-IoVjHzSpXw0Dlc2QDJbtObWPNG4=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/optionator/download/optionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/os-homedir/download/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npm.alibaba-inc.com/parse5/download/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.alibaba-inc.com/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npm.alibaba-inc.com/path-parse/download/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/picocolors/download/picocolors-1.0.0.tgz", + "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npm.alibaba-inc.com/private/download/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "promise": { + "version": "6.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-6.1.0.tgz", + "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", + "dev": true, + "requires": { + "asap": "~1.0.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npm.alibaba-inc.com/psl/download/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=" + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npm.alibaba-inc.com/regenerate/download/regenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/regenerate-unicode-properties/download/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.10.1.tgz", + "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/regjsgen/download/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.alibaba-inc.com/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/repeating/download/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + } + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npm.alibaba-inc.com/resolve/download/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/right-align/download/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/safer-buffer/download/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npm.alibaba-inc.com/sax/download/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + }, + "send": { + "version": "0.15.4", + "resolved": "https://registry.npm.alibaba-inc.com/send/download/send-0.15.4.tgz", + "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "requires": { + "debug": "2.6.8", + "depd": "~1.1.1", + "destroy": "~1.0.4", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "etag": "~1.8.0", + "fresh": "0.5.0", + "http-errors": "~1.6.2", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.3.1" + }, + "dependencies": { + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "requires": { + "ms": "2.0.0" + } + }, + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + } + } + }, + "serve-static": { + "version": "1.12.4", + "resolved": "https://registry.npm.alibaba-inc.com/serve-static/download/serve-static-1.12.4.tgz", + "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "requires": { + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "parseurl": "~1.3.1", + "send": "0.15.4" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/setprototypeof/download/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/sigmund/download/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npm.alibaba-inc.com/signal-exit/download/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npm.alibaba-inc.com/sntp/download/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npm.alibaba-inc.com/source-map-support/download/source-map-support-0.4.18.tgz", + "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npm.alibaba-inc.com/sshpk/download/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.3.0.tgz", + "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npm.alibaba-inc.com/stringstream/download/stringstream-0.0.6.tgz", + "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=" + }, + "stylus": { + "version": "0.53.0", + "resolved": "https://registry.npm.alibaba-inc.com/stylus/download/stylus-0.53.0.tgz", + "integrity": "sha1-a1HnZlCX+N1KaWXhTO6l5Ln9cko=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "3.2.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npm.alibaba-inc.com/superagent/download/superagent-3.8.3.tgz", + "integrity": "sha1-Rg6g29t9WxG8T3jeulZfhqF44Sg=", + "dev": true, + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-3.2.7.tgz", + "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "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" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "supertest": { + "version": "3.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supertest/download/supertest-3.0.0.tgz", + "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", + "dev": true, + "requires": { + "methods": "~1.1.2", + "superagent": "^3.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/supports-preserve-symlinks-flag/download/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npm.alibaba-inc.com/symbol-tree/download/symbol-tree-3.2.4.tgz", + "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", + "dev": true + }, + "tnpm-sync": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/tnpm-sync/download/tnpm-sync-1.0.1.tgz", + "integrity": "sha1-CW7fgvo4rbi6Bry7hrVLUbMeSOM=", + "requires": { + "execa": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "tough-cookie": { + "version": "1.2.0", + "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-1.2.0.tgz", + "integrity": "sha1-m36dmOdp6AtaqJnZRP5E4C6/gq0=", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/tr46/download/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "transformers": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/transformers/download/transformers-2.1.0.tgz", + "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", + "dev": true, + "requires": { + "css": "~1.0.8", + "promise": "~2.0", + "uglify-js": "~2.2.5" + }, + "dependencies": { + "is-promise": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-1.0.1.tgz", + "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", + "dev": true + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "~0.0.2" + } + }, + "promise": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-2.0.0.tgz", + "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", + "dev": true, + "requires": { + "is-promise": "~1" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "uglify-js": { + "version": "2.2.5", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.2.5.tgz", + "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", + "dev": true, + "requires": { + "optimist": "~0.3.5", + "source-map": "~0.1.7" + } + } + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/trim-right/download/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.alibaba-inc.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.alibaba-inc.com/tweetnacl/download/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==" + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.alibaba-inc.com/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npm.alibaba-inc.com/uri-js/download/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-8.3.2.tgz", + "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/void-elements/download/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npm.alibaba-inc.com/whatwg-url-compat/download/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "dev": true, + "requires": { + "tr46": "~0.0.1" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "requires": { + "isexe": "^2.0.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npm.alibaba-inc.com/window-size/download/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "with": { + "version": "4.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/with/download/with-4.0.3.tgz", + "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", + "dev": true, + "requires": { + "acorn": "^1.0.1", + "acorn-globals": "^1.0.3" + }, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", + "dev": true + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.alibaba-inc.com/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xfs": { + "version": "0.2.6", + "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.6.tgz", + "integrity": "sha1-nn5L3JO8o5wjFcPSTFRHM8/rITY=" + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npm.alibaba-inc.com/xml-name-validator/download/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npm.alibaba-inc.com/xmlhttprequest/download/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.alibaba-inc.com/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.alibaba-inc.com/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.alibaba-inc.com/yargs-parser/download/yargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/package.json b/package.json index 4c7cc45..42ac078 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.11", + "version": "5.0.0-beta.12", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index fe78c93..fb84b1f 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -128,7 +128,7 @@ return remoteBase[rbase] + name.substr(offset + 1); } // 定制业务逻辑 ?env=publish === 不加 env - // 此逻辑加在 cube 处不合理 + // 此逻辑加在 cube 似乎处不合理 function removePublishName(name) { var _a = String(name).split('?'), main = _a[0], @@ -189,6 +189,7 @@ var inited = false; /** 未初始化时添加的等待请求的 module */ var loadQueue = []; + var combineFailTime = 10000; // watch! 旧版使用 fetch 容易产生问题 let requestMethod = 'script'; // 'fetch' | 'script' @@ -309,7 +310,7 @@ load(require, referer); // 标记超时了 } - }, 3000), + }, combineFailTime), failed: false, }; } @@ -522,6 +523,10 @@ esModule = config.esModule; } + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } + inited = true; while (loadQueue.length) { @@ -1348,7 +1353,7 @@ }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.11'; + var cubeVersion = '5.0.0-beta.12'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 5d0b768..6874bf1 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.11 + * Cube v5.0.0-beta.12 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},3e3),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===M?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[];let M='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.11'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),a.requestMethod&&(M=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var N={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!N[d])return N[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var O=t.currentScript;if(O){var P=O.dataset;P.base&&(p.init(P),p.use(P.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.12'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.11'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.12'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 6fd6a82a122aca2186a81fafaaa802e28473b604 Mon Sep 17 00:00:00 2001 From: queti <> Date: Thu, 17 Aug 2023 17:21:22 +0800 Subject: [PATCH 48/74] feat: support combine --- package.json | 2 +- runtime/cube-reconstruction.js | 2470 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 1226 insertions(+), 1254 deletions(-) diff --git a/package.json b/package.json index 42ac078..cea4fc0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.12", + "version": "5.0.0-beta.13", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index fb84b1f..fe6afc0 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,728 +1,720 @@ -// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 -(function () { - var __assign = function () { - __assign = - Object.assign || - function __assign(t) { +// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 +(function () { + +var __assign = function() { + __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; - }; + }; return __assign.apply(this, arguments); - }; +}; - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; } - } + } return to.concat(ar || Array.prototype.slice.call(from)); - } - - // 支持 cube 的一些工具方法 - function noop() {} - function baseCodeProxy(c) { +} + +// 支持 cube 的一些工具方法 +function noop() { } +function baseCodeProxy(c) { return c; - } - function combineExecute(c) { +} +function combineExecute(c) { return 'Cube.cStart();' + c + ';Cube.cStop();'; - } - function fetchCubeCode(url, inputCodeProxy, responseAdapter) { +} +function fetchCubeCode(url, inputCodeProxy, responseAdapter) { var codeProxy = inputCodeProxy || baseCodeProxy; return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, + headers: { + 'Content-Type': 'text/plain', + }, }) - .then(function (response) { - if (responseAdapter) responseAdapter(response); + .then(function (response) { + if (responseAdapter) + responseAdapter(response); return response; - }) - .then(function (response) { - return response.text(); - }) - .then(function (code) { - return new Function(codeProxy(code))(); - }); - } - var head = document.querySelector('head'); - /** 原有 cube 请求方法 */ - function scriptCubeCode(url) { + }) + .then(function (response) { return response.text(); }) + .then(function (code) { return new Function(codeProxy(code))(); }); +} +var head = document.querySelector('head'); +/** 原有 cube 请求方法 */ +function scriptCubeCode(url) { var script = document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.onerror = function () { - console.error('load module failed.'); + console.error("load module failed."); }; script.src = url; head.appendChild(script); - } - function fixMododulePath(paths, remoteSeparator) { +} +function fixMododulePath(paths, remoteSeparator) { var len = paths.length; var mod; for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } + else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } } - } } return paths; - } - var parseCssRe = /([^};]+)(\{[^}]+\})/g; - /** 原有 css 请求方法 */ - function scriptCubeCss(originCss, namespace, file) { +} +var parseCssRe = /([^};]+)(\{[^}]+\})/g; +/** 原有 css 请求方法 */ +function scriptCubeCss(originCss, namespace, file) { var css = originCss; if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; }); - return selectors.join(',') + m2; - }); } var style = document.createElement('style'); style.setAttribute('type', 'text/css'); if (file) { - style.setAttribute('mod', file); + style.setAttribute('mod', file); } if (namespace) { - style.setAttribute('ns', namespace); + style.setAttribute('ns', namespace); } head.appendChild(style); style.innerHTML = css; return css; - } - function parseQueryString(param) { +} +function parseQueryString(param) { var kvs = param.split('&'); var obj = {}; kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; }); return obj; - } - /** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ - function rebase(name, config) { - var base = config.base, - remoteSeparator = config.remoteSeparator, - remoteBase = config.remoteBase; +} +/** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ +function rebase(name, config) { + var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; var defaultPath = base + name; var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) return defaultPath; + if (offset <= 0) + return defaultPath; var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) return defaultPath; + if (!remoteBase[rbase]) + return defaultPath; return remoteBase[rbase] + name.substr(offset + 1); - } - // 定制业务逻辑 ?env=publish === 不加 env - // 此逻辑加在 cube 似乎处不合理 - function removePublishName(name) { - var _a = String(name).split('?'), - main = _a[0], - params = _a[1]; +} +// 定制业务逻辑 ?env=publish === 不加 env +// 此逻辑加在 cube 似乎处不合理 +function removePublishName(name) { + var _a = String(name).split('?'), main = _a[0], params = _a[1]; if (params) { - var kvs = params.split('&'); - if (kvs.includes('env=publish')) { - kvs = kvs.filter(function (v) { - return v !== 'env=publish'; - }); - var newParams = kvs.join('&'); - if (newParams) { - return main + '?' + newParams; - } else { - return main; - } - } - } - return name; - } - - // import Cube from 'node-cube/runtime/cube'; - - function mockClassialCube() { - /* short global val */ - var global = window; - var doc = document; - var log = console; - - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = true; - - var mockedProcess = { - env: { NODE_ENV: 'production' }, - }; - var mockedGlobal = undefined; - var esModule = false; - - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - var registerArr = []; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - var combineMap = {}; - - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - var combineFailTime = 10000; - - // watch! 旧版使用 fetch 容易产生问题 - let requestMethod = 'script'; // 'fetch' | 'script' - // let isIntercepted = false; - - /** - * The require function - * @param module - * @param namespace - * @returns {*} - * @private - */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); - } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; - } - } - - /** - * This function creates the load function - */ - function __cube_load_creator__(referer) { - /** - * The load function - * @param module - * @param namespace - * @param cb - * @private - */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); - } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); - } - }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; - - function checkAllDownloaded() { - if (loadQueue.length) { - return false; - } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { - return false; - } - } - startAppAndCallback(); - } - - /** - * 下载模块 - * @param requires - * @param referer - * @param root 是否为顶层请求组件 - */ - function load(requires, referer, root) { - if (typeof requires === 'string') { - requires = [requires]; - } - if (!inited) { - loadQueue.push([requires, referer]); - return; - } - - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - if ( - combineMap[require] && - combineMap[require].failed && - installedModules[require] && - installedModules[require].loaded === false - ); - else { - return; - } - } - - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, - }; - - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; - - var query = []; - if (version) { - query.push(version); - } - // 目前仅根节点(组件级别)发起 combine - if (combine && root) { - query.push('combine=true'); - installedModules[require].combine = true; - if (!combineMap[require]) { - combineMap[require] = { - start: Date.now(), - timeout: setTimeout(() => { - if (loading[require]) { - combineMap[require].failed = true; - load(require, referer); - // 标记超时了 - } - }, combineFailTime), - failed: false, - }; - } - } - - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } - - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - - if (requestMethod === 'fetch') { - if (combine && combineMap[require] && !combineMap[require].traceId) { - fetchCubeCode(srcPath, undefined, (res) => { - if (res.headers.has('request-id')) { - combineMap[require].traceId = res.headers.get('request-id'); - } - }); - } else { - fetchCubeCode(srcPath); - } - } else { - scriptCubeCode(srcPath); - } - - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - for (const register of registerArr) { - if (require && register.match.test(require)) { - return register.module; - } - } - return false; - } - - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = getGlobalRegister(module) || installedModules[module]; - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; - } - } - if (!m.fired) { - m.fired = true; - if (strict) { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } else { - try { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } catch (e) { - log.error(e); - m.exports = {}; - } - } - } - return isEsModule(m.exports) ? m.exports.default : m.exports; - } - - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); - } - } - - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - // 定制业务逻辑 ?env=publish === 不加 env - mod = removePublishName(mod); - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; - } - // 记录或清理合并接口信息 - if (combineMap[name] && !mod.loaded) { - if (!combineMap[name].failed) { - clearTimeout(combineMap[name].timeout); - delete combineMap[name]; - } else { - combineMap[name].end = Date.now(); - } - } - - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; - - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); - } - } - - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; - - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } - - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine) { - combine = config.combine; - } - if (config.requestMethod) { - requestMethod = config.requestMethod; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } - - if (config.combineFailTime) { - combineFailTime = config.combineFailTime; - } - - inited = true; - - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } - - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; - - if (typeof mods === 'string') { - mods = [removePublishName(mods)]; - } else { - mods = mods.map(removePublishName); - } - - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } - - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); - } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; - - return function (exports) { - if (firing) { - return; + var kvs = params.split('&'); + if (kvs.includes('env=publish')) { + kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); + var newParams = kvs.join('&'); + if (newParams) { + return main + '?' + newParams; } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; + else { + return main; } - }; - })() - ); - load(mods, referer, true); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, - }; - - if (matchType === 'module') { - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - }); - } - - return this; - }; - /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code - */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; - } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; - - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; - - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; - } - if (!m.fired) { - unfired[i] = m; - } } - } - - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); - }; - - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; - } - - /** - * intergration with - */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); - }); - } - } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - combine, - combineMap, - }; - }, - }); - - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; } - } - - /** - * 默认配置项变量 - */ - var DEFAULT_CUBE_CONFIG = { + return name; +} + +// import Cube from 'node-cube/runtime/cube'; + +function mockClassialCube() { + /* short global val */ + var global = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + var registerArr = []; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + var combineFailTime = 10000; + + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + + /** + * The require function + * @param module + * @param namespace + * @returns {*} + * @private + */ + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); + } else { + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; + } + } + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); + } + }; + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; + } + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ) ; else { + return; + } + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; + + var query = []; + if (version) { + query.push(version); + } + // 目前仅根节点(组件级别)发起 combine + if (combine && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, combineFailTime), + failed: false, + }; + } + } + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + + if (requestMethod === 'fetch') { + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode(srcPath, undefined, (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + }); + } else { + fetchCubeCode(srcPath); + } + } else { + scriptCubeCode(srcPath); + } + + requireMap[mod] = require; + loading[require] = true; + }); + checkAllDownloaded(); + } + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } + } + return false; + } + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } + } + } + return isEsModule(m.exports) ? m.exports.default : m.exports; + } + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } + } + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; + } else { + combineMap[name].end = Date.now(); + } + } + + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } + } + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine !== undefined) { + combine = config.combine; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof mods === 'string') { + mods = [removePublishName(mods)]; + } else { + mods = mods.map(removePublishName); + } + + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; + + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + load(mods, referer, true); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, + }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + + return this; + }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } + } + } + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); + } else { + global['Cube'] = Cube; + } + + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } + } + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, + }; + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; + } +} + +/** + * 默认配置项变量 + */ +var DEFAULT_CUBE_CONFIG = { base: '', remoteBase: {}, remoteSeparator: ':', mockedProcess: { - env: { NODE_ENV: 'production' }, + env: { NODE_ENV: 'production' }, }, mockedGlobal: undefined, /** 这个字段应该已经废弃了 */ @@ -744,620 +736,600 @@ fetchUndeclaredModule: false, /** 是否聚合请求 */ aggregateFetch: true, - }; - /** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ - var Cube = /** @class */ (function () { +}; +/** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ +var Cube = /** @class */ (function () { function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: false, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - // 是否处于文件合并执行状态 - fileExecuting: false, - // 聚合请求 - aggregateLoading: {}, - delayTrigger: undefined, - // TODO 新版支持 combine 兜底(combineMap) - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - var _a; - if (option === void 0) { - option = { matchType: 'version' }; - } - var matchType = option.matchType; - if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: true, + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: false, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + // 是否处于文件合并执行状态 + fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, + // TODO 新版支持 combine 兜底(combineMap) }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp('^datav:/npm/'.concat(moduleName, '/([^/]+)?$')), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e, _f, _g; - if (_this.state.inited) { - console.warn('Cube 重复初始化,可能产生资源请求错误'); - } - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + var _a; + if (option === void 0) { option = { matchType: 'version' }; } + var matchType = option.matchType; + if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + _this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: true, + }; + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), + module: _this.state.installedModules[moduleName], + }); } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = - (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.config.fetchUndeclaredModule = - (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; - _this.config.aggregateFetch = - (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; - _this.state.inited = true; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = - typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - var entry = { - callback: callback, - loadSource: {}, - targets: __spreadArray([], moduleNames, true), }; - if (_this.config.aggregateFetch); - else { - moduleNames.forEach(function (i) { - entry.loadSource[i] = false; - }); - } - _this.state.entrances.set(moduleNames, entry); - moduleNames.forEach(function (mName) { - return _this._load(mName, moduleNames); - }); - }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); - }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { - var _a; - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; - } else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleName, entryKey) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); - } - if (!_this.config.aggregateFetch) { - var entry = _this.state.entrances.get(entryKey); - if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { - entry.loadSource[moduleName] = false; - } - } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, entryKey]); - return; - } - var module = _this._getModule(moduleName); - if (module) { - _this._addReferToDependency(moduleName, module, entryKey); - if (module.loaded) { - _this._triggerCallback(moduleName, module); - } - return; - } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - }, - loaded: false, - firing: false, - fired: false, + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d, _e, _f, _g; + if (_this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; + _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; + _this.state.inited = true; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } + else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + var entry = { + callback: callback, + loadSource: {}, + targets: __spreadArray([], moduleNames, true), + }; + if (_this.config.aggregateFetch) ; + else { + moduleNames.forEach(function (i) { + entry.loadSource[i] = false; + }); + } + _this.state.entrances.set(moduleNames, entry); + moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); }; - _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - _this._triggerCallback(moduleName, module); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (moduleName, module) { - if (!module.loaded) return; - if (_this.config.aggregateFetch) { - module.dep.forEach(function (m) { + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { var _a; - if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { - return; + if (typeof responseName === 'number') { + responseName = responseName.toString(); } - _this._load(m, []); - }); - if (_this.state.aggregateLoading[moduleName]) { - delete _this.state.aggregateLoading[moduleName]; - _this._triggerAllCallback(); - } - return; - } - var refDep = module.refer; - var finishedEntry = []; - refDep.entryDep.forEach(function (entryKey) { - var entry = _this.state.entrances.get(entryKey); - if (entry) { - entry.loadSource[moduleName] = true; - var next_1 = true; - if (!module.fired) { - module.dep.forEach(function (m) { - if (entry.loadSource[m]) return; - var subModule = _this._getModule(m); - if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) return; - next_1 = false; - _this._load(m, entryKey); - }); + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; } - if (next_1) { - // 考虑标记 unload 提速 - if ( - Object.values(entry.loadSource).every(function (i) { - return i; - }) - ) { - _this._triggerEntryCallback(entryKey, entry); - } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; } - } else { - finishedEntry.push(entryKey); - } - }); - if (finishedEntry.length) { - module.refer.entryDep = refDep.entryDep.filter(function (i) { - return !finishedEntry.includes(i); - }); - } - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entryKey, entry) { - var readyCallback = true; - entry.targets.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) return; - // 理论上不会不存在 - if (module.firing) { - readyCallback = false; - return; - } - _this._fireModule(moduleName); - if (module.fired) return; - readyCallback = false; - }); - if (readyCallback) { - entry.callback.apply( - entry, - entry.targets.map(function (e) { - return _this.state.installedModules[e].exports; - }) - ); - _this.state.entrances.delete(entryKey); - } - }; - this._triggerAllCallback = function () { - if (_this.state.delayTrigger) return; - // this.state.delayTrigger = setTimeout(() => { - // this.state.delayTrigger = undefined; - if (_this.state.pendingQueue.length) return; - if (Object.keys(_this.state.aggregateLoading).length) return; - _this.state.entrances.forEach(function (entry, entryKey) { - _this._triggerEntryCallback(entryKey, entry); - }); - // }); - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.loaded) return false; - if (module.fired) return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } catch (e) { - if (_this.config.fetchUndeclaredModule && e.message === 'Cube inner denpendency lost; refetch inited') { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } finally { - module.firing = false; - if (_this.config.fetchUndeclaredModule) { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - module.refer.entryDep.forEach(function (eKey) { - _this._load(name, eKey); - }); - console.warn( - 'Cube module '.concat(moduleName, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(name) - ); + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; + } + else { + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = function (moduleName, entryKey) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.config.aggregateFetch) { + var entry = _this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; } - } else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { - return function (moduleName, namespace) { - if (namespace === undefined) { + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, entryKey]); + return; + } var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; + if (module) { + _this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + _this._triggerCallback(moduleName, module); + } + return; } - var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { - if (_this.config.fetchUndeclaredModule) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } else { - _this.state.lostDepModule[selfName] = [moduleName]; + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + }, + loaded: false, + firing: false, + fired: false, + }; + _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + _this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (moduleName, module) { + if (!module.loaded) + return; + if (_this.config.aggregateFetch) { + module.dep.forEach(function (m) { + var _a; + if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._load(m, []); + }); + if (_this.state.aggregateLoading[moduleName]) { + delete _this.state.aggregateLoading[moduleName]; + _this._triggerAllCallback(); } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error('Cube inner denpendency lost; refetch inited'); - } else { - throw new Error('Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 '.concat(moduleName, ' \u5931\u8D25')); - } - } else { - return module.exports; + return; } - } else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getModule(moduleName); - if (!module || !module.loaded) return; - if (module.fired) { - css = module.exports; + var refDep = module.refer; + var finishedEntry = []; + refDep.entryDep.forEach(function (entryKey) { + var entry = _this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + var next_1 = true; + if (!module.fired) { + module.dep.forEach(function (m) { + if (entry.loadSource[m]) + return; + var subModule = _this._getModule(m); + if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) + return; + next_1 = false; + _this._load(m, entryKey); + }); + } + if (next_1) { + // 考虑标记 unload 提速 + if (Object.values(entry.loadSource).every(function (i) { return i; })) { + _this._triggerEntryCallback(entryKey, entry); + } + } + } + else { + finishedEntry.push(entryKey); + } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entryKey, entry) { + var readyCallback = true; + entry.targets.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) + return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; + } + _this._fireModule(moduleName); + if (module.fired) + return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); + _this.state.entrances.delete(entryKey); } - return _this.css(css, namespace, moduleName); - } }; - }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); + this._triggerAllCallback = function () { + if (_this.state.delayTrigger) + return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (_this.state.pendingQueue.length) + return; + if (Object.keys(_this.state.aggregateLoading).length) + return; + _this.state.entrances.forEach(function (entry, entryKey) { + _this._triggerEntryCallback(entryKey, entry); }); - } + // }); + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.loaded) + return false; + if (module.fired) + return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + var fireResult = true; + try { + module.firing = true; + var exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } + catch (e) { + if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } + else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } + finally { + module.firing = false; + if (_this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach(function (eKey) { + _this._load(name, eKey); + }); + console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } + } + else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { + if (_this.config.fetchUndeclaredModule) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } + else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error("Cube inner denpendency lost; refetch inited"); + } + else { + throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); + } + } + else { + return module.exports; + } + } + else { + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getModule(moduleName); + if (!module || !module.loaded) + return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); + } + }; }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } + else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); + }); + } + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + if (_this.config.version) { + query.push(_this.config.version); + } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_1 = parseQueryString(custom); + query.push(Object.keys(customArgs_1).map(function (c) { + return "".concat(c, "=").concat(customArgs_1[c]); + })); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToDependency = function (moduleName, module, referer) { + if (_this.config.aggregateFetch) { + if (!module.loaded) { + _this.state.aggregateLoading[moduleName] = true; + } + return; + } + var refDep = module.refer; + if (!referer) { + return; + } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); + } + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getModule = function (name) { + // TODO 此处有问题 理论上优先选取 globalRegister + // 但考虑到正则匹配的耗时 每次匹配耗时过长 + // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); + console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); + console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), - name = _a[0], - custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push( - Object.keys(customArgs_1).map(function (c) { - return ''.concat(c, '=').concat(customArgs_1[c]); - }) - ); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToDependency = function (moduleName, module, referer) { - if (_this.config.aggregateFetch) { - if (!module.loaded) { - _this.state.aggregateLoading[moduleName] = true; - } - return; - } - var refDep = module.refer; - if (!referer) { - return; - } - if (!refDep.entryDep.includes(referer)) { - refDep.entryDep.push(referer); - } - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getModule = function (name) { - // TODO 此处有问题 理论上优先选取 globalRegister - // 但考虑到正则匹配的耗时 每次匹配耗时过长 - // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info( - 'unloaded:', - Object.fromEntries( - Object.entries(_this.state.installedModules).filter(function (m) { - return !m[1].loaded; - }) - ) - ); - console.info( - 'unfired:', - Object.fromEntries( - Object.entries(_this.state.installedModules).filter(function (m) { - return !m[1].fired; - }) - ) - ); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); - }; } return Cube; - })(); - function getStringOnlyObj() { - return new Proxy( - {}, - { +}()); +function getStringOnlyObj() { + return new Proxy({}, { get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); }, set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); }, - } - ); - } - /** 全局初始化单例 */ - function setGlobalCube(oldVersion) { + }); +} +/** 全局初始化单例 */ +function setGlobalCube(oldVersion) { var alias = 'Cube'; var global = window; if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; } if (oldVersion) { - mockClassialCube(); - } else { - var cube_1 = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube_1.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube_1).includes(key)) { - return cube_1[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; + mockClassialCube(); } - var cubeVersion = '5.0.0-beta.12'; + else { + var cube_1 = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube_1.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube_1).includes(key)) { + return cube_1[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + } + var cubeVersion = '5.0.0-beta.13'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; - } - - setGlobalCube(true); -})(); +} + +setGlobalCube(true); +})(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 6874bf1..59b4ed1 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.12 + * Cube v5.0.0-beta.13 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.12'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.13'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.12'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.13'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 5ae216780d80bb1fbb39a59c5c21d098fad465b4 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 18 Aug 2023 11:06:01 +0800 Subject: [PATCH 49/74] =?UTF-8?q?feat:=20=E9=92=88=E5=AF=B9=20service=20?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=20cors=20=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 5 +++-- package-lock.json | 52 +++++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + service.js | 3 ++- 4 files changed, 56 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 9e090c5..880fe7d 100644 --- a/index.js +++ b/index.js @@ -37,12 +37,13 @@ Cube.middleware = function (cube, config) { * - base {Path} http prefix * - processors {Array} extenal processors * - cached {Path} the cached path + * @param {Object} servOpt config for service * @return {cube} */ -Cube.service = function (config) { +Cube.service = function (config, servOpt) { let cube = new Cube(config); let service = require('./service'); - service.init(cube); + service.init(cube, servOpt); return cube; }; /** diff --git a/package-lock.json b/package-lock.json index 617ff24..c4b4992 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "node-cube", - "version": "5.0.0-beta.12", + "version": "5.0.0-beta.13", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "node-cube", - "version": "5.0.0-beta.12", + "version": "5.0.0-beta.13", "license": "MIT", "dependencies": { "async": "2.6.0", @@ -17,6 +17,7 @@ "clean-css": "^4.1.4", "commander": "4.0.1", "connect": "^3.6.3", + "cors": "^2.8.5", "debug": "4.1.0", "lodash": "4.17.15", "serve-static": "1.12.4", @@ -2921,6 +2922,18 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.anpm.alibaba-inc.com/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", @@ -4884,6 +4897,14 @@ "node": "*" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.anpm.alibaba-inc.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", @@ -5914,6 +5935,14 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.anpm.alibaba-inc.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", @@ -8468,6 +8497,15 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.anpm.alibaba-inc.com/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", @@ -10083,6 +10121,11 @@ "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.anpm.alibaba-inc.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", @@ -10920,6 +10963,11 @@ "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-8.3.2.tgz", "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.anpm.alibaba-inc.com/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", diff --git a/package.json b/package.json index cea4fc0..6362aae 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "clean-css": "^4.1.4", "commander": "4.0.1", "connect": "^3.6.3", + "cors": "^2.8.5", "debug": "4.1.0", "lodash": "4.17.15", "serve-static": "1.12.4", diff --git a/service.js b/service.js index ac505e4..90da22f 100644 --- a/service.js +++ b/service.js @@ -199,7 +199,7 @@ function createMiddleware(cube, serveStatic, checkSkip) { * * @param {Cube} cube instance */ -exports.init = function (cube) { +exports.init = function (cube, servOpt = {}) { let config = cube.config; let root = config.root; let serveStatic; @@ -247,6 +247,7 @@ exports.init = function (cube) { }; } else { app = connect(); + servOpt.cors && app.use(cors(servOpt.cors)); app.use(config.router, config.static || config.cached ? serveStatic : cubeMiddleware); app.use(function(err, req, res, next) { if (/favicon\.ico$/.test(req.url)) { From a50be81faf7000701016317a7ffbdb6cf326d7f4 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 18 Aug 2023 11:21:33 +0800 Subject: [PATCH 50/74] release: v5.0.0-beta.14 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6362aae..eff77fb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.13", + "version": "5.0.0-beta.14", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 59b4ed1..038e069 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.13 + * Cube v5.0.0-beta.14 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.13'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.14'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.13'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.14'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 66ff774f802d47add03a4a3f064c7de2677c5fe9 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 18 Aug 2023 18:02:30 +0800 Subject: [PATCH 51/74] release: v5.0.0-beta.15 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- service.js | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index eff77fb..1e366fc 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.14", + "version": "5.0.0-beta.15", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 038e069..b46300e 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.14 + * Cube v5.0.0-beta.15 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.14'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.15'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.14'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.15'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file diff --git a/service.js b/service.js index 90da22f..9f66edb 100644 --- a/service.js +++ b/service.js @@ -9,6 +9,7 @@ const path = require('path'); const connect = require('connect'); const connectStatic = require('serve-static'); const async = require('async'); +const cors = require('cors'); function createMiddleware(cube, serveStatic, checkSkip) { let config = cube.config; From edd600589243d32577ca4e3ec1e4848e4d400885 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 28 Aug 2023 10:37:59 +0800 Subject: [PATCH 52/74] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20connect=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/service.js b/service.js index 9f66edb..9e847ea 100644 --- a/service.js +++ b/service.js @@ -233,7 +233,8 @@ exports.init = function (cube, servOpt = {}) { * fallback the 404 request */ serveStatic = connectStatic(config.cached ? config.cached : config.root, { - maxAge: config.maxAge + maxAge: config.maxAge, + ...(servOpt.connect || {}), }); /** @@ -248,7 +249,7 @@ exports.init = function (cube, servOpt = {}) { }; } else { app = connect(); - servOpt.cors && app.use(cors(servOpt.cors)); + app.use(cors(servOpt.cors || {})); app.use(config.router, config.static || config.cached ? serveStatic : cubeMiddleware); app.use(function(err, req, res, next) { if (/favicon\.ico$/.test(req.url)) { From d4cf6cb2ead0a90a8617b8d772f9425fa22cc844 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 28 Aug 2023 10:46:12 +0800 Subject: [PATCH 53/74] release: v5.0.0-beta.16 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1e366fc..8bc6cda 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.15", + "version": "5.0.0-beta.16", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index b46300e..9ff8944 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.15 + * Cube v5.0.0-beta.16 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.15'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.16'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.15'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.16'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 9b7d98b3a1f7dcc35b3d422ac8940c5ee42f3e4e Mon Sep 17 00:00:00 2001 From: queti <> Date: Fri, 15 Dec 2023 17:01:07 +0800 Subject: [PATCH 54/74] feat: cube support combine black list --- runtime/cube-reconstruction.js | 19 +++++++++++++++++-- runtime/cube-reconstruction.min.js | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index fe6afc0..03e3a9c 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -177,6 +177,8 @@ function mockClassialCube() { }; // The module cache var loading = {}; var combineMap = {}; + // type BlackList = Array + var combineBlackList = []; /* store requires before init */ var inited = false; @@ -290,7 +292,7 @@ function mockClassialCube() { query.push(version); } // 目前仅根节点(组件级别)发起 combine - if (combine && root) { + if (checkCombineState(srcPath) && root) { query.push('combine=true'); installedModules[require].combine = true; if (!combineMap[require]) { @@ -323,6 +325,7 @@ function mockClassialCube() { } if (requestMethod === 'fetch') { + // combine 接口失败后的 traceId 记录排查 if (combine && combineMap[require] && !combineMap[require].traceId) { fetchCubeCode(srcPath, undefined, (res) => { if (res.headers.has('request-id')) { @@ -342,6 +345,15 @@ function mockClassialCube() { checkAllDownloaded(); } + function checkCombineState(path) { + if (!combine) return false; + if (combineBlackList.length) { + return !combineBlackList.some((black) => { + return !!path.match(black); + }); + } + } + // require => datav:/npm/react/16.4.6?env=xxx function getGlobalRegister(require) { for (const register of registerArr) { @@ -507,6 +519,9 @@ function mockClassialCube() { if (config.combine !== undefined) { combine = config.combine; } + if (config.combineBlackList) { + combineBlackList = config.combineBlackList; + } if (config.requestMethod) { requestMethod = config.requestMethod; } @@ -1325,7 +1340,7 @@ function setGlobalCube(oldVersion) { }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.13'; + var cubeVersion = '5.0.0-beta.14'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 59b4ed1..9a8a4e6 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! * Cube v5.0.0-beta.13 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return m(a);var c=m(a);return p.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,p.use(b,a,d)):p.use(b,a,function(a){a=p.css(a,c,b),d&&d(a)})}}function d(){if(L.length)return!1;for(var a in I)if(I.hasOwnProperty(a))return!1;o()}function l(a,b,c){return'string'===typeof a&&(a=[a]),K?void(a.forEach(function(a){if(H[a]||n(a))if(J[a]&&J[a].failed&&H[a]&&!1===H[a].loaded);else return;H[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:v,remoteSeparator:x,remoteBase:w}),k=h||v+d,m=[];if(r&&m.push(r),A&&c&&(m.push('combine=true'),H[a].combine=!0,!J[a]&&(J[a]={start:Date.now(),timeout:setTimeout(()=>{I[a]&&(J[a].failed=!0,l(a,b))},M),failed:!1})),g){const a=i(g);Array.prototype.push.apply(m,Object.keys(a).map((b)=>`${b}=${a[b]}`))}m.length&&(k=k+'?'+m.join('&')),'fetch'===N?A&&J[a]&&!J[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(J[a].traceId=b.headers.get('request-id'))}):e(k):f(k),F[d]=a,I[a]=!0}),d()):void L.push([a,b])}function n(a){for(const b of G)if(a&&b.match.test(a))return b.module;return!1}function m(b){var d=n(b)||H[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(z)throw a;else return u.error(a),{}}if(!d.fired)if(d.fired=!0,z)d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C]);else try{d.exports=d.fn.apply(s,[d,d.exports,a,c(b),B,C])}catch(a){u.error(a),d.exports={}}return q(d.exports)?d.exports.default:d.exports}function o(){for(let[a,b]of E)a.length&&a.forEach(function(c){if(I[c])return;var d=0;const e=m(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&E.delete(a)})}function p(a,b,c){const d=a+'';a=F[a]||a;var e=H[a];e=k(e),e||(e=H[a]={exports:{},fired:!1}),J[a]&&!e.loaded&&(J[a].failed?J[a].end=Date.now():(clearTimeout(J[a].timeout),delete J[a])),e.loaded=!0,e.fn=c,F[d]&&delete F[d],I[a]?(delete I[a],l(b,a)):b.length&&l(b,a)}function q(a){return D&&a&&'object'===typeof a&&a.__esModule}var r,s=window,t=document,u=console,v='',w={},x=':',y='utf-8',z=!0,A=!0,B={env:{NODE_ENV:'production'}},C=void 0,D=!1,E=new Map,F={},G=[],H={},I={},J={},K=!1,L=[],M=1e4;let N='script';p.setRemoteBase=function(a){Object.assign(w,a)},p.toString=function(){return'Cube:v5.0.0-beta.13'},p.init=function(a){if(a.base&&'/'!==a.base&&(v=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(w[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(y=a.charset),a.version&&(r=a.version),void 0!==a.strict&&(z=a.strict),a.env&&(B.env.NODE_ENV=a.env),a.global&&(C=a.global),void 0!==a.combine&&(A=a.combine),a.requestMethod&&(N=a.requestMethod),void 0!==a.esModule&&(D=a.esModule),a.combineFailTime&&(M=a.combineFailTime),K=!0;L.length;){var c=L.shift();l(c[0],c[1])}return this},p.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,x)),E.has(a)||E.set(a,[]),E.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(s,b),!0):void 0}}()),l(a,c,!0),this},p.register=function(a,c,{matchType:d='version'}={}){return H[a]?u.warn('Cube Warning: Module \''+a+'\' already registered'):(H[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&G.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:H[a]}),this)};var O={};p.css=function(a,b,c){if(a){var d=c+'@'+b;if(!O[d])return O[d]=!0,h(a,b,c)}},p.debug=function(){u.error('Cube Error: Cube.debug nolonger supported')},p.cache=function(){var a,b,c={},d={};for(a in H)H.hasOwnProperty(a)&&(b=H[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));u.info('modules:',H),u.info('unloaded:',c),u.info('unfired:',d)},s.Cube?u.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):s.Cube=p;var P=t.currentScript;if(P){var Q=P.dataset;Q.base&&(p.init(Q),p.use(Q.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(p,'config',{get(){return{base:v,remoteBase:w,remoteSeparator:x,version:r,strict:z,debug:!0,esModule:D,mockedGlobal:C,mockedProcess:B,charset:y,combine:A,combineMap:J}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===P?B&&K[a]&&!K[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.13'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(P=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var Q={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Q[d])return Q[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var R=u.currentScript;if(R){var S=R.dataset;S.base&&(q.init(S),q.use(S.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Fri, 15 Dec 2023 17:57:16 +0800 Subject: [PATCH 55/74] chore: adjust version --- runtime/cube-reconstruction.js | 1176 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 770 +----------------- 2 files changed, 591 insertions(+), 1355 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 03e3a9c..d39ca47 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,5 +1,5 @@ -// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 -(function () { +// WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 +(function () { var __assign = function() { __assign = Object.assign || function __assign(t) { @@ -20,8 +20,8 @@ function __spreadArray(to, from, pack) { } } return to.concat(ar || Array.prototype.slice.call(from)); -} - +} + // 支持 cube 的一些工具方法 function noop() { } function baseCodeProxy(c) { @@ -141,586 +141,586 @@ function removePublishName(name) { } } return name; -} - -// import Cube from 'node-cube/runtime/cube'; - -function mockClassialCube() { - /* short global val */ - var global = window; - var doc = document; - var log = console; - - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = true; - - var mockedProcess = { - env: { NODE_ENV: 'production' }, - }; - var mockedGlobal = undefined; - var esModule = false; - - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - var registerArr = []; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - var combineMap = {}; - // type BlackList = Array - var combineBlackList = []; - - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - var combineFailTime = 10000; - - // watch! 旧版使用 fetch 容易产生问题 - let requestMethod = 'script'; // 'fetch' | 'script' - // let isIntercepted = false; - - /** - * The require function - * @param module - * @param namespace - * @returns {*} - * @private - */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); - } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; - } - } - - /** - * This function creates the load function - */ - function __cube_load_creator__(referer) { - /** - * The load function - * @param module - * @param namespace - * @param cb - * @private - */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); - } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); - } - }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; - - function checkAllDownloaded() { - if (loadQueue.length) { - return false; - } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { - return false; - } - } - startAppAndCallback(); - } - - /** - * 下载模块 - * @param requires - * @param referer - * @param root 是否为顶层请求组件 - */ - function load(requires, referer, root) { - if (typeof requires === 'string') { - requires = [requires]; - } - if (!inited) { - loadQueue.push([requires, referer]); - return; - } - - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - if ( - combineMap[require] && - combineMap[require].failed && - installedModules[require] && - installedModules[require].loaded === false - ) ; else { - return; - } - } - - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, - }; - - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; - - var query = []; - if (version) { - query.push(version); - } - // 目前仅根节点(组件级别)发起 combine - if (checkCombineState(srcPath) && root) { - query.push('combine=true'); - installedModules[require].combine = true; - if (!combineMap[require]) { - combineMap[require] = { - start: Date.now(), - timeout: setTimeout(() => { - if (loading[require]) { - combineMap[require].failed = true; - load(require, referer); - // 标记超时了 - } - }, combineFailTime), - failed: false, - }; - } - } - - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } - - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - - if (requestMethod === 'fetch') { - // combine 接口失败后的 traceId 记录排查 - if (combine && combineMap[require] && !combineMap[require].traceId) { - fetchCubeCode(srcPath, undefined, (res) => { - if (res.headers.has('request-id')) { - combineMap[require].traceId = res.headers.get('request-id'); - } - }); - } else { - fetchCubeCode(srcPath); - } - } else { - scriptCubeCode(srcPath); - } - - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - - function checkCombineState(path) { - if (!combine) return false; - if (combineBlackList.length) { - return !combineBlackList.some((black) => { - return !!path.match(black); - }); - } - } - - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - for (const register of registerArr) { - if (require && register.match.test(require)) { - return register.module; - } - } - return false; - } - - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = getGlobalRegister(module) || installedModules[module]; - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; - } - } - if (!m.fired) { - m.fired = true; - if (strict) { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } else { - try { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } catch (e) { - log.error(e); - m.exports = {}; - } - } - } - return isEsModule(m.exports) ? m.exports.default : m.exports; - } - - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); - } - } - - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - // 定制业务逻辑 ?env=publish === 不加 env - mod = removePublishName(mod); - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; - } - // 记录或清理合并接口信息 - if (combineMap[name] && !mod.loaded) { - if (!combineMap[name].failed) { - clearTimeout(combineMap[name].timeout); - delete combineMap[name]; - } else { - combineMap[name].end = Date.now(); - } - } - - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; - - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); - } - } - - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; - - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } - - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine !== undefined) { - combine = config.combine; - } - if (config.combineBlackList) { - combineBlackList = config.combineBlackList; - } - if (config.requestMethod) { - requestMethod = config.requestMethod; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } - - if (config.combineFailTime) { - combineFailTime = config.combineFailTime; - } - - inited = true; - - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } - - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; - - if (typeof mods === 'string') { - mods = [removePublishName(mods)]; - } else { - mods = mods.map(removePublishName); - } - - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } - - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); - } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; - - return function (exports) { - if (firing) { - return; - } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; - } - }; - })() - ); - load(mods, referer, true); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, - }; - - if (matchType === 'module') { - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - }); - } - - return this; - }; - /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code - */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; - } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; - - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; - - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; - } - if (!m.fired) { - unfired[i] = m; - } - } - } - - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); - }; - - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; - } - - /** - * intergration with - */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); - }); - } - } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - combine, - combineMap, - }; - }, - }); - - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; - } -} - +} + +// import Cube from 'node-cube/runtime/cube'; + +function mockClassialCube() { + /* short global val */ + var global = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + var registerArr = []; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + // type BlackList = Array + var combineBlackList = []; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + var combineFailTime = 10000; + + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + + /** + * The require function + * @param module + * @param namespace + * @returns {*} + * @private + */ + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); + } else { + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; + } + } + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); + } + }; + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; + } + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ) ; else { + return; + } + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; + + var query = []; + if (version) { + query.push(version); + } + // 目前仅根节点(组件级别)发起 combine + if (checkCombineState(srcPath) && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, combineFailTime), + failed: false, + }; + } + } + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + + if (requestMethod === 'fetch') { + // combine 接口失败后的 traceId 记录排查 + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode(srcPath, undefined, (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + }); + } else { + fetchCubeCode(srcPath); + } + } else { + scriptCubeCode(srcPath); + } + + requireMap[mod] = require; + loading[require] = true; + }); + checkAllDownloaded(); + } + + function checkCombineState(path) { + if (!combine) return false; + if (combineBlackList.length) { + return !combineBlackList.some((black) => { + return !!path.match(black); + }); + } + } + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } + } + return false; + } + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } + } + } + return isEsModule(m.exports) ? m.exports.default : m.exports; + } + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } + } + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; + } else { + combineMap[name].end = Date.now(); + } + } + + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } + } + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine !== undefined) { + combine = config.combine; + } + if (config.combineBlackList) { + combineBlackList = config.combineBlackList; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof mods === 'string') { + mods = [removePublishName(mods)]; + } else { + mods = mods.map(removePublishName); + } + + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; + + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + load(mods, referer, true); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, + }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + + return this; + }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } + } + } + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); + } else { + global['Cube'] = Cube; + } + + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } + } + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, + }; + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; + } +} + /** * 默认配置项变量 */ @@ -1340,11 +1340,11 @@ function setGlobalCube(oldVersion) { }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.14'; + var cubeVersion = '5.0.0-beta.17'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; -} - -setGlobalCube(true); +} + +setGlobalCube(true); })(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 173de0b..79fe4e2 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,768 +1,4 @@ /*! - * Cube v5.0.0-beta.16 - */ -(function () { - function a(a, b, c) { - if (c || 2 === arguments.length) - for (var d, e = 0, f = b.length; e < f; e++) - (d || !(e in b)) && (d || (d = Array.prototype.slice.call(b, 0, e)), (d[e] = b[e])); - return a.concat(d || Array.prototype.slice.call(b)); - } - function b() {} - function c(a) { - return a; - } - function d(a) { - return 'Cube.cStart();' + a + ';Cube.cStop();'; - } - function e(a, b, d) { - return fetch(a, { headers: { 'Content-Type': 'text/plain' } }) - .then(function (a) { - return d && d(a), a; - }) - .then(function (a) { - return a.text(); - }) - .then(function (a) { - return new Function((b || c)(a))(); - }); - } - function f(a) { - var b = document.createElement('script'); - (b.type = 'text/javascript'), - (b.async = !0), - (b.onerror = function () { - console.error('load module failed.'); - }), - (b.src = a), - o.appendChild(b); - } - function g(a, b) { - for (var c, d = a.length, e = 0; e < d; e++) - (c = a[e]), - -1 === c.indexOf(b) && (0 === c.indexOf('./') ? (a[e] = c.substr(1)) : '/' !== c[0] && (a[e] = '/' + c)); - return a; - } - function h(a, b, c) { - var d = a; - b && - (d = a.replace(p, function (a, c, d) { - var e = c.split(',').map(function (a) { - return b + ' ' + a.trim(); - }); - return e.join(',') + d; - })); - var e = document.createElement('style'); - return ( - e.setAttribute('type', 'text/css'), - c && e.setAttribute('mod', c), - b && e.setAttribute('ns', b), - o.appendChild(e), - (e.innerHTML = d), - d - ); - } - function i(a) { - var b = a.split('&'), - c = {}; - return ( - b.forEach(function (a) { - var b = a.split('='); - c[b[0]] = b[1]; - }), - c - ); - } - function j(a, b) { - var c = b.base, - d = b.remoteSeparator, - e = b.remoteBase, - f = c + a, - g = a.indexOf ? a.indexOf(d) : 0; - if (0 >= g) return f; - var h = a.substr(0, g); - return e[h] ? e[h] + a.substr(g + 1) : f; - } - function k(a) { - var b = (a + '').split('?'), - c = b[0], - d = b[1]; - if (d) { - var e = d.split('&'); - if (e.includes('env=publish')) { - e = e.filter(function (a) { - return 'env=publish' !== a; - }); - var f = e.join('&'); - return f ? c + '?' + f : c; - } - } - return a; - } - function l() { - function a(a, b) { - if (1 === arguments.length) return o(a); - var c = o(a); - return q.css(c, b, a), a; - } - function c(a) { - return function (b, c, d) { - 2 === arguments.length && 'function' === typeof c - ? ((d = c), (c = null), q.use(b, a, d)) - : q.use(b, a, function (a) { - (a = q.css(a, c, b)), d && d(a); - }); - }; - } - function d() { - if (N.length) return !1; - for (var a in J) if (J.hasOwnProperty(a)) return !1; - p(); - } - function l(a, b, c) { - return ( - 'string' === typeof a && (a = [a]), - M - ? void (a.forEach(function (a) { - if (I[a] || n(a)) - if (K[a] && K[a].failed && I[a] && !1 === I[a].loaded); - else return; - I[a] = { exports: {}, loaded: !1, fired: !1 }; - const [d, g] = (a + '').split('?'); - var h = j(d, { base: w, remoteSeparator: y, remoteBase: x }), - k = h || w + d, - o = []; - if ( - (s && o.push(s), - m(k) && - c && - (o.push('combine=true'), - (I[a].combine = !0), - !K[a] && - (K[a] = { - start: Date.now(), - timeout: setTimeout(() => { - J[a] && ((K[a].failed = !0), l(a, b)); - }, O), - failed: !1, - })), - g) - ) { - const a = i(g); - Array.prototype.push.apply( - o, - Object.keys(a).map((b) => `${b}=${a[b]}`) - ); - } - o.length && (k = k + '?' + o.join('&')), - 'fetch' === P - ? B && K[a] && !K[a].traceId - ? e(k, void 0, (b) => { - b.headers.has('request-id') && (K[a].traceId = b.headers.get('request-id')); - }) - : e(k) - : f(k), - (G[d] = a), - (J[a] = !0); - }), - d()) - : void N.push([a, b]) - ); - } - function m(a) { - return !!B && (L.length ? !L.some((b) => !!a.match(b)) : void 0); - } - function n(a) { - for (const b of H) if (a && b.match.test(a)) return b.module; - return !1; - } - function o(b) { - var d = n(b) || I[b]; - if (!d) { - const a = new Error("Cube Error: Cannot find module '" + b + "'"); - if (A) throw a; - else return v.error(a), {}; - } - if (!d.fired) - if (((d.fired = !0), A)) d.exports = d.fn.apply(t, [d, d.exports, a, c(b), C, D]); - else - try { - d.exports = d.fn.apply(t, [d, d.exports, a, c(b), C, D]); - } catch (a) { - v.error(a), (d.exports = {}); - } - return r(d.exports) ? d.exports.default : d.exports; - } - function p() { - for (let [a, b] of F) - a.length && - a.forEach(function (c) { - if (J[c]) return; - var d = 0; - const e = o(c); - b.length && - b.forEach(function (a) { - var b = a(e); - b && d++; - }), - b.length === d && F.delete(a); - }); - } - function q(a, b, c) { - const d = a + ''; - a = G[a] || a; - var e = I[a]; - (e = k(e)), - e || (e = I[a] = { exports: {}, fired: !1 }), - K[a] && !e.loaded && (K[a].failed ? (K[a].end = Date.now()) : (clearTimeout(K[a].timeout), delete K[a])), - (e.loaded = !0), - (e.fn = c), - G[d] && delete G[d], - J[a] ? (delete J[a], l(b, a)) : b.length && l(b, a); - } - function r(a) { - return E && a && 'object' === typeof a && a.__esModule; - } - var s, - t = window, - u = document, - v = console, - w = '', - x = {}, - y = ':', - z = 'utf-8', - A = !0, - B = !0, - C = { env: { NODE_ENV: 'production' } }, - D = void 0, - E = !1, - F = new Map(), - G = {}, - H = [], - I = {}, - J = {}, - K = {}, - L = [], - M = !1, - N = [], - O = 1e4; - let P = 'script'; - (q.setRemoteBase = function (a) { - Object.assign(x, a); - }), - (q.toString = function () { - return 'Cube:v5.0.0-beta.13'; - }), - (q.init = function (a) { - if ((a.base && '/' !== a.base && (w = a.base.replace(/\/$/, '')), a.remoteBase)) - for (var b in a.remoteBase) a.remoteBase.hasOwnProperty(b) && (x[b] = a.remoteBase[b].replace(/\/$/, '')); - for ( - a.charset && (z = a.charset), - a.version && (s = a.version), - void 0 !== a.strict && (A = a.strict), - a.env && (C.env.NODE_ENV = a.env), - a.global && (D = a.global), - void 0 !== a.combine && (B = a.combine), - a.combineBlackList && (L = a.combineBlackList), - a.requestMethod && (P = a.requestMethod), - void 0 !== a.esModule && (E = a.esModule), - a.combineFailTime && (O = a.combineFailTime), - M = !0; - N.length; - - ) { - var c = N.shift(); - l(c[0], c[1]); - } - return this; - }), - (q.use = function (a, c, d, e) { - if (!a) throw new Error('Cube.use(moduleName) moduleName is undefined!'); - return ( - 'function' === typeof c && ((e = d), (d = c), (c = void 0)), - c || (c = 'Cube.use'), - (d = d || b), - (a = 'string' === typeof a ? [k(a)] : a.map(k)), - e || (a = g(a, y)), - F.has(a) || F.set(a, []), - F.get(a).push( - (function () { - var b = [], - c = a.length, - e = !1; - return function (a) { - if (!e) return (b.push(a), b.length === c) ? ((e = !0), d.apply(t, b), !0) : void 0; - }; - })() - ), - l(a, c, !0), - this - ); - }), - (q.register = function (a, c, { matchType: d = 'version' } = {}) { - return I[a] - ? v.warn("Cube Warning: Module '" + a + "' already registered") - : ((I[a] = { exports: c, fn: b, loaded: !0, fired: !0 }), - 'module' === d && - H.push({ require: a, matchType: d, match: new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`), module: I[a] }), - this); - }); - var Q = {}; - (q.css = function (a, b, c) { - if (a) { - var d = c + '@' + b; - if (!Q[d]) return (Q[d] = !0), h(a, b, c); - } - }), - (q.debug = function () { - v.error('Cube Error: Cube.debug nolonger supported'); - }), - (q.cache = function () { - var a, - b, - c = {}, - d = {}; - for (a in I) I.hasOwnProperty(a) && ((b = I[a]), b.loaded || (c[a] = b), b.fired || (d[a] = b)); - v.info('modules:', I), v.info('unloaded:', c), v.info('unfired:', d); - }), - t.Cube - ? v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js') - : (t.Cube = q); - var R = u.currentScript; - if (R) { - var S = R.dataset; - S.base && - (q.init(S), - q.use(S.main || 'index.js', function (a) { - a.run && a.run(); - })); - } - Object.defineProperty(q, 'config', { - get() { - return { - base: w, - remoteBase: x, - remoteSeparator: y, - version: s, - strict: A, - debug: !0, - esModule: E, - mockedGlobal: D, - mockedProcess: C, - charset: z, - combine: B, - combineMap: K, - }; - }, - }); - } - function m() { - return new Proxy( - {}, - { - get: function (a, b) { - var c = 'number' === typeof b ? b.toString() : b; - return Reflect.get(a, c); - }, - set: function (a, b, c, d) { - var e = 'number' === typeof b ? b.toString() : b; - return Reflect.set(a, e, c, d); - }, - } - ); - } - var n = function () { - return ( - (n = - Object.assign || - function (a) { - for (var b, c = 1, d = arguments.length; c < d; c++) - for (var e in ((b = arguments[c]), b)) Object.prototype.hasOwnProperty.call(b, e) && (a[e] = b[e]); - return a; - }), - n.apply(this, arguments) - ); - }, - o = document.querySelector('head'), - p = /([^};]+)(\{[^}]+\})/g, - q = { - base: '', - remoteBase: {}, - remoteSeparator: ':', - mockedProcess: { env: { NODE_ENV: 'production' } }, - mockedGlobal: void 0, - charset: 'utf-8', - strict: !0, - esModule: !1, - version: void 0, - debug: !0, - combine: !1, - requestMethod: 'fetch', - fetchUndeclaredModule: !1, - aggregateFetch: !0, - }, - r = (function () { - function c() { - var c = this; - (this.config = n({}, q)), - (this.state = { - inited: !1, - isIntercepted: !1, - pendingQueue: [], - lostDepModule: {}, - entrances: new Map(), - cssModule: {}, - installedModules: m(), - registerModules: [], - requireMap: {}, - fileExecuting: !1, - aggregateLoading: {}, - delayTrigger: void 0, - }), - (this.register = function (a, d, e) { - var f; - void 0 === e && (e = { matchType: 'version' }); - var g = e.matchType; - return (null === (f = c._getModule(a)) || void 0 === f ? void 0 : f.fired) - ? console.warn("Cube Warning: Module '" + a + "' already registered") - : void ((c.state.installedModules[a] = { - exports: d, - sourceCode: b, - dep: [], - refer: { entryDep: [] }, - loaded: !0, - firing: !1, - fired: !0, - }), - 'module' === g && - c.state.registerModules.push({ - moduleName: a, - matchType: g, - match: new RegExp('^datav:/npm/'.concat(a, '/([^/]+)?$')), - module: c.state.installedModules[a], - })); - }), - (this.init = function (a) { - var b, d, e, f, g, h, j; - if ( - (c.state.inited && - console.warn( - 'Cube \u91CD\u590D\u521D\u59CB\u5316\uFF0C\u53EF\u80FD\u4EA7\u751F\u8D44\u6E90\u8BF7\u6C42\u9519\u8BEF' - ), - a.base && '/' !== a.base && (c.config.base = a.base.replace(/\/$/, '')), - a.remoteBase) - ) - for (var k in a.remoteBase) - a.remoteBase.hasOwnProperty(k) && (c.config.remoteBase[k] = a.remoteBase[k].replace(/\/$/, '')); - (c.config.version = null !== (b = a.version) && void 0 !== b ? b : c.config.version), - (c.config.esModule = null !== (d = a.esModule) && void 0 !== d ? d : c.config.esModule), - (c.config.debug = null !== (e = a.debug) && void 0 !== e ? e : c.config.debug), - (c.config.combine = null !== (f = a.combine) && void 0 !== f ? f : c.config.combine), - (c.config.requestMethod = null !== (g = a.requestMethod) && void 0 !== g ? g : c.config.requestMethod), - (c.config.fetchUndeclaredModule = - null !== (h = a.fetchUndeclaredModule) && void 0 !== h ? h : c.config.fetchUndeclaredModule), - (c.config.aggregateFetch = null !== (j = a.aggregateFetch) && void 0 !== j ? j : c.config.aggregateFetch), - (c.state.inited = !0); - for (var l, m = 0; m < c.state.pendingQueue.length; m++) (l = c.state.pendingQueue[m]), c._load(l[0], l[1]); - c.state.pendingQueue = []; - }), - (this.use = function (d, e, f, h) { - if (!d) throw new Error('Cube.use(moduleName) moduleName is undefined!'); - var i, - j = 'string' === typeof d ? [d] : 'number' === typeof d ? [d.toString()] : a([], d, !0), - k = h; - 'string' === typeof e ? (i = f) : ((i = e), (k = f)), - (i = i || b), - (j = k ? j : g(j, c.config.remoteSeparator)); - var l = { callback: i, loadSource: {}, targets: a([], j, !0) }; - if (c.config.aggregateFetch); - else - j.forEach(function (a) { - l.loadSource[a] = !1; - }); - c.state.entrances.set(j, l), - j.forEach(function (a) { - return c._load(a, j); - }); - }), - (this.execute = function (a, b, d) { - var e; - 'number' === typeof a && (a = a.toString()); - var f = c._calibrateName(a); - (null === (e = c.state.installedModules[f]) || void 0 === e ? void 0 : e.loaded) || - (c._store(f, b, d), c._initiate(f)); - }), - (this.css = function (a, b, d) { - if (a) { - var e = d + '@' + b; - if (!c.state.cssModule[e]) return (c.state.cssModule[e] = !0), h(a, b, d); - } - }), - (this._store = function (a, b, d) { - var e, - f = c.state.installedModules[a]; - f - ? ((e = f.dep).push.apply(e, b), (f.sourceCode = d), (f.loaded = !0)) - : (c.state.installedModules[a] = { - exports: {}, - sourceCode: d, - dep: b, - refer: { entryDep: [] }, - loaded: !0, - firing: !1, - fired: !1, - }); - }), - (this._load = function (a, b) { - if (('number' === typeof a && (a = a.toString()), !c.config.aggregateFetch)) { - var g = c.state.entrances.get(b); - g && !g.loadSource.hasOwnProperty(a) && (g.loadSource[a] = !1); - } - if (!c.state.inited || c.state.fileExecuting) return void c.state.pendingQueue.push([a, b]); - var h = c._getModule(a); - if (h) return c._addReferToDependency(a, h, b), void (h.loaded && c._triggerCallback(a, h)); - var i = a.split('?')[0]; - (c.state.requireMap[i] = a), - (c.state.installedModules[a] = { - exports: {}, - sourceCode: void 0, - dep: [], - refer: { entryDep: [] }, - loaded: !1, - firing: !1, - fired: !1, - }), - c._addReferToDependency(a, c.state.installedModules[a], b); - var j = c._generatePath(a); - 'fetch' === c.config.requestMethod ? e(j, d) : f(j); - }), - (this._initiate = function (a) { - var b = c.state.installedModules[a]; - c._triggerCallback(a, b); - }), - (this._triggerCallback = function (a, b) { - if (b.loaded) { - if (c.config.aggregateFetch) - return ( - b.dep.forEach(function (a) { - var b; - (null === (b = c._getModule(a)) || void 0 === b ? void 0 : b.loaded) || c._load(a, []); - }), - void (c.state.aggregateLoading[a] && (delete c.state.aggregateLoading[a], c._triggerAllCallback())) - ); - var d = b.refer, - e = []; - d.entryDep.forEach(function (d) { - var f = c.state.entrances.get(d); - if (f) { - f.loadSource[a] = !0; - var g = !0; - b.fired || - b.dep.forEach(function (a) { - if (!f.loadSource[a]) { - var b = c._getModule(a); - (null === b || void 0 === b ? void 0 : b.fired) || ((g = !1), c._load(a, d)); - } - }), - g && - Object.values(f.loadSource).every(function (a) { - return a; - }) && - c._triggerEntryCallback(d, f); - } else e.push(d); - }), - e.length && - (b.refer.entryDep = d.entryDep.filter(function (a) { - return !e.includes(a); - })); - } - }), - (this._triggerEntryCallback = function (a, b) { - var d = !0; - b.targets.forEach(function (a) { - var b = c._getModule(a); - if (!b.fired) { - if (b.firing) return void (d = !1); - c._fireModule(a), b.fired || (d = !1); - } - }), - d && - (b.callback.apply( - b, - b.targets.map(function (a) { - return c.state.installedModules[a].exports; - }) - ), - c.state.entrances.delete(a)); - }), - (this._triggerAllCallback = function () { - c.state.delayTrigger || - c.state.pendingQueue.length || - Object.keys(c.state.aggregateLoading).length || - c.state.entrances.forEach(function (a, b) { - c._triggerEntryCallback(b, a); - }); - }), - (this._fireModule = function (a) { - var b = c.state.installedModules[a]; - if (!b || !b.loaded) return !1; - if (b.fired) return !0; - if (b.firing) return !0; - var d = !0; - try { - b.firing = !0; - var e = b.sourceCode.apply(window, [ - b, - b.exports, - c._cubeRequire(a), - c._cubeLoad(a), - c.config.mockedProcess, - c.config.mockedGlobal, - ]); - (b.exports = c._isEsModule(e) ? e.default : e), (b.error = !1); - } catch (f) { - c.config.fetchUndeclaredModule && 'Cube inner denpendency lost; refetch inited' === f.message - ? (console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'), (d = !1)) - : (console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25', f), console.error(a, b), (b.error = !0)); - } finally { - (b.firing = !1), - c.config.fetchUndeclaredModule - ? c.state.lostDepModule[a] && - (c.state.lostDepModule[a].forEach(function (d) { - b.dep.includes(d) || - (b.dep.push(d), - b.refer.entryDep.forEach(function (a) { - c._load(d, a); - }), - console.warn('Cube module '.concat(a, ' \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ').concat(d))); - }), - Reflect.deleteProperty(c.state.lostDepModule, a), - (d = !1)) - : (b.fired = !0); - } - return d; - }), - (this._cubeRequire = function (a) { - return function (b, d) { - if (void 0 === d) { - var e = c._getModule(b); - if (null === e || void 0 === e ? void 0 : e.fired) return e.exports; - var f = c._fireModule(b); - if (e && f) return e.exports; - if (c.config.fetchUndeclaredModule) - throw ( - (c.state.lostDepModule[a] ? c.state.lostDepModule[a].push(b) : (c.state.lostDepModule[a] = [b]), - new Error('Cube inner denpendency lost; refetch inited')) - ); - else throw new Error('Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 '.concat(b, ' \u5931\u8D25')); - } else { - var g = void 0, - e = c._getModule(b); - if (!e || !e.loaded) return; - e.fired && (g = e.exports); - var h = c._fireModule(b); - return h && (g = e.exports), c.css(g, d, b); - } - }; - }), - (this._cubeLoad = function (a) { - return function (b, d, e) { - e === void 0 && 'function' === typeof d - ? ((e = d), (d = ''), c.use(b, a, e)) - : c.use(b, a, function (a) { - (a = c.css(a, d, b)), e && e(a); - }); - }; - }), - (this._generatePath = function (a) { - var b = a.split('?'), - d = b[0], - e = b[1], - f = j(d, c.config), - g = []; - if ((c.config.version && g.push(c.config.version), c.config.combine && g.push('combine=true'), e)) { - var h = i(e); - g.push( - Object.keys(h).map(function (a) { - return ''.concat(a, '=').concat(h[a]); - }) - ); - } - return g.includes('m=1') || g.push('m=1'), g.length && (f = f + '?' + g.join('&')), f; - }), - (this._addReferToDependency = function (a, b, d) { - if (c.config.aggregateFetch) return void (b.loaded || (c.state.aggregateLoading[a] = !0)); - var e = b.refer; - d && (e.entryDep.includes(d) || e.entryDep.push(d)); - }), - (this._calibrateName = function (a) { - var b = c.state.requireMap[a] || a; - return c.state.requireMap[a] && Reflect.deleteProperty(c.state.requireMap, a), b; - }), - (this._getGlobalRegister = function (a) { - for (var b, d = 0, e = c.state.registerModules; d < e.length; d++) - if (((b = e[d]), a && b.match.test(a))) return b.module; - }), - (this._getModule = function (a) { - var b = c.state.installedModules[a]; - return b ? b : c._getGlobalRegister(a); - }), - (this._isEsModule = function (a) { - return c.config.esModule && a && 'object' === typeof a && a.__esModule; - }), - (this.cStart = function () { - c.state.fileExecuting = !0; - }), - (this.cStop = function () { - c.state.fileExecuting = !1; - for (var a, b = 0; b < c.state.pendingQueue.length; b++) (a = c.state.pendingQueue[b]), c._load(a[0], a[1]); - c.state.pendingQueue = []; - }), - (this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(c.state.installedModules))), - console.info( - 'unloaded:', - Object.fromEntries( - Object.entries(c.state.installedModules).filter(function (a) { - return !a[1].loaded; - }) - ) - ), - console.info( - 'unfired:', - Object.fromEntries( - Object.entries(c.state.installedModules).filter(function (a) { - return !a[1].fired; - }) - ) - ); - }), - (this.debug = function () { - console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301'); - }), - (this.setRemoteBase = function () { - console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase'); - }); - } - return c; - })(); - (function (a) { - var b = 'Cube', - c = window; - if (c[b]) return console.error('Cube Error: window.' + b + ' already in using'), c[b]; - if (a) l(); - else { - var d = new r(), - e = function (a, b, c) { - return d.execute(a, b, c); - }, - f = new Proxy(e, { - get: function (a, b) { - return Reflect.ownKeys(d).includes(b) ? d[b] : Reflect.get(a, b); - }, - }); - c[b] = f; - } - return (c[b].cubeVersion = '5.0.0-beta.14'), (c[b].oldVersion = a), c[b]; - })(!0); -})(); + * Cube v5.0.0-beta.16 + */ + (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===P?B&&K[a]&&!K[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.16'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(P=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var Q={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Q[d])return Q[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var R=u.currentScript;if(R){var S=R.dataset;S.base&&(q.init(S),q.use(S.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Mon, 18 Dec 2023 15:22:15 +0800 Subject: [PATCH 56/74] chore: update version --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8bc6cda..4043e0d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.16", + "version": "5.0.0-beta.17", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 79fe4e2..2ef38de 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.16 + * Cube v5.0.0-beta.17 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===P?B&&K[a]&&!K[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.16'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(P=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var Q={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Q[d])return Q[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var R=u.currentScript;if(R){var S=R.dataset;S.base&&(q.init(S),q.use(S.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===P?B&&K[a]&&!K[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.17'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(P=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var Q={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Q[d])return Q[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var R=u.currentScript;if(R){var S=R.dataset;S.base&&(q.init(S),q.use(S.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.16'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.17'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From d32cbb715993e2493e103a9aac3d7d523d5ac431 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 26 Mar 2024 11:30:40 +0800 Subject: [PATCH 57/74] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20fetch=20=E5=92=8C=20error=20=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- runtime/cube-reconstruction.js | 2617 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 1332 insertions(+), 1295 deletions(-) diff --git a/package.json b/package.json index 4043e0d..d9aa774 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.17", + "version": "5.0.0-beta.18", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index d39ca47..4c2ac1a 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,398 +1,407 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 (function () { -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -} - -// 支持 cube 的一些工具方法 -function noop() { } -function baseCodeProxy(c) { - return c; -} -function combineExecute(c) { - return 'Cube.cStart();' + c + ';Cube.cStop();'; -} -function fetchCubeCode(url, inputCodeProxy, responseAdapter) { - var codeProxy = inputCodeProxy || baseCodeProxy; - return fetch(url, { - headers: { - 'Content-Type': 'text/plain', - }, - }) - .then(function (response) { - if (responseAdapter) - responseAdapter(response); - return response; - }) - .then(function (response) { return response.text(); }) - .then(function (code) { return new Function(codeProxy(code))(); }); -} -var head = document.querySelector('head'); -/** 原有 cube 请求方法 */ -function scriptCubeCode(url) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.onerror = function () { - console.error("load module failed."); - }; - script.src = url; - head.appendChild(script); -} -function fixMododulePath(paths, remoteSeparator) { - var len = paths.length; - var mod; - for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } - else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } - } - } - return paths; -} -var parseCssRe = /([^};]+)(\{[^}]+\})/g; -/** 原有 css 请求方法 */ -function scriptCubeCss(originCss, namespace, file) { - var css = originCss; - if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; - }); - } - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - if (file) { - style.setAttribute('mod', file); - } - if (namespace) { - style.setAttribute('ns', namespace); - } - head.appendChild(style); - style.innerHTML = css; - return css; -} -function parseQueryString(param) { - var kvs = param.split('&'); - var obj = {}; - kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; - }); - return obj; -} -/** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ -function rebase(name, config) { - var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; - var defaultPath = base + name; - var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) - return defaultPath; - var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) - return defaultPath; - return remoteBase[rbase] + name.substr(offset + 1); -} -// 定制业务逻辑 ?env=publish === 不加 env -// 此逻辑加在 cube 似乎处不合理 -function removePublishName(name) { - var _a = String(name).split('?'), main = _a[0], params = _a[1]; - if (params) { - var kvs = params.split('&'); - if (kvs.includes('env=publish')) { - kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); - var newParams = kvs.join('&'); - if (newParams) { - return main + '?' + newParams; - } - else { - return main; - } - } - } - return name; -} - -// import Cube from 'node-cube/runtime/cube'; - -function mockClassialCube() { - /* short global val */ - var global = window; - var doc = document; - var log = console; - - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = true; - - var mockedProcess = { - env: { NODE_ENV: 'production' }, + var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); }; - var mockedGlobal = undefined; - var esModule = false; - - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - var registerArr = []; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - var combineMap = {}; - // type BlackList = Array - var combineBlackList = []; - - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - var combineFailTime = 10000; - - // watch! 旧版使用 fetch 容易产生问题 - let requestMethod = 'script'; // 'fetch' | 'script' - // let isIntercepted = false; - - /** - * The require function - * @param module - * @param namespace - * @returns {*} - * @private - */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); - } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; - } + + function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + } + + // 支持 cube 的一些工具方法 + function noop() { } + function baseCodeProxy(c) { + return c; + } + function combineExecute(c) { + return 'Cube.cStart();' + c + ';Cube.cStop();'; + } + function fetchCubeCode(url, inputCodeProxy, responseAdapter) { + var codeProxy = inputCodeProxy || baseCodeProxy; + var options = typeof url === 'string' ? { url: url } : url; + return (typeof options.fetch === 'function' ? options.fetch : fetch)(options.url, { + headers: { + "Content-Type": "text/plain", + }, + }) + .then(function (response) { + if (responseAdapter) + responseAdapter(response); + return response; + }) + .then(function (response) { return response.text(); }) + .then(function (code) { + var _a; + try { + return new Function(codeProxy(code))(); + } + catch (error) { + (_a = options.onCodeError) === null || _a === void 0 ? void 0 : _a.call(options, error, { + url: options.url, + }); + /** 保持抛错 */ + console.error(error); + } + }); + } + var head = document.querySelector('head'); + /** 原有 cube 请求方法 */ + function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = function () { + console.error("load module failed."); + }; + script.src = url; + head.appendChild(script); + } + function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } + else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } + } + } + return paths; + } + var parseCssRe = /([^};]+)(\{[^}]+\})/g; + /** 原有 css 请求方法 */ + function scriptCubeCss(originCss, namespace, file) { + var css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; + }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; + } + function parseQueryString(param) { + var kvs = param.split('&'); + var obj = {}; + kvs.forEach(function (kv) { + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; } - /** - * This function creates the load function + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() */ - function __cube_load_creator__(referer) { + function rebase(name, config) { + var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; + var defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) + return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) + return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); + } + // 定制业务逻辑 ?env=publish === 不加 env + // 此逻辑加在 cube 似乎处不合理 + function removePublishName(name) { + var _a = String(name).split('?'), main = _a[0], params = _a[1]; + if (params) { + var kvs = params.split('&'); + if (kvs.includes('env=publish')) { + kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); + var newParams = kvs.join('&'); + if (newParams) { + return main + '?' + newParams; + } + else { + return main; + } + } + } + return name; + } + + // import Cube from 'node-cube/runtime/cube'; + + function mockClassialCube() { + /* short global val */ + var global = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + var registerArr = []; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + // type BlackList = Array + var combineBlackList = []; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + var combineFailTime = 10000; + + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + let fetchMethod = undefined; + let onCodeError = undefined; + /** - * The load function + * The require function * @param module * @param namespace - * @param cb + * @returns {*} * @private */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); - } - }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; - - function checkAllDownloaded() { - if (loadQueue.length) { - return false; - } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { - return false; + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; } } - startAppAndCallback(); - } - - /** - * 下载模块 - * @param requires - * @param referer - * @param root 是否为顶层请求组件 - */ - function load(requires, referer, root) { - if (typeof requires === 'string') { - requires = [requires]; - } - if (!inited) { - loadQueue.push([requires, referer]); - return; - } - - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - if ( - combineMap[require] && - combineMap[require].failed && - installedModules[require] && - installedModules[require].loaded === false - ) ; else { - return; + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); } - } - - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, }; - - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; - - var query = []; - if (version) { - query.push(version); + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; } - // 目前仅根节点(组件级别)发起 combine - if (checkCombineState(srcPath) && root) { - query.push('combine=true'); - installedModules[require].combine = true; - if (!combineMap[require]) { - combineMap[require] = { - start: Date.now(), - timeout: setTimeout(() => { - if (loading[require]) { - combineMap[require].failed = true; - load(require, referer); - // 标记超时了 - } - }, combineFailTime), - failed: false, - }; + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; } } - - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; } - - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); + if (!inited) { + loadQueue.push([requires, referer]); + return; } - - if (requestMethod === 'fetch') { - // combine 接口失败后的 traceId 记录排查 - if (combine && combineMap[require] && !combineMap[require].traceId) { - fetchCubeCode(srcPath, undefined, (res) => { - if (res.headers.has('request-id')) { - combineMap[require].traceId = res.headers.get('request-id'); - } - }); + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ) ; else { + return; + } + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; + + var query = []; + if (version) { + query.push(version); + } + // 目前仅根节点(组件级别)发起 combine + if (checkCombineState(srcPath) && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, combineFailTime), + failed: false, + }; + } + } + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + + if (requestMethod === 'fetch') { + // combine 接口失败后的 traceId 记录排查 + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode({ + url: srcPath, + fetch: fetchMethod, + onCodeError: onCodeError, + }, undefined, (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + }); + } else { + fetchCubeCode(srcPath); + } } else { - fetchCubeCode(srcPath); + scriptCubeCode(srcPath); } - } else { - scriptCubeCode(srcPath); - } - - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - - function checkCombineState(path) { - if (!combine) return false; - if (combineBlackList.length) { - return !combineBlackList.some((black) => { - return !!path.match(black); + + requireMap[mod] = require; + loading[require] = true; }); + checkAllDownloaded(); } - } - - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - for (const register of registerArr) { - if (require && register.match.test(require)) { - return register.module; + + function checkCombineState(path) { + if (!combine) return false; + if (combineBlackList.length) { + return !combineBlackList.some((black) => { + return !!path.match(black); + }); } } - return false; - } - - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = getGlobalRegister(module) || installedModules[module]; - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + for (const register of registerArr) { + if (require && register.match.test(require)) { + return register.module; + } } + return false; } - if (!m.fired) { - m.fired = true; - if (strict) { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } else { - try { + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { m.exports = m.fn.apply(global, [ m, m.exports, @@ -401,950 +410,978 @@ function mockClassialCube() { mockedProcess, mockedGlobal, ]); - } catch (e) { - log.error(e); - m.exports = {}; + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } } } + return isEsModule(m.exports) ? m.exports.default : m.exports; } - return isEsModule(m.exports) ? m.exports.default : m.exports; - } - - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } } - } - - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - // 定制业务逻辑 ?env=publish === 不加 env - mod = removePublishName(mod); - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; + } else { + combineMap[name].end = Date.now(); + } + } + + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } } - // 记录或清理合并接口信息 - if (combineMap[name] && !mod.loaded) { - if (!combineMap[name].failed) { - clearTimeout(combineMap[name].timeout); - delete combineMap[name]; + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine !== undefined) { + combine = config.combine; + } + if (config.combineBlackList) { + combineBlackList = config.combineBlackList; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + if (config.fetchMethod) { + fetchMethod = config.fetchMethod; + } + + if (config.onCodeError) { + onCodeError = config.onCodeError; + } + + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof mods === 'string') { + mods = [removePublishName(mods)]; } else { - combineMap[name].end = Date.now(); + mods = mods.map(removePublishName); } - } - - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; - - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); - } - } - - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; - - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; + + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + load(mods, referer, true); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, + }; + + if (matchType === 'module') { + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + }); + } + + return this; + }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } } } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } - - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine !== undefined) { - combine = config.combine; - } - if (config.combineBlackList) { - combineBlackList = config.combineBlackList; - } - if (config.requestMethod) { - requestMethod = config.requestMethod; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } - - if (config.combineFailTime) { - combineFailTime = config.combineFailTime; - } - - inited = true; - - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } - - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; - - if (typeof mods === 'string') { - mods = [removePublishName(mods)]; + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); } else { - mods = mods.map(removePublishName); + global['Cube'] = Cube; } - - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } - - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); + + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; - - return function (exports) { - if (firing) { - return; - } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; - } + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, }; - })() - ); - load(mods, referer, true); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, - }; - - if (matchType === 'module') { - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - }); + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; } - - return this; - }; + } + /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code + * 默认配置项变量 */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; - } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); + var DEFAULT_CUBE_CONFIG = { + base: '', + remoteBase: {}, + remoteSeparator: ':', + mockedProcess: { + env: { NODE_ENV: 'production' }, + }, + mockedGlobal: undefined, + /** 这个字段应该已经废弃了 */ + charset: 'utf-8', + /** 仅严格模式 */ + strict: true, + /** 声明组件源码是否使用 esModule 模式*/ + esModule: false, + version: undefined, + /** 是否开启 debug 模式*/ + debug: true, + /** 是否开启请求合并 */ + combine: false, + /** 声明使用 fetch 请求还是创建 script 请求 */ + requestMethod: 'fetch', + // 旧版 fetchUndeclaredModule = false && aggregateFetch = true + // 新版 fetchUndeclaredModule = true && aggregateFetch = false + /** 是否重新请求未声明的文件 */ + fetchUndeclaredModule: false, + /** 是否聚合请求 */ + aggregateFetch: true, + /** 自定义 fetch 方法 */ + fetchMethod: undefined, + /** 下载脚本报错回调 */ + onCodeError: undefined, }; - - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; - - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; - - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; - } - if (!m.fired) { - unfired[i] = m; - } - } - } - - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); - }; - - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; - } - /** - * intergration with + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); + var Cube = /** @class */ (function () { + function Cube() { + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: false, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + // 是否处于文件合并执行状态 + fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, + // TODO 新版支持 combine 兜底(combineMap) + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + var _a; + if (option === void 0) { option = { matchType: 'version' }; } + var matchType = option.matchType; + if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + _this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: true, + }; + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), + module: _this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d, _e, _f, _g; + if (_this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; + _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; + _this.config.fetchMethod = config.fetchMethod || fetch; + _this.config.onCodeError = config.onCodeError; + _this.state.inited = true; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } + else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + var entry = { + callback: callback, + loadSource: {}, + targets: __spreadArray([], moduleNames, true), + }; + if (_this.config.aggregateFetch) ; + else { + moduleNames.forEach(function (i) { + entry.loadSource[i] = false; + }); + } + _this.state.entrances.set(moduleNames, entry); + moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { + var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; + } + else { + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = function (moduleName, entryKey) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.config.aggregateFetch) { + var entry = _this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; + } + } + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, entryKey]); + return; + } + var module = _this._getModule(moduleName); + if (module) { + _this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + _this._triggerCallback(moduleName, module); + } + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + }, + loaded: false, + firing: false, + fired: false, + }; + _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode({ + url: srcPath, + fetch: _this.config.fetchMethod, + onCodeError: _this.config.onCodeError, + }, combineExecute) : scriptCubeCode(srcPath); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + _this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (moduleName, module) { + if (!module.loaded) + return; + if (_this.config.aggregateFetch) { + module.dep.forEach(function (m) { + var _a; + if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._load(m, []); + }); + if (_this.state.aggregateLoading[moduleName]) { + delete _this.state.aggregateLoading[moduleName]; + _this._triggerAllCallback(); + } + return; + } + var refDep = module.refer; + var finishedEntry = []; + refDep.entryDep.forEach(function (entryKey) { + var entry = _this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + var next_1 = true; + if (!module.fired) { + module.dep.forEach(function (m) { + if (entry.loadSource[m]) + return; + var subModule = _this._getModule(m); + if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) + return; + next_1 = false; + _this._load(m, entryKey); + }); + } + if (next_1) { + // 考虑标记 unload 提速 + if (Object.values(entry.loadSource).every(function (i) { return i; })) { + _this._triggerEntryCallback(entryKey, entry); + } + } + } + else { + finishedEntry.push(entryKey); + } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); + } + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entryKey, entry) { + var readyCallback = true; + entry.targets.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) + return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; + } + _this._fireModule(moduleName); + if (module.fired) + return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); + _this.state.entrances.delete(entryKey); + } + }; + this._triggerAllCallback = function () { + if (_this.state.delayTrigger) + return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (_this.state.pendingQueue.length) + return; + if (Object.keys(_this.state.aggregateLoading).length) + return; + _this.state.entrances.forEach(function (entry, entryKey) { + _this._triggerEntryCallback(entryKey, entry); + }); + // }); + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.loaded) + return false; + if (module.fired) + return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + var fireResult = true; + try { + module.firing = true; + var exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } + catch (e) { + if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } + else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } + finally { + module.firing = false; + if (_this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach(function (eKey) { + _this._load(name, eKey); + }); + console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } + } + else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { + if (_this.config.fetchUndeclaredModule) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } + else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error("Cube inner denpendency lost; refetch inited"); + } + else { + throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); + } + } + else { + return module.exports; + } + } + else { + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getModule(moduleName); + if (!module || !module.loaded) + return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); + } + }; }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } + else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); + }); + } + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + if (_this.config.version) { + query.push(_this.config.version); + } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_1 = parseQueryString(custom); + query.push(Object.keys(customArgs_1).map(function (c) { + return "".concat(c, "=").concat(customArgs_1[c]); + })); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToDependency = function (moduleName, module, referer) { + if (_this.config.aggregateFetch) { + if (!module.loaded) { + _this.state.aggregateLoading[moduleName] = true; + } + return; + } + var refDep = module.refer; + if (!referer) { + return; + } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); + } + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getModule = function (name) { + // TODO 此处有问题 理论上优先选取 globalRegister + // 但考虑到正则匹配的耗时 每次匹配耗时过长 + // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); + console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); + console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); + }; + } + return Cube; + }()); + function getStringOnlyObj() { + return new Proxy({}, { + get: function (target, propKey) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); + }, + set: function (target, propKey, value, receiver) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); + }, }); - } } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - combine, - combineMap, - }; - }, - }); - - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; + /** 全局初始化单例 */ + function setGlobalCube(oldVersion) { + var alias = 'Cube'; + var global = window; + if (global[alias]) { + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; + } + if (oldVersion) { + mockClassialCube(); + } + else { + var cube_1 = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube_1.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube_1).includes(key)) { + return cube_1[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + } + var cubeVersion = '5.0.0-beta.18'; + global[alias].cubeVersion = cubeVersion; + global[alias].oldVersion = oldVersion; + return global[alias]; } -} - -/** - * 默认配置项变量 - */ -var DEFAULT_CUBE_CONFIG = { - base: '', - remoteBase: {}, - remoteSeparator: ':', - mockedProcess: { - env: { NODE_ENV: 'production' }, - }, - mockedGlobal: undefined, - /** 这个字段应该已经废弃了 */ - charset: 'utf-8', - /** 仅严格模式 */ - strict: true, - /** 声明组件源码是否使用 esModule 模式*/ - esModule: false, - version: undefined, - /** 是否开启 debug 模式*/ - debug: true, - /** 是否开启请求合并 */ - combine: false, - /** 声明使用 fetch 请求还是创建 script 请求 */ - requestMethod: 'fetch', - // 旧版 fetchUndeclaredModule = false && aggregateFetch = true - // 新版 fetchUndeclaredModule = true && aggregateFetch = false - /** 是否重新请求未声明的文件 */ - fetchUndeclaredModule: false, - /** 是否聚合请求 */ - aggregateFetch: true, -}; -/** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ -var Cube = /** @class */ (function () { - function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: false, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - // 是否处于文件合并执行状态 - fileExecuting: false, - // 聚合请求 - aggregateLoading: {}, - delayTrigger: undefined, - // TODO 新版支持 combine 兜底(combineMap) - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - var _a; - if (option === void 0) { option = { matchType: 'version' }; } - var matchType = option.matchType; - if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: true, - }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e, _f, _g; - if (_this.state.inited) { - console.warn('Cube 重复初始化,可能产生资源请求错误'); - } - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; - _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; - _this.state.inited = true; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } - else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - var entry = { - callback: callback, - loadSource: {}, - targets: __spreadArray([], moduleNames, true), - }; - if (_this.config.aggregateFetch) ; - else { - moduleNames.forEach(function (i) { - entry.loadSource[i] = false; - }); - } - _this.state.entrances.set(moduleNames, entry); - moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); - }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); - }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { - var _a; - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; - } - else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleName, entryKey) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); - } - if (!_this.config.aggregateFetch) { - var entry = _this.state.entrances.get(entryKey); - if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { - entry.loadSource[moduleName] = false; - } - } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, entryKey]); - return; - } - var module = _this._getModule(moduleName); - if (module) { - _this._addReferToDependency(moduleName, module, entryKey); - if (module.loaded) { - _this._triggerCallback(moduleName, module); - } - return; - } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - }, - loaded: false, - firing: false, - fired: false, - }; - _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode(srcPath, combineExecute) : scriptCubeCode(srcPath); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - _this._triggerCallback(moduleName, module); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (moduleName, module) { - if (!module.loaded) - return; - if (_this.config.aggregateFetch) { - module.dep.forEach(function (m) { - var _a; - if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._load(m, []); - }); - if (_this.state.aggregateLoading[moduleName]) { - delete _this.state.aggregateLoading[moduleName]; - _this._triggerAllCallback(); - } - return; - } - var refDep = module.refer; - var finishedEntry = []; - refDep.entryDep.forEach(function (entryKey) { - var entry = _this.state.entrances.get(entryKey); - if (entry) { - entry.loadSource[moduleName] = true; - var next_1 = true; - if (!module.fired) { - module.dep.forEach(function (m) { - if (entry.loadSource[m]) - return; - var subModule = _this._getModule(m); - if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) - return; - next_1 = false; - _this._load(m, entryKey); - }); - } - if (next_1) { - // 考虑标记 unload 提速 - if (Object.values(entry.loadSource).every(function (i) { return i; })) { - _this._triggerEntryCallback(entryKey, entry); - } - } - } - else { - finishedEntry.push(entryKey); - } - }); - if (finishedEntry.length) { - module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); - } - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entryKey, entry) { - var readyCallback = true; - entry.targets.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) - return; - // 理论上不会不存在 - if (module.firing) { - readyCallback = false; - return; - } - _this._fireModule(moduleName); - if (module.fired) - return; - readyCallback = false; - }); - if (readyCallback) { - entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); - _this.state.entrances.delete(entryKey); - } - }; - this._triggerAllCallback = function () { - if (_this.state.delayTrigger) - return; - // this.state.delayTrigger = setTimeout(() => { - // this.state.delayTrigger = undefined; - if (_this.state.pendingQueue.length) - return; - if (Object.keys(_this.state.aggregateLoading).length) - return; - _this.state.entrances.forEach(function (entry, entryKey) { - _this._triggerEntryCallback(entryKey, entry); - }); - // }); - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.loaded) - return false; - if (module.fired) - return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } - catch (e) { - if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } - else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } - finally { - module.firing = false; - if (_this.config.fetchUndeclaredModule) { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - module.refer.entryDep.forEach(function (eKey) { - _this._load(name, eKey); - }); - console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; - } - } - else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { return function (moduleName, namespace) { - if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; - } - var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { - if (_this.config.fetchUndeclaredModule) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } - else { - _this.state.lostDepModule[selfName] = [moduleName]; - } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error("Cube inner denpendency lost; refetch inited"); - } - else { - throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); - } - } - else { - return module.exports; - } - } - else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getModule(moduleName); - if (!module || !module.loaded) - return; - if (module.fired) { - css = module.exports; - } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; - } - return _this.css(css, namespace, moduleName); - } - }; }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } - else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); - } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push(Object.keys(customArgs_1).map(function (c) { - return "".concat(c, "=").concat(customArgs_1[c]); - })); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToDependency = function (moduleName, module, referer) { - if (_this.config.aggregateFetch) { - if (!module.loaded) { - _this.state.aggregateLoading[moduleName] = true; - } - return; - } - var refDep = module.refer; - if (!referer) { - return; - } - if (!refDep.entryDep.includes(referer)) { - refDep.entryDep.push(referer); - } - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getModule = function (name) { - // TODO 此处有问题 理论上优先选取 globalRegister - // 但考虑到正则匹配的耗时 每次匹配耗时过长 - // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); - console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); - }; - } - return Cube; -}()); -function getStringOnlyObj() { - return new Proxy({}, { - get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); - }, - set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); - }, - }); -} -/** 全局初始化单例 */ -function setGlobalCube(oldVersion) { - var alias = 'Cube'; - var global = window; - if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; - } - if (oldVersion) { - mockClassialCube(); - } - else { - var cube_1 = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube_1.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube_1).includes(key)) { - return cube_1[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; - } - var cubeVersion = '5.0.0-beta.17'; - global[alias].cubeVersion = cubeVersion; - global[alias].oldVersion = oldVersion; - return global[alias]; -} - -setGlobalCube(true); -})(); \ No newline at end of file + + setGlobalCube(true); + })(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 2ef38de..5b3b625 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.17 + * Cube v5.0.0-beta.18 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===P?B&&K[a]&&!K[a].traceId?e(k,void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.17'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(P=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var Q={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Q[d])return Q[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var R=u.currentScript;if(R){var S=R.dataset;S.base&&(q.init(S),q.use(S.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.18'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.17'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.18'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From ef96598b8e8e73a643c4b18b0179fe444d082eda Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 25 Apr 2024 10:39:27 +0800 Subject: [PATCH 58/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20combine=20sta?= =?UTF-8?q?tus=20=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- runtime/cube-reconstruction.js | 4 +++- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d9aa774..b67021c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.18", + "version": "5.0.0-beta.19", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 4c2ac1a..9d33f91 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -371,6 +371,8 @@ return !!path.match(black); }); } + // combineBlackList 没有或错误的情况下兜底 combine + return true; } // require => datav:/npm/react/16.4.6?env=xxx @@ -1377,7 +1379,7 @@ }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.18'; + var cubeVersion = '5.0.0-beta.19'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 5b3b625..317d5ee 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.18 + * Cube v5.0.0-beta.19 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(L.length?!L.some((b)=>!!a.match(b)):void 0)}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.18'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.19'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.18'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.19'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 02972ca357a3856e7d45cbedcc112ea123e36011 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 20 Jun 2024 15:46:45 +0800 Subject: [PATCH 59/74] =?UTF-8?q?fix:=20=E5=92=8C=20cube-reconstruction=20?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4=EF=BC=8C=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E6=97=B6=E5=85=88=E4=BB=A5=E7=8E=AF=E5=A2=83=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E4=BC=98=E5=85=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/cube.js b/runtime/cube.js index e1c6030..2d3a44f 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -216,7 +216,7 @@ * @returns {*} */ function fireModule(module) { - var m = installedModules[module] || getGlobalRegister(module); + var m = getGlobalRegister(module) || installedModules[module]; if (!m) { const err = new Error('Cube Error: Cannot find module ' + '\'' + module + '\''); if (strict) { From 28676269ba135b6117800fec971c0e0ea052cf04 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 20 Jun 2024 16:22:20 +0800 Subject: [PATCH 60/74] release: v5.0.0-beta.20 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b67021c..cf1095a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.19", + "version": "5.0.0-beta.20", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 317d5ee..2fe8e80 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.19 + * Cube v5.0.0-beta.20 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.19'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.20'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=F[b]||j(b);if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.19'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.20'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 1606034900c02268e5cf6681eb67e670d7264659 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 15 May 2025 18:01:44 +0800 Subject: [PATCH 61/74] =?UTF-8?q?feat(register):=20=E6=94=AF=E6=8C=81=20ma?= =?UTF-8?q?tchType=20=E4=B8=BA=20function=20=E7=9A=84=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube-reconstruction.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 9d33f91..0a1f3c3 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -656,6 +656,19 @@ }); } + if (matchType === 'function') { + const [ moduleName, ...modulePathArr ] = module.split('/'); + if (!modulePathArr.length) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' matchType is function, but no path'); + } + registerArr.push({ + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePathArr.join('/')}$`), + module: installedModules[module], + }); + } + return this; }; /** @@ -1379,7 +1392,7 @@ }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.19'; + var cubeVersion = '5.0.0-beta.20'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; From 67a9a0fe1c2ecc05adec0e173eee89cf074c9e93 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Fri, 16 May 2025 10:22:00 +0800 Subject: [PATCH 62/74] fix: build --- runtime/cube-reconstruction.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 2fe8e80..07372e8 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! * Cube v5.0.0-beta.20 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.20'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){return I[a]?v.warn('Cube Warning: Module \''+a+'\' already registered'):(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),this)};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.20'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){if(I[a])return v.warn('Cube Warning: Module \''+a+'\' already registered');if(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),'function'===d){const[b,...c]=a.split('/');if(!c.length)return v.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c.join('/')}$`),module:I[a]})}return this};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c Date: Fri, 16 May 2025 10:28:57 +0800 Subject: [PATCH 63/74] release: v5.0.0-beta.21 --- package.json | 2 +- runtime/cube-reconstruction.js | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index cf1095a..2bd0526 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.20", + "version": "5.0.0-beta.21", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 0a1f3c3..f4053c1 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1392,7 +1392,7 @@ }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.20'; + var cubeVersion = '5.0.0-beta.21'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 07372e8..1f8d8a2 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.20 + * Cube v5.0.0-beta.21 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.20'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){if(I[a])return v.warn('Cube Warning: Module \''+a+'\' already registered');if(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),'function'===d){const[b,...c]=a.split('/');if(!c.length)return v.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c.join('/')}$`),module:I[a]})}return this};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.21'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){if(I[a])return v.warn('Cube Warning: Module \''+a+'\' already registered');if(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),'function'===d){const[b,...c]=a.split('/');if(!c.length)return v.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c.join('/')}$`),module:I[a]})}return this};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.20'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.21'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 8435d4d04c4c5ab61b440cf1fe33b38ab40920f4 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 26 May 2025 21:03:05 +0800 Subject: [PATCH 64/74] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=A8=A1=E5=BC=8F=E4=B8=BA=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- runtime/cube-reconstruction.js | 2721 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 1384 insertions(+), 1347 deletions(-) diff --git a/package.json b/package.json index 2bd0526..2e81402 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.21", + "version": "5.0.0-beta.22", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index f4053c1..84cd5f3 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,409 +1,450 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 (function () { - var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} + +// 支持 cube 的一些工具方法 +function noop() { } +function baseCodeProxy(c) { + return c; +} +function combineExecute(c) { + return 'Cube.cStart();' + c + ';Cube.cStop();'; +} +function fetchCubeCode(url, inputCodeProxy, responseAdapter) { + var codeProxy = inputCodeProxy || baseCodeProxy; + var options = typeof url === 'string' ? { url: url } : url; + return (typeof options.fetch === 'function' ? options.fetch : fetch)(options.url, { + headers: { + "Content-Type": "text/plain", + }, + }) + .then(function (response) { + if (responseAdapter) + responseAdapter(response); + return response; + }) + .then(function (response) { return response.text(); }) + .then(function (code) { + var _a; + try { + return new Function(codeProxy(code))(); + } + catch (error) { + (_a = options.onCodeError) === null || _a === void 0 ? void 0 : _a.call(options, error, { + url: options.url, + }); + /** 保持抛错 */ + console.error(error); + } + }); +} +var head = document.querySelector('head'); +/** 原有 cube 请求方法 */ +function scriptCubeCode(url) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.async = true; + script.onerror = function () { + console.error("load module failed."); + }; + script.src = url; + head.appendChild(script); +} +function fixMododulePath(paths, remoteSeparator) { + var len = paths.length; + var mod; + for (var i = 0; i < len; i++) { + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } + else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; + } + } + } + return paths; +} +var parseCssRe = /([^};]+)(\{[^}]+\})/g; +/** 原有 css 请求方法 */ +function scriptCubeCss(originCss, namespace, file) { + var css = originCss; + if (namespace) { + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); + }); + return selectors.join(',') + m2; + }); + } + var style = document.createElement('style'); + style.setAttribute('type', 'text/css'); + if (file) { + style.setAttribute('mod', file); + } + if (namespace) { + style.setAttribute('ns', namespace); + } + head.appendChild(style); + style.innerHTML = css; + return css; +} +function parseQueryString(param) { + var kvs = param.split('&'); + var obj = {}; + kvs.forEach(function (kv) { + var tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; + }); + return obj; +} +/** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ +function rebase(name, config) { + var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; + var defaultPath = base + name; + var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; + if (offset <= 0) + return defaultPath; + var rbase = name.substr(0, offset); + if (!remoteBase[rbase]) + return defaultPath; + return remoteBase[rbase] + name.substr(offset + 1); +} +// 定制业务逻辑 ?env=publish === 不加 env +// 此逻辑加在 cube 似乎处不合理 +function removePublishName(name) { + var _a = String(name).split('?'), main = _a[0], params = _a[1]; + if (params) { + var kvs = params.split('&'); + if (kvs.includes('env=publish')) { + kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); + var newParams = kvs.join('&'); + if (newParams) { + return main + '?' + newParams; + } + else { + return main; + } + } + } + return name; +} +// 从模块路径中提取模块名称和模块版本 +function extractModuleInfo(path) { + var regex = /^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/; + var match = path.match(regex); + if (!match) + return null; + var moduleName = match[1]; + var modulePath = match[3] || ""; // 模块路径(默认为空字符串) + return { moduleName: moduleName, modulePath: modulePath }; +} +// require => datav:/npm/react/16.4.6?env=xxx +function extractModuleInfoFromRequire(require) { + var regex = /^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/; + var match = require.match(regex); + if (!match) + return null; + var moduleName = match[1]; + var modulePath = match[3] || ""; // 模块路径(默认为空字符串) + return { moduleName: moduleName, modulePath: modulePath }; +} + +// import Cube from 'node-cube/runtime/cube'; + +function mockClassialCube() { + /* short global val */ + var global = window; + var doc = document; + var log = console; + + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; + + var mockedProcess = { + env: { NODE_ENV: 'production' }, }; - - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - } - - // 支持 cube 的一些工具方法 - function noop() { } - function baseCodeProxy(c) { - return c; - } - function combineExecute(c) { - return 'Cube.cStart();' + c + ';Cube.cStop();'; - } - function fetchCubeCode(url, inputCodeProxy, responseAdapter) { - var codeProxy = inputCodeProxy || baseCodeProxy; - var options = typeof url === 'string' ? { url: url } : url; - return (typeof options.fetch === 'function' ? options.fetch : fetch)(options.url, { - headers: { - "Content-Type": "text/plain", - }, - }) - .then(function (response) { - if (responseAdapter) - responseAdapter(response); - return response; - }) - .then(function (response) { return response.text(); }) - .then(function (code) { - var _a; - try { - return new Function(codeProxy(code))(); - } - catch (error) { - (_a = options.onCodeError) === null || _a === void 0 ? void 0 : _a.call(options, error, { - url: options.url, - }); - /** 保持抛错 */ - console.error(error); - } - }); - } - var head = document.querySelector('head'); - /** 原有 cube 请求方法 */ - function scriptCubeCode(url) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.async = true; - script.onerror = function () { - console.error("load module failed."); - }; - script.src = url; - head.appendChild(script); - } - function fixMododulePath(paths, remoteSeparator) { - var len = paths.length; - var mod; - for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } - else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } - } - } - return paths; - } - var parseCssRe = /([^};]+)(\{[^}]+\})/g; - /** 原有 css 请求方法 */ - function scriptCubeCss(originCss, namespace, file) { - var css = originCss; - if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; - }); - } - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - if (file) { - style.setAttribute('mod', file); - } - if (namespace) { - style.setAttribute('ns', namespace); - } - head.appendChild(style); - style.innerHTML = css; - return css; - } - function parseQueryString(param) { - var kvs = param.split('&'); - var obj = {}; - kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; - }); - return obj; - } + var mockedGlobal = undefined; + var esModule = false; + + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + // 注册表。 eg. { [moduleName]: { [modulePath]: { require, matchType, match, module } } } + var registerMap = {}; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + // type BlackList = Array + var combineBlackList = []; + + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + var combineFailTime = 10000; + + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + let fetchMethod = undefined; + let onCodeError = undefined; + /** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + * The require function + * @param module + * @param namespace + * @returns {*} + * @private */ - function rebase(name, config) { - var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; - var defaultPath = base + name; - var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) - return defaultPath; - var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) - return defaultPath; - return remoteBase[rbase] + name.substr(offset + 1); - } - // 定制业务逻辑 ?env=publish === 不加 env - // 此逻辑加在 cube 似乎处不合理 - function removePublishName(name) { - var _a = String(name).split('?'), main = _a[0], params = _a[1]; - if (params) { - var kvs = params.split('&'); - if (kvs.includes('env=publish')) { - kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); - var newParams = kvs.join('&'); - if (newParams) { - return main + '?' + newParams; - } - else { - return main; - } - } - } - return name; + function __cube_require__(module, namespace) { + if (arguments.length === 1) { + return fireModule(module); + } else { + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; + } } - - // import Cube from 'node-cube/runtime/cube'; - - function mockClassialCube() { - /* short global val */ - var global = window; - var doc = document; - var log = console; - - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = true; - - var mockedProcess = { - env: { NODE_ENV: 'production' }, - }; - var mockedGlobal = undefined; - var esModule = false; - - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - var registerArr = []; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - var combineMap = {}; - // type BlackList = Array - var combineBlackList = []; - - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - var combineFailTime = 10000; - - // watch! 旧版使用 fetch 容易产生问题 - let requestMethod = 'script'; // 'fetch' | 'script' - // let isIntercepted = false; - let fetchMethod = undefined; - let onCodeError = undefined; - + + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { /** - * The require function + * The load function * @param module * @param namespace - * @returns {*} + * @param cb * @private */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); + return function __cube_load__(module, namespace, cb) { + if (arguments.length === 2 && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); } + }; + } + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { + return false; } - - /** - * This function creates the load function - */ - function __cube_load_creator__(referer) { - /** - * The load function - * @param module - * @param namespace - * @param cb - * @private - */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); - } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + startAppAndCallback(); + } + + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } + + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ) ; else { + return; } + } + + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; - - function checkAllDownloaded() { - if (loadQueue.length) { - return false; + + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); + + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; + + var query = []; + if (version) { + query.push(version); } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { - return false; + // 目前仅根节点(组件级别)发起 combine + if (checkCombineState(srcPath) && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, combineFailTime), + failed: false, + }; } } - startAppAndCallback(); - } - - /** - * 下载模块 - * @param requires - * @param referer - * @param root 是否为顶层请求组件 - */ - function load(requires, referer, root) { - if (typeof requires === 'string') { - requires = [requires]; + + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); } - if (!inited) { - loadQueue.push([requires, referer]); - return; + + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); } - - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - if ( - combineMap[require] && - combineMap[require].failed && - installedModules[require] && - installedModules[require].loaded === false - ) ; else { - return; - } - } - - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, - }; - - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; - - var query = []; - if (version) { - query.push(version); - } - // 目前仅根节点(组件级别)发起 combine - if (checkCombineState(srcPath) && root) { - query.push('combine=true'); - installedModules[require].combine = true; - if (!combineMap[require]) { - combineMap[require] = { - start: Date.now(), - timeout: setTimeout(() => { - if (loading[require]) { - combineMap[require].failed = true; - load(require, referer); - // 标记超时了 - } - }, combineFailTime), - failed: false, - }; - } - } - - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } - - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - - if (requestMethod === 'fetch') { - // combine 接口失败后的 traceId 记录排查 - if (combine && combineMap[require] && !combineMap[require].traceId) { - fetchCubeCode({ - url: srcPath, - fetch: fetchMethod, - onCodeError: onCodeError, - }, undefined, (res) => { - if (res.headers.has('request-id')) { - combineMap[require].traceId = res.headers.get('request-id'); - } - }); - } else { - fetchCubeCode(srcPath); - } + + if (requestMethod === 'fetch') { + // combine 接口失败后的 traceId 记录排查 + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode({ + url: srcPath, + fetch: fetchMethod, + onCodeError: onCodeError, + }, undefined, (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + }); } else { - scriptCubeCode(srcPath); + fetchCubeCode(srcPath); } - - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - - function checkCombineState(path) { - if (!combine) return false; - if (combineBlackList.length) { - return !combineBlackList.some((black) => { - return !!path.match(black); - }); + } else { + scriptCubeCode(srcPath); } - // combineBlackList 没有或错误的情况下兜底 combine - return true; + + requireMap[mod] = require; + loading[require] = true; + }); + checkAllDownloaded(); + } + + function checkCombineState(path) { + if (!combine) return false; + if (combineBlackList.length) { + return !combineBlackList.some((black) => { + return !!path.match(black); + }); } - - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - for (const register of registerArr) { - if (require && register.match.test(require)) { - return register.module; - } - } + // combineBlackList 没有或错误的情况下兜底 combine + return true; + } + + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + if (!require.startsWith('datav:/npm/')) { return false; } - - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = getGlobalRegister(module) || installedModules[module]; - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; - } + + let { moduleName, modulePath } = extractModuleInfoFromRequire(require); + if (!registerMap[moduleName]) return false; + + modulePath = modulePath || 'default'; + if (registerMap[moduleName][modulePath]) return registerMap[moduleName][modulePath].module; + + Object.entries(registerMap[moduleName]).forEach(([path, register]) => { + if (register.match.test(require)) { + return register.module; } - if (!m.fired) { - m.fired = true; - if (strict) { + }); + return false; + } + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } else { + try { m.exports = m.fn.apply(global, [ m, m.exports, @@ -412,991 +453,987 @@ mockedProcess, mockedGlobal, ]); - } else { - try { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } catch (e) { - log.error(e); - m.exports = {}; - } + } catch (e) { + log.error(e); + m.exports = {}; } } - return isEsModule(m.exports) ? m.exports.default : m.exports; } - - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); - } + return isEsModule(m.exports) ? m.exports.default : m.exports; + } + + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); } - - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - // 定制业务逻辑 ?env=publish === 不加 env - mod = removePublishName(mod); - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; - } - // 记录或清理合并接口信息 - if (combineMap[name] && !mod.loaded) { - if (!combineMap[name].failed) { - clearTimeout(combineMap[name].timeout); - delete combineMap[name]; - } else { - combineMap[name].end = Date.now(); - } - } - - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; - - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); - } + } + + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; } - - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; - - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } - - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine !== undefined) { - combine = config.combine; - } - if (config.combineBlackList) { - combineBlackList = config.combineBlackList; - } - if (config.requestMethod) { - requestMethod = config.requestMethod; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } - - if (config.fetchMethod) { - fetchMethod = config.fetchMethod; - } - - if (config.onCodeError) { - onCodeError = config.onCodeError; - } - - if (config.combineFailTime) { - combineFailTime = config.combineFailTime; - } - - inited = true; - - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } - - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; - - if (typeof mods === 'string') { - mods = [removePublishName(mods)]; + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; } else { - mods = mods.map(removePublishName); - } - - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } - - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); - } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; - - return function (exports) { - if (firing) { - return; - } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; - } - }; - })() - ); - load(mods, referer, true); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, - }; - - if (matchType === 'module') { - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - }); + combineMap[name].end = Date.now(); } - - if (matchType === 'function') { - const [ moduleName, ...modulePathArr ] = module.split('/'); - if (!modulePathArr.length) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' matchType is function, but no path'); + } + + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; + + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } + } + + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; + + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); } - registerArr.push({ - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePathArr.join('/')}$`), - module: installedModules[module], - }); - } - - return this; - }; - /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code - */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; - - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; - - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; + } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } + + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine !== undefined) { + combine = config.combine; + } + if (config.combineBlackList) { + combineBlackList = config.combineBlackList; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } + + if (config.fetchMethod) { + fetchMethod = config.fetchMethod; + } + + if (config.onCodeError) { + onCodeError = config.onCodeError; + } + + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } + + inited = true; + + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } + + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; + + if (typeof mods === 'string') { + mods = [removePublishName(mods)]; + } else { + mods = mods.map(removePublishName); + } + + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } + + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; + + return function (exports) { + if (firing) { + return; } - if (!m.fired) { - unfired[i] = m; + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; } - } - } - - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); + }; + })() + ); + load(mods, referer, true); + return this; + }; + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, }; - - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; + + if (matchType === 'module') { + registerMap[module] = registerMap[module] || {}; + registerMap[module].default = { + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + moduleName: module, + }; } - - /** - * intergration with - */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); - }); + + if (matchType === 'function') { + const { moduleName, modulePath } = extractModuleInfo(module); + + if (!modulePath) { + return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' matchType is function, but no path'); } + + registerMap[moduleName] = registerMap[moduleName] || {}; + registerMap[moduleName][modulePath] = { + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePath}$`), + module: installedModules[module], + moduleName, + }; } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - combine, - combineMap, - }; - }, - }); - - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; - } - } - + + return this; + }; /** - * 默认配置项变量 + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code */ - var DEFAULT_CUBE_CONFIG = { - base: '', - remoteBase: {}, - remoteSeparator: ':', - mockedProcess: { - env: { NODE_ENV: 'production' }, - }, - mockedGlobal: undefined, - /** 这个字段应该已经废弃了 */ - charset: 'utf-8', - /** 仅严格模式 */ - strict: true, - /** 声明组件源码是否使用 esModule 模式*/ - esModule: false, - version: undefined, - /** 是否开启 debug 模式*/ - debug: true, - /** 是否开启请求合并 */ - combine: false, - /** 声明使用 fetch 请求还是创建 script 请求 */ - requestMethod: 'fetch', - // 旧版 fetchUndeclaredModule = false && aggregateFetch = true - // 新版 fetchUndeclaredModule = true && aggregateFetch = false - /** 是否重新请求未声明的文件 */ - fetchUndeclaredModule: false, - /** 是否聚合请求 */ - aggregateFetch: true, - /** 自定义 fetch 方法 */ - fetchMethod: undefined, - /** 下载脚本报错回调 */ - onCodeError: undefined, + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } + } + } + + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); }; + + if (global['Cube']) { + log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); + } else { + global['Cube'] = Cube; + } + /** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + * intergration with */ - var Cube = /** @class */ (function () { - function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: false, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - // 是否处于文件合并执行状态 - fileExecuting: false, - // 聚合请求 - aggregateLoading: {}, - delayTrigger: undefined, - // TODO 新版支持 combine 兜底(combineMap) - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - var _a; - if (option === void 0) { option = { matchType: 'version' }; } - var matchType = option.matchType; - if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: true, - }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e, _f, _g; - if (_this.state.inited) { - console.warn('Cube 重复初始化,可能产生资源请求错误'); - } - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; - _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; - _this.config.fetchMethod = config.fetchMethod || fetch; - _this.config.onCodeError = config.onCodeError; - _this.state.inited = true; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } - else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - var entry = { - callback: callback, - loadSource: {}, - targets: __spreadArray([], moduleNames, true), - }; - if (_this.config.aggregateFetch) ; - else { - moduleNames.forEach(function (i) { - entry.loadSource[i] = false; - }); - } - _this.state.entrances.set(moduleNames, entry); - moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); - }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); - }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); - }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { - var _a; - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; - } - else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleName, entryKey) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); - } - if (!_this.config.aggregateFetch) { - var entry = _this.state.entrances.get(entryKey); - if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { - entry.loadSource[moduleName] = false; - } - } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, entryKey]); - return; - } - var module = _this._getModule(moduleName); - if (module) { - _this._addReferToDependency(moduleName, module, entryKey); - if (module.loaded) { - _this._triggerCallback(moduleName, module); - } - return; - } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - }, - loaded: false, - firing: false, - fired: false, - }; - _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode({ - url: srcPath, - fetch: _this.config.fetchMethod, - onCodeError: _this.config.onCodeError, - }, combineExecute) : scriptCubeCode(srcPath); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - _this._triggerCallback(moduleName, module); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (moduleName, module) { - if (!module.loaded) - return; - if (_this.config.aggregateFetch) { - module.dep.forEach(function (m) { - var _a; - if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._load(m, []); - }); - if (_this.state.aggregateLoading[moduleName]) { - delete _this.state.aggregateLoading[moduleName]; - _this._triggerAllCallback(); - } - return; - } - var refDep = module.refer; - var finishedEntry = []; - refDep.entryDep.forEach(function (entryKey) { - var entry = _this.state.entrances.get(entryKey); - if (entry) { - entry.loadSource[moduleName] = true; - var next_1 = true; - if (!module.fired) { - module.dep.forEach(function (m) { - if (entry.loadSource[m]) - return; - var subModule = _this._getModule(m); - if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) - return; - next_1 = false; - _this._load(m, entryKey); - }); - } - if (next_1) { - // 考虑标记 unload 提速 - if (Object.values(entry.loadSource).every(function (i) { return i; })) { - _this._triggerEntryCallback(entryKey, entry); - } - } - } - else { - finishedEntry.push(entryKey); - } - }); - if (finishedEntry.length) { - module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); - } - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entryKey, entry) { - var readyCallback = true; - entry.targets.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) - return; - // 理论上不会不存在 - if (module.firing) { - readyCallback = false; - return; - } - _this._fireModule(moduleName); - if (module.fired) - return; - readyCallback = false; - }); - if (readyCallback) { - entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); - _this.state.entrances.delete(entryKey); - } - }; - this._triggerAllCallback = function () { - if (_this.state.delayTrigger) - return; - // this.state.delayTrigger = setTimeout(() => { - // this.state.delayTrigger = undefined; - if (_this.state.pendingQueue.length) - return; - if (Object.keys(_this.state.aggregateLoading).length) - return; - _this.state.entrances.forEach(function (entry, entryKey) { - _this._triggerEntryCallback(entryKey, entry); - }); - // }); - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.loaded) - return false; - if (module.fired) - return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; - module.error = false; - } - catch (e) { - if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } - else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } - finally { - module.firing = false; - if (_this.config.fetchUndeclaredModule) { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - module.refer.entryDep.forEach(function (eKey) { - _this._load(name, eKey); - }); - console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; - } - } - else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { return function (moduleName, namespace) { - if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; - } - var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { - if (_this.config.fetchUndeclaredModule) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } - else { - _this.state.lostDepModule[selfName] = [moduleName]; - } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error("Cube inner denpendency lost; refetch inited"); - } - else { - throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); - } - } - else { - return module.exports; - } - } - else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module = _this._getModule(moduleName); - if (!module || !module.loaded) - return; - if (module.fired) { - css = module.exports; - } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module.exports; - } - return _this.css(css, namespace, moduleName); - } - }; }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } - else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); - } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push(Object.keys(customArgs_1).map(function (c) { - return "".concat(c, "=").concat(customArgs_1[c]); - })); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToDependency = function (moduleName, module, referer) { - if (_this.config.aggregateFetch) { - if (!module.loaded) { - _this.state.aggregateLoading[moduleName] = true; - } - return; - } - var refDep = module.refer; - if (!referer) { - return; - } - if (!refDep.entryDep.includes(referer)) { - refDep.entryDep.push(referer); - } - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getModule = function (name) { - // TODO 此处有问题 理论上优先选取 globalRegister - // 但考虑到正则匹配的耗时 每次匹配耗时过长 - // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); - console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); - }; - } - return Cube; - }()); - function getStringOnlyObj() { - return new Proxy({}, { - get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); - }, - set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); - }, + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); }); + } } - /** 全局初始化单例 */ - function setGlobalCube(oldVersion) { - var alias = 'Cube'; - var global = window; - if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; - } - if (oldVersion) { - mockClassialCube(); - } - else { - var cube_1 = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube_1.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube_1).includes(key)) { - return cube_1[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; - } - var cubeVersion = '5.0.0-beta.21'; - global[alias].cubeVersion = cubeVersion; - global[alias].oldVersion = oldVersion; - return global[alias]; + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, + }; + }, + }); + + function isEsModule(module) { + return esModule && module && typeof module === 'object' && module.__esModule; } - - setGlobalCube(true); - })(); \ No newline at end of file +} + +/** + * 默认配置项变量 + */ +var DEFAULT_CUBE_CONFIG = { + base: '', + remoteBase: {}, + remoteSeparator: ':', + mockedProcess: { + env: { NODE_ENV: 'production' }, + }, + mockedGlobal: undefined, + /** 这个字段应该已经废弃了 */ + charset: 'utf-8', + /** 仅严格模式 */ + strict: true, + /** 声明组件源码是否使用 esModule 模式*/ + esModule: false, + version: undefined, + /** 是否开启 debug 模式*/ + debug: true, + /** 是否开启请求合并 */ + combine: false, + /** 声明使用 fetch 请求还是创建 script 请求 */ + requestMethod: 'fetch', + // 旧版 fetchUndeclaredModule = false && aggregateFetch = true + // 新版 fetchUndeclaredModule = true && aggregateFetch = false + /** 是否重新请求未声明的文件 */ + fetchUndeclaredModule: false, + /** 是否聚合请求 */ + aggregateFetch: true, + /** 自定义 fetch 方法 */ + fetchMethod: undefined, + /** 下载脚本报错回调 */ + onCodeError: undefined, +}; +/** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ +var Cube = /** @class */ (function () { + function Cube() { + var _this = this; + this.config = __assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: false, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + // 是否处于文件合并执行状态 + fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, + // TODO 新版支持 combine 兜底(combineMap) + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = function (moduleName, exports, option) { + var _a; + if (option === void 0) { option = { matchType: 'version' }; } + var matchType = option.matchType; + if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { + return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); + } + _this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: true, + }; + if (matchType === 'module') { + _this.state.registerModules.push({ + moduleName: moduleName, + matchType: matchType, + match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), + module: _this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = function (config) { + var _a, _b, _c, _d, _e, _f, _g; + if (_this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } + if (config.base && config.base !== '/') { + _this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } + } + } + _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; + _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; + _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; + _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; + _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; + _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; + _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; + _this.config.fetchMethod = config.fetchMethod || fetch; + _this.config.onCodeError = config.onCodeError; + _this.state.inited = true; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /** + * 异步加载模块 + */ + this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + var moduleNames = typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : __spreadArray([], moduleName, true); + var omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + var callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } + else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; + var entry = { + callback: callback, + loadSource: {}, + targets: __spreadArray([], moduleNames, true), + }; + if (_this.config.aggregateFetch) ; + else { + moduleNames.forEach(function (i) { + entry.loadSource[i] = false; + }); + } + _this.state.entrances.set(moduleNames, entry); + moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = function (responseName, requires, sourceCode) { + var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } + var moduleName = _this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._store(moduleName, requires, sourceCode); + _this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (_this.state.cssModule[modId]) { + return; + } + _this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = function (moduleName, dep, sourceCode) { + var _a; + var module = _this.state.installedModules[moduleName]; + if (module) { + (_a = module.dep).push.apply(_a, dep); + module.sourceCode = sourceCode; + module.loaded = true; + } + else { + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: sourceCode, + dep: dep, + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = function (moduleName, entryKey) { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!_this.config.aggregateFetch) { + var entry = _this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; + } + } + if (!_this.state.inited || _this.state.fileExecuting) { + _this.state.pendingQueue.push([moduleName, entryKey]); + return; + } + var module = _this._getModule(moduleName); + if (module) { + _this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + _this._triggerCallback(moduleName, module); + } + return; + } + var name = moduleName.split('?')[0]; + _this.state.requireMap[name] = moduleName; + _this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + }, + loaded: false, + firing: false, + fired: false, + }; + _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); + var srcPath = _this._generatePath(moduleName); + _this.config.requestMethod === 'fetch' ? fetchCubeCode({ + url: srcPath, + fetch: _this.config.fetchMethod, + onCodeError: _this.config.onCodeError, + }, combineExecute) : scriptCubeCode(srcPath); + }; + /** 实例化并执行回调 */ + this._initiate = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + _this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = function (moduleName, module) { + if (!module.loaded) + return; + if (_this.config.aggregateFetch) { + module.dep.forEach(function (m) { + var _a; + if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { + return; + } + _this._load(m, []); + }); + if (_this.state.aggregateLoading[moduleName]) { + delete _this.state.aggregateLoading[moduleName]; + _this._triggerAllCallback(); + } + return; + } + var refDep = module.refer; + var finishedEntry = []; + refDep.entryDep.forEach(function (entryKey) { + var entry = _this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + var next_1 = true; + if (!module.fired) { + module.dep.forEach(function (m) { + if (entry.loadSource[m]) + return; + var subModule = _this._getModule(m); + if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) + return; + next_1 = false; + _this._load(m, entryKey); + }); + } + if (next_1) { + // 考虑标记 unload 提速 + if (Object.values(entry.loadSource).every(function (i) { return i; })) { + _this._triggerEntryCallback(entryKey, entry); + } + } + } + else { + finishedEntry.push(entryKey); + } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); + } + }; + /** 执行回调函数 */ + this._triggerEntryCallback = function (entryKey, entry) { + var readyCallback = true; + entry.targets.forEach(function (moduleName) { + var module = _this._getModule(moduleName); + if (module.fired) + return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; + } + _this._fireModule(moduleName); + if (module.fired) + return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); + _this.state.entrances.delete(entryKey); + } + }; + this._triggerAllCallback = function () { + if (_this.state.delayTrigger) + return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (_this.state.pendingQueue.length) + return; + if (Object.keys(_this.state.aggregateLoading).length) + return; + _this.state.entrances.forEach(function (entry, entryKey) { + _this._triggerEntryCallback(entryKey, entry); + }); + // }); + }; + /** 实例化某一模块 */ + this._fireModule = function (moduleName) { + var module = _this.state.installedModules[moduleName]; + if (!module || !module.loaded) + return false; + if (module.fired) + return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + var fireResult = true; + try { + module.firing = true; + var exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + _this._cubeRequire(moduleName), + _this._cubeLoad(moduleName), + _this.config.mockedProcess, + _this.config.mockedGlobal, + ]); + module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.error = false; + } + catch (e) { + if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } + else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } + finally { + module.firing = false; + if (_this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (_this.state.lostDepModule[moduleName]) { + _this.state.lostDepModule[moduleName].forEach(function (name) { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach(function (eKey) { + _this._load(name, eKey); + }); + console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); + } + }); + Reflect.deleteProperty(_this.state.lostDepModule, moduleName); + fireResult = false; + } + } + else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = function (selfName) { return function (moduleName, namespace) { + if (namespace === undefined) { + var module = _this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + var fireFinished = _this._fireModule(moduleName); + if (!module || !fireFinished) { + if (_this.config.fetchUndeclaredModule) { + if (_this.state.lostDepModule[selfName]) { + _this.state.lostDepModule[selfName].push(moduleName); + } + else { + _this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error("Cube inner denpendency lost; refetch inited"); + } + else { + throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); + } + } + else { + return module.exports; + } + } + else { + // 默认 css 模块不再依赖其它模块 + var css = void 0; + var module = _this._getModule(moduleName); + if (!module || !module.loaded) + return; + if (module.fired) { + css = module.exports; + } + var fireSucceed = _this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return _this.css(css, namespace, moduleName); + } + }; }; + /** 支持组件内模块加载 */ + this._cubeLoad = function (referer) { + /** The load function */ + var __cube_load__ = function (moduleName, namespace, cb) { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + _this.use(moduleName, referer, cb); + } + else { + _this.use(moduleName, referer, function (css) { + css = _this.css(css, namespace, moduleName); + cb && cb(css); + }); + } + }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = function (moduleName) { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; + var srcPath = rebase(name, _this.config); + var query = []; + if (_this.config.version) { + query.push(_this.config.version); + } + if (_this.config.combine) { + query.push('combine=true'); + } + if (custom) { + var customArgs_1 = parseQueryString(custom); + query.push(Object.keys(customArgs_1).map(function (c) { + return "".concat(c, "=").concat(customArgs_1[c]); + })); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToDependency = function (moduleName, module, referer) { + if (_this.config.aggregateFetch) { + if (!module.loaded) { + _this.state.aggregateLoading[moduleName] = true; + } + return; + } + var refDep = module.refer; + if (!referer) { + return; + } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); + } + }; + /** 修正返回值 */ + this._calibrateName = function (responseName) { + // 兼容返回的 name 不带入参的情况 + var moduleName = _this.state.requireMap[responseName] || responseName; + if (_this.state.requireMap[responseName]) { + Reflect.deleteProperty(_this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = function (requirePath) { + for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { + var register = _a[_i]; + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getModule = function (name) { + // TODO 此处有问题 理论上优先选取 globalRegister + // 但考虑到正则匹配的耗时 每次匹配耗时过长 + // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 + var module = _this.state.installedModules[name]; + if (!module) { + return _this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = function (module) { + return _this.config.esModule && module && typeof module === 'object' && module.__esModule; + }; + this.cStart = function () { + _this.state.fileExecuting = true; + }; + this.cStop = function () { + _this.state.fileExecuting = false; + for (var i = 0; i < _this.state.pendingQueue.length; i++) { + var pendingInfo = _this.state.pendingQueue[i]; + _this._load(pendingInfo[0], pendingInfo[1]); + } + _this.state.pendingQueue = []; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = function () { + console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); + console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); + console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); + }; + /** @deprecated */ + this.debug = function () { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = function () { + console.error('不支持动态修改 remoteBase'); + }; + } + return Cube; +}()); +function getStringOnlyObj() { + return new Proxy({}, { + get: function (target, propKey) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); + }, + set: function (target, propKey, value, receiver) { + var key = typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); + }, + }); +} +/** 全局初始化单例 */ +function setGlobalCube(oldVersion) { + var alias = 'Cube'; + var global = window; + if (global[alias]) { + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; + } + if (oldVersion) { + mockClassialCube(); + } + else { + var cube_1 = new Cube(); + // 支持 Cube(...args) 的写法 + var cubeHandler = function (moduleName, requires, instance) { + return cube_1.execute(moduleName, requires, instance); + }; + var mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube_1).includes(key)) { + return cube_1[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; + } + var cubeVersion = '5.0.0-beta.22'; + global[alias].cubeVersion = cubeVersion; + global[alias].oldVersion = oldVersion; + return global[alias]; +} + +setGlobalCube(true); +})(); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 1f8d8a2..b71c0d4 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.21 + * Cube v5.0.0-beta.22 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(){function a(a,b){if(1===arguments.length)return o(a);var c=o(a);return q.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,q.use(b,a,d)):q.use(b,a,function(a){a=q.css(a,c,b),d&&d(a)})}}function d(){if(N.length)return!1;for(var a in J)if(J.hasOwnProperty(a))return!1;p()}function l(a,b,c){return'string'===typeof a&&(a=[a]),M?void(a.forEach(function(a){if(I[a]||n(a))if(K[a]&&K[a].failed&&I[a]&&!1===I[a].loaded);else return;I[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:w,remoteSeparator:y,remoteBase:x}),k=h||w+d,o=[];if(s&&o.push(s),m(k)&&c&&(o.push('combine=true'),I[a].combine=!0,!K[a]&&(K[a]={start:Date.now(),timeout:setTimeout(()=>{J[a]&&(K[a].failed=!0,l(a,b))},O),failed:!1})),g){const a=i(g);Array.prototype.push.apply(o,Object.keys(a).map((b)=>`${b}=${a[b]}`))}o.length&&(k=k+'?'+o.join('&')),'fetch'===R?B&&K[a]&&!K[a].traceId?e({url:k,fetch:P,onCodeError:Q},void 0,(b)=>{b.headers.has('request-id')&&(K[a].traceId=b.headers.get('request-id'))}):e(k):f(k),G[d]=a,J[a]=!0}),d()):void N.push([a,b])}function m(a){return!!B&&(!L.length||!L.some((b)=>!!a.match(b)))}function n(a){for(const b of H)if(a&&b.match.test(a))return b.module;return!1}function o(b){var d=n(b)||I[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(A)throw a;else return v.error(a),{}}if(!d.fired)if(d.fired=!0,A)d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D]);else try{d.exports=d.fn.apply(t,[d,d.exports,a,c(b),C,D])}catch(a){v.error(a),d.exports={}}return r(d.exports)?d.exports.default:d.exports}function p(){for(let[a,b]of F)a.length&&a.forEach(function(c){if(J[c])return;var d=0;const e=o(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&F.delete(a)})}function q(a,b,c){const d=a+'';a=G[a]||a;var e=I[a];e=k(e),e||(e=I[a]={exports:{},fired:!1}),K[a]&&!e.loaded&&(K[a].failed?K[a].end=Date.now():(clearTimeout(K[a].timeout),delete K[a])),e.loaded=!0,e.fn=c,G[d]&&delete G[d],J[a]?(delete J[a],l(b,a)):b.length&&l(b,a)}function r(a){return E&&a&&'object'===typeof a&&a.__esModule}var s,t=window,u=document,v=console,w='',x={},y=':',z='utf-8',A=!0,B=!0,C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F=new Map,G={},H=[],I={},J={},K={},L=[],M=!1,N=[],O=1e4;let P,Q,R='script';q.setRemoteBase=function(a){Object.assign(x,a)},q.toString=function(){return'Cube:v5.0.0-beta.21'},q.init=function(a){if(a.base&&'/'!==a.base&&(w=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(x[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(z=a.charset),a.version&&(s=a.version),void 0!==a.strict&&(A=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.combine&&(B=a.combine),a.combineBlackList&&(L=a.combineBlackList),a.requestMethod&&(R=a.requestMethod),void 0!==a.esModule&&(E=a.esModule),a.fetchMethod&&(P=a.fetchMethod),a.onCodeError&&(Q=a.onCodeError),a.combineFailTime&&(O=a.combineFailTime),M=!0;N.length;){var c=N.shift();l(c[0],c[1])}return this},q.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,y)),F.has(a)||F.set(a,[]),F.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(t,b),!0):void 0}}()),l(a,c,!0),this},q.register=function(a,c,{matchType:d='version'}={}){if(I[a])return v.warn('Cube Warning: Module \''+a+'\' already registered');if(I[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:I[a]}),'function'===d){const[b,...c]=a.split('/');if(!c.length)return v.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');H.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c.join('/')}$`),module:I[a]})}return this};var S={};q.css=function(a,b,c){if(a){var d=c+'@'+b;if(!S[d])return S[d]=!0,h(a,b,c)}},q.debug=function(){v.error('Cube Error: Cube.debug nolonger supported')},q.cache=function(){var a,b,c={},d={};for(a in I)I.hasOwnProperty(a)&&(b=I[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));v.info('modules:',I),v.info('unloaded:',c),v.info('unfired:',d)},t.Cube?v.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):t.Cube=q;var T=u.currentScript;if(T){var U=T.dataset;U.base&&(q.init(U),q.use(U.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(q,'config',{get(){return{base:w,remoteBase:x,remoteSeparator:y,version:s,strict:A,debug:!0,esModule:E,mockedGlobal:D,mockedProcess:C,charset:z,combine:B,combineMap:K}}})}function m(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var n=function(){return n=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.22'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.21'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.22'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 490c214f0945e3a37e51550e1c9e295c4e018e39 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 1 Jul 2025 10:30:57 +0800 Subject: [PATCH 65/74] =?UTF-8?q?feat(wraper):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=AF=86=E5=88=ABpkg=E4=B8=AD=E7=9A=84exports=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20&=20=E4=BF=AE=E5=A4=8D=E6=89=BE=E6=9C=80=E8=BF=91?= =?UTF-8?q?=20pkg=20=E7=9A=84=E9=80=BB=E8=BE=91=20&=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=99=8D=E7=BA=A7=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 87 +- package-lock.json | 11105 ---------------------------------- package.json | 1 + 3 files changed, 73 insertions(+), 11120 deletions(-) delete mode 100644 package-lock.json diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 447d896..2fc2756 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -10,6 +10,30 @@ const uglifyJS = require("uglify-js"); const uuid = require('uuid'); const debug = require('debug')('cube:wraper'); const utils = require('../utils'); +const resolveExports = require('resolve.exports').resolve; + +function findNearestPackageJson(dir, root) { + let current = dir; + while (true) { + if (fs.existsSync(path.join(current, 'package.json'))) { + return current; + } + if (current === root || path.dirname(current) === current) break; + current = path.dirname(current); + } + return root; +} + +function getSubpath(modPath, pkgRoot) { + let rel = path.relative(pkgRoot, modPath).replace(/\\/g, '/'); // 兼容 Windows + if (!rel || rel === '' || rel === 'index.js') { + return '.'; + } + if (!rel.startsWith('.')) { + rel = './' + rel; + } + return rel; +} /** * transfer filename: the ext part @@ -151,7 +175,7 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { let moduleMap = cube.config.moduleMap; let tmpModPath; // @ns/module module 都需要在路径上拼 node_modules - const rootPath = /^@?\w+/.test(modName) ? path.resolve(modRootPath, 'node_modules') : modRootPath; + const rootPath = modRootPath; try { let pkg; let isRoot = false; @@ -182,23 +206,57 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { } tmpModPath = path.join(modPath, moduleMap[modName]); debug('testModPath: try moduleMap', tmpModPath); + try { + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } catch (e) { + } + } + + // 新增:优先支持 package.json 的 exports 字段 + if (!alreadyFound && pkg && pkg.exports) { + const subpath = getSubpath(modPath, modRootPath); + // 使用 resolve.exports 解析 exports 字段 + try { + let exportTarget = resolveExports(pkg, subpath, { require: true }); + if (Array.isArray(exportTarget)) { + exportTarget = exportTarget[0]; + } + if (exportTarget) { + tmpModPath = path.join(modRootPath, exportTarget); + debug('testModPath: try package.json.exports (via resolve.exports)', tmpModPath); + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } + } catch (e) { + } } /** * "browserify": "browserify.js" */ - else if (pkg && pkg.browserify && typeof pkg.browserify === 'string') { + if (!alreadyFound && pkg && pkg.browserify && typeof pkg.browserify === 'string') { tmpModPath = path.join(modPath, pkg.browserify); debug('testModPath: try package.json.browserify', tmpModPath); + try { + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } catch (e) { + } } /** * then search for browser config in package.json * "browser": "browser.js" */ - else if (pkg && pkg.browser && typeof pkg.browser === 'string') { + if (!alreadyFound && pkg && pkg.browser && typeof pkg.browser === 'string') { tmpModPath = path.join(modPath, pkg.browser); debug('testModPath: try package.json.browser', tmpModPath); + try { + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } catch (e) { + } } /** @@ -208,8 +266,8 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { * "fs": false * } */ - else if (pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modPath, rootPath)) { - const browserArr = Object.keys(browser); + if (!alreadyFound && pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modPath, rootPath)) { + const browserArr = Object.keys(pkg.browser); for (let i =0; i < browserArr.length; i++) { if (modPath === path.resolve(rootPath, browserArr[i])) { if (browser[browserArr[i]]) { @@ -228,24 +286,25 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { fs.writeFileSync(path.join(rootPath, id), 'module.exports = {};'); tmpModPath = path.join(rootPath, id); } - break; + try { + debug('testModPath: try package.json.browser object', tmpModPath); + tmpModPath = tryFiles(cube, root, tmpModPath); + alreadyFound = true; + } catch (e) { + } } } - debug('testModPath: try package.json.browser object', tmpModPath); } /** * then search for pkg.main */ - else if (pkg && isRoot && pkg.main && typeof pkg.main === 'string') { + if (!alreadyFound && pkg && isRoot && pkg.main && typeof pkg.main === 'string') { tmpModPath = path.join(modPath, pkg.main); debug('testModPath: try package.json.main ', tmpModPath); try { tmpModPath = tryFiles(cube, root, tmpModPath); alreadyFound = true; } catch (e) { - /** if package.main like : ./lib, it means ./lib/index.js **/ - tmpModPath = path.join(tmpModPath, './index.js'); - debug('testModPath: try package.json.main / index.js ', tmpModPath); } } else { try { @@ -253,8 +312,6 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { tmpModPath = tryFiles(cube, root, modPath); alreadyFound = true; } catch(e) { - tmpModPath = path.join(modPath, './index.js'); - debug('testModPath: try module_dir/index.js', tmpModPath); } } @@ -539,7 +596,7 @@ module.exports = { while (dir) { count++; nodeModulePath = path.join(root, dir, '/node_modules/', module); - moduleRootPath = path.join(root, dir); + moduleRootPath = findNearestPackageJson(nodeModulePath, root); let ignore = this.checkIgnore(nodeModulePath.substr(root.length)); if (ignore.ignore) { this.log.warn(`"${module}" which required by "${curModule}" is ignored by .cubeignore config`); @@ -583,7 +640,7 @@ module.exports = { p = path.join(root, dir, module); } try { - p = testModPath(this, p, module, root); + p = testModPath(this, p, module, findNearestPackageJson(p, root)); } catch (e) { debug('resolvePath error, module not found', module); this.log.warn(`required path:'${module}' not found in file: ${curModule}`); diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c4b4992..0000000 --- a/package-lock.json +++ /dev/null @@ -1,11105 +0,0 @@ -{ - "name": "node-cube", - "version": "5.0.0-beta.13", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "node-cube", - "version": "5.0.0-beta.13", - "license": "MIT", - "dependencies": { - "async": "2.6.0", - "babel-generator": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "clean-css": "^4.1.4", - "commander": "4.0.1", - "connect": "^3.6.3", - "cors": "^2.8.5", - "debug": "4.1.0", - "lodash": "4.17.15", - "serve-static": "1.12.4", - "tnpm-sync": "^1.0.1", - "uglify-js": "^3.14.1", - "uuid": "^8.3.0", - "xfs": "~0.2.2" - }, - "bin": { - "cube": "bin/cube" - }, - "devDependencies": { - "babel-preset-env": "*", - "cube-babel": "*", - "cube-coffee": "*", - "cube-ejs": "*", - "cube-jade": "*", - "cube-lazy-parse": "*", - "cube-less": "*", - "cube-react": "*", - "cube-stylus": "*", - "esminify": "3.0.5", - "expect.js": "0.3.1", - "jscoverage": "0.6.0", - "jsdom": "6.2.0", - "minami": "^1.1.1", - "mocha": "3.2.0", - "supertest": "3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/code-frame/download/@babel/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/compat-data/download/@babel/compat-data-7.22.3.tgz", - "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/core/download/@babel/core-7.6.4.tgz", - "integrity": "sha1-br2f4Akl9sPhd7tyahiLX1eAiP8=", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/generator/download/@babel/generator-7.22.3.tgz", - "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", - "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.22.1.tgz", - "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.22.1.tgz", - "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-environment-visitor/download/@babel/helper-environment-visitor-7.22.1.tgz", - "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-function-name/download/@babel/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.22.3.tgz", - "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.22.1.tgz", - "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.22.1.tgz", - "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-member-expression-to-functions": "^7.22.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-string-parser/download/@babel/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helpers/download/@babel/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/highlight/download/@babel/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/parser/download/@babel/parser-7.22.3.tgz", - "integrity": "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.21.5.tgz", - "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.22.3.tgz", - "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", - "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.22.3.tgz", - "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.22.3.tgz", - "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.6.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/preset-env/download/@babel/preset-env-7.6.3.tgz", - "integrity": "sha1-nhvwWi4taHA20kxA5GOdxGzvInE=", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.3", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.6.2", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.3", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/@babel/preset-env/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/regjsgen/download/@babel/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/runtime/download/@babel/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/template/download/@babel/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/traverse/download/@babel/traverse-7.22.1.tgz", - "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.22.0", - "@babel/types": "^7.22.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/types/download/@babel/types-7.22.3.tgz", - "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types/node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/gen-mapping/download/@jridgewell/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/resolve-uri/download/@jridgewell/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/set-array/download/@jridgewell/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/trace-mapping/download/@jridgewell/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/acorn": { - "version": "2.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-2.7.0.tgz", - "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/acorn-globals/download/acorn-globals-1.0.9.tgz", - "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", - "dev": true, - "dependencies": { - "acorn": "^2.1.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/align-text": { - "version": "0.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true, - "engines": { - "node": ">=0.4.2" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-1.0.0.tgz", - "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/asn1/download/asn1-0.2.6.tgz", - "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "2.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-2.6.0.tgz", - "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", - "dependencies": { - "lodash": "^4.14.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws4/download/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-core": { - "version": "6.25.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.22.0", - "babel-generator": "^6.25.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.25.0", - "babel-traverse": "^6.25.0", - "babel-types": "^6.25.0", - "babylon": "^6.17.2", - "convert-source-map": "^1.1.0", - "debug": "^2.1.1", - "json5": "^0.5.0", - "lodash": "^4.2.0", - "minimatch": "^3.0.2", - "path-is-absolute": "^1.0.0", - "private": "^0.1.6", - "slash": "^1.0.0", - "source-map": "^0.5.0" - } - }, - "node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-evaluate-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.3.0.tgz", - "integrity": "sha1-JDlUXgturlt/SbeQrL69a5pz3yA=", - "dev": true - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-flip-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.3.0.tgz", - "integrity": "sha1-9bY5S9Uhm0PPj3sgFTXtVAxuf6I=", - "dev": true - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-is-nodes-equiv": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", - "dev": true - }, - "node_modules/babel-helper-is-void-0": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.3.0.tgz", - "integrity": "sha1-lVcNIL0nsiBvaAg66ZgO5wA9j+c=", - "dev": true - }, - "node_modules/babel-helper-mark-eval-scopes": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.3.0.tgz", - "integrity": "sha1-tHMTFP3XqJCRJxpSE7ThLSNuKeg=", - "dev": true - }, - "node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-remove-or-void": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.3.0.tgz", - "integrity": "sha1-9DyGFHyPzDlalSjLsx5/9J1+FuM=", - "dev": true - }, - "node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-to-multiple-sequence-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", - "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=", - "dev": true - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helpers/download/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-minify-builtins": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.3.0.tgz", - "integrity": "sha1-R0ARemp4QGOq+PCSmJz55L1ISGA=", - "dev": true, - "dependencies": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-constant-folding": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.3.0.tgz", - "integrity": "sha1-aH5AM2vU3dkh4OGX8ABiNawYS7k=", - "dev": true, - "dependencies": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-dead-code-elimination": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", - "integrity": "sha1-oyP2hsQEuCQYa6VYPPeZbKyBcZ4=", - "dev": true, - "dependencies": { - "babel-helper-evaluate-path": "^0.3.0", - "babel-helper-mark-eval-scopes": "^0.3.0", - "babel-helper-remove-or-void": "^0.3.0", - "lodash.some": "^4.6.0" - } - }, - "node_modules/babel-plugin-minify-flip-comparisons": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.3.0.tgz", - "integrity": "sha1-ZieJOkCcnzDvfyyJ4Mbup+6X3cQ=", - "dev": true, - "dependencies": { - "babel-helper-is-void-0": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-guarded-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.3.0.tgz", - "integrity": "sha1-JVLZYYnvRdmkY/GmteT6EQcDrI0=", - "dev": true, - "dependencies": { - "babel-helper-flip-expressions": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-infinity": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.3.0.tgz", - "integrity": "sha1-xewO3UM1F88xs68XB3wgK+tIu+c=", - "dev": true - }, - "node_modules/babel-plugin-minify-mangle-names": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.3.0.tgz", - "integrity": "sha1-8oVhutDdLwOAgWgWu5RuIZs7YTU=", - "dev": true, - "dependencies": { - "babel-helper-mark-eval-scopes": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-numeric-literals": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.3.0.tgz", - "integrity": "sha1-tXc0phLopZIAVAcyPDIRGfJ9S0A=", - "dev": true - }, - "node_modules/babel-plugin-minify-replace": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.3.0.tgz", - "integrity": "sha1-mAElu/fLtaY3Q53p0LGwMKRpOJM=", - "dev": true - }, - "node_modules/babel-plugin-minify-simplify": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.3.0.tgz", - "integrity": "sha1-FFdMx00hyB0wYPr6BBAQAoGJ8Rs=", - "dev": true, - "dependencies": { - "babel-helper-flip-expressions": "^0.3.0", - "babel-helper-is-nodes-equiv": "^0.0.1", - "babel-helper-to-multiple-sequence-expressions": "^0.3.0" - } - }, - "node_modules/babel-plugin-minify-type-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.3.0.tgz", - "integrity": "sha1-f1qG7zIsR0Y2TjxZG4UU7q/qatQ=", - "dev": true, - "dependencies": { - "babel-helper-is-void-0": "^0.3.0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-inline-consecutive-adds": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", - "integrity": "sha1-8H2TaJwAAu0rK2KWm92Z9zTgP1c=", - "dev": true - }, - "node_modules/babel-plugin-transform-member-expression-literals": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.4.tgz", - "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", - "dev": true - }, - "node_modules/babel-plugin-transform-merge-sibling-variables": { - "version": "6.9.5", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.5.tgz", - "integrity": "sha512-xj/KrWi6/uP+DrD844h66Qh2cZN++iugEIgH8QcIxhmZZPNP6VpOE9b4gP2FFW39xDAY43kCmYMM6U0QNKN8fw==", - "dev": true - }, - "node_modules/babel-plugin-transform-minify-booleans": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.4.tgz", - "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", - "dev": true - }, - "node_modules/babel-plugin-transform-property-literals": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.4.tgz", - "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - } - }, - "node_modules/babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "dependencies": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/babel-plugin-transform-regexp-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.3.0.tgz", - "integrity": "sha1-m7LI3QgicaXLGzpEGnxS6P0H4PU=", - "dev": true - }, - "node_modules/babel-plugin-transform-remove-console": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz", - "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", - "dev": true - }, - "node_modules/babel-plugin-transform-remove-debugger": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.4.tgz", - "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", - "dev": true - }, - "node_modules/babel-plugin-transform-remove-undefined": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.3.0.tgz", - "integrity": "sha1-A/XwBxhneB6b6rvHt3v4CV/T8+w=", - "dev": true, - "dependencies": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "node_modules/babel-plugin-transform-simplify-comparison-operators": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", - "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", - "dev": true - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-undefined-to-void": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.4.tgz", - "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", - "dev": true - }, - "node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-env/download/babel-preset-env-1.7.0.tgz", - "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/babel-preset-minify": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-minify/download/babel-preset-minify-0.3.0.tgz", - "integrity": "sha1-fbZK+nXxb24GwKpfJRlfbzZ4TXc=", - "dev": true, - "dependencies": { - "babel-plugin-minify-builtins": "^0.3.0", - "babel-plugin-minify-constant-folding": "^0.3.0", - "babel-plugin-minify-dead-code-elimination": "^0.3.0", - "babel-plugin-minify-flip-comparisons": "^0.3.0", - "babel-plugin-minify-guarded-expressions": "^0.3.0", - "babel-plugin-minify-infinity": "^0.3.0", - "babel-plugin-minify-mangle-names": "^0.3.0", - "babel-plugin-minify-numeric-literals": "^0.3.0", - "babel-plugin-minify-replace": "^0.3.0", - "babel-plugin-minify-simplify": "^0.3.0", - "babel-plugin-minify-type-constructors": "^0.3.0", - "babel-plugin-transform-inline-consecutive-adds": "^0.3.0", - "babel-plugin-transform-member-expression-literals": "^6.9.0", - "babel-plugin-transform-merge-sibling-variables": "^6.9.0", - "babel-plugin-transform-minify-booleans": "^6.9.0", - "babel-plugin-transform-property-literals": "^6.9.0", - "babel-plugin-transform-regexp-constructors": "^0.3.0", - "babel-plugin-transform-remove-console": "^6.9.0", - "babel-plugin-transform-remove-debugger": "^6.9.0", - "babel-plugin-transform-remove-undefined": "^0.3.0", - "babel-plugin-transform-simplify-comparison-operators": "^6.9.0", - "babel-plugin-transform-undefined-to-void": "^6.9.0", - "lodash.isplainobject": "^4.0.6" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-register/download/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-register/node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-register/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-register/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-register/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-types/download/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/boom": { - "version": "2.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/boom/download/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npm.alibaba-inc.com/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/browser-request/download/browser-request-0.3.3.tgz", - "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=", - "dev": true, - "engines": [ - "node" - ] - }, - "node_modules/browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/browser-stdout/download/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, - "node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-3.2.8.tgz", - "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001489", - "resolved": "https://registry.npm.alibaba-inc.com/caniuse-lite/download/caniuse-lite-1.0.30001489.tgz", - "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", - "dev": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/center-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "dependencies": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/character-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/character-parser/download/character-parser-1.2.1.tgz", - "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", - "dev": true - }, - "node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-4.2.4.tgz", - "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/cliui/download/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "node_modules/cliui/node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npm.alibaba-inc.com/coffee-script/download/coffee-script-1.12.7.tgz", - "integrity": "sha1-wF2uDLeVkdBbMHCoQzqYyaiczFM=", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/coffeescript": { - "version": "2.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/coffeescript/download/coffeescript-2.7.0.tgz", - "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", - "dev": true, - "bin": { - "cake": "bin/cake", - "coffee": "bin/coffee" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.alibaba-inc.com/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-4.0.1.tgz", - "integrity": "sha1-tnYicheFmTGC6Af0iDYz5kAbpTw=", - "engines": { - "node": ">= 6" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/connect/download/connect-3.7.0.tgz", - "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/constantinople": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/constantinople/download/constantinople-3.0.2.tgz", - "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", - "deprecated": "Please update to at least constantinople 3.1.1", - "dev": true, - "dependencies": { - "acorn": "^2.1.0" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/convert-source-map/download/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/cookiejar/download/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npm.alibaba-inc.com/core-js/download/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.30.2", - "resolved": "https://registry.npm.alibaba-inc.com/core-js-compat/download/core-js-compat-3.30.2.tgz", - "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.5" - } - }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/core-js-compat/node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.anpm.alibaba-inc.com/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/cryptiles/download/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "dependencies": { - "boom": "2.x.x" - }, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/css": { - "version": "1.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/css/download/css-1.0.8.tgz", - "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", - "dev": true, - "dependencies": { - "css-parse": "1.0.4", - "css-stringify": "1.0.5" - } - }, - "node_modules/css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true - }, - "node_modules/css-stringify": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/css-stringify/download/css-stringify-1.0.5.tgz", - "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", - "dev": true - }, - "node_modules/css/node_modules/css-parse": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.0.4.tgz", - "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", - "dev": true - }, - "node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npm.alibaba-inc.com/cssom/download/cssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", - "dev": true - }, - "node_modules/cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npm.alibaba-inc.com/cssstyle/download/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, - "dependencies": { - "cssom": "0.3.x" - } - }, - "node_modules/cube-babel": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/cube-babel/download/cube-babel-1.0.4.tgz", - "integrity": "sha1-2mWUrv3hVQ3gRUF8rx8xX9ozTtE=", - "dev": true, - "dependencies": { - "@babel/core": "7.6.4", - "@babel/preset-env": "7.6.3", - "lodash": "4.17.15" - } - }, - "node_modules/cube-coffee": { - "version": "2.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/cube-coffee/download/cube-coffee-2.0.2.tgz", - "integrity": "sha1-y+8QXfbhCedi9os4QMJL7HJYRgs=", - "dev": true, - "dependencies": { - "coffeescript": "^2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cube-ejs": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-ejs/download/cube-ejs-2.0.1.tgz", - "integrity": "sha1-LWbZor8AYMZNm7IaFnaA1Vnm0tc=", - "dev": true, - "dependencies": { - "ejs": "2.4.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cube-jade": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-jade/download/cube-jade-2.0.1.tgz", - "integrity": "sha1-GLAAv7ea42XVYS37YdMcFwnx7RY=", - "dev": true, - "dependencies": { - "jade": "~1.11.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cube-lazy-parse": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-lazy-parse/download/cube-lazy-parse-1.0.1.tgz", - "integrity": "sha1-mucksT3OYryfdWRJvw5pCxflOPI=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cube-less": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-less/download/cube-less-3.1.1.tgz", - "integrity": "sha1-QpFLAgx0XKwPsaswQp7/kArSzbs=", - "dev": true, - "dependencies": { - "less": "3.0.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/cube-react": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/cube-react/download/cube-react-2.1.0.tgz", - "integrity": "sha1-SXepk6TYzoydZyfkuJUi6R/YMcE=", - "dev": true, - "dependencies": { - "babel-core": "~6.25.0", - "babel-plugin-transform-react-jsx": "~6.24.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cube-stylus": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/cube-stylus/download/cube-stylus-2.0.0.tgz", - "integrity": "sha1-dvSe8OEnzDZKg1I5+xuQyEKL9BI=", - "dev": true, - "dependencies": { - "stylus": "0.53.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npm.alibaba-inc.com/dashdash/download/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-4.1.0.tgz", - "integrity": "sha1-NzaHv/pnizixzZH4YbY4UANd3Ic=", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/deep-is/download/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/detect-indent/download/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/diff/download/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/dom-serializer/download/dom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", - "dev": true - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "node_modules/domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/domhandler/download/domhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", - "dev": true, - "dependencies": { - "domelementtype": "1" - } - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "2.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-2.4.1.tgz", - "integrity": "sha1-guFbGyoflIsYCXR2uivXxm9NFWY=", - "deprecated": "Critical security bugs fixed in 2.5.5", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.411", - "resolved": "https://registry.npm.alibaba-inc.com/electron-to-chromium/download/electron-to-chromium-1.4.411.tgz", - "integrity": "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npm.alibaba-inc.com/errno/download/errno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/escalade/download/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npm.alibaba-inc.com/escodegen/download/escodegen-1.14.3.tgz", - "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esminify": { - "version": "3.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/esminify/download/esminify-3.0.5.tgz", - "integrity": "sha1-AxN4p2Ye95VadnvXwwPs6Ln3XLQ=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-preset-minify": "0.3.0", - "commander": "2.10.0", - "litelog": "^2.0.8", - "lodash": "4.17.5", - "xfs": "0.2.3" - }, - "bin": { - "esminify": "bin/esminify" - } - }, - "node_modules/esminify/node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/esminify/node_modules/commander": { - "version": "2.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.10.0.tgz", - "integrity": "sha1-4fXTJF3iRtGlygRwL6GtG9fkBf4=", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/esminify/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/esminify/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/esminify/node_modules/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.5.tgz", - "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=", - "dev": true - }, - "node_modules/esminify/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/esminify/node_modules/xfs": { - "version": "0.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.3.tgz", - "integrity": "sha1-RW63DXVm3U33sXnIBOJaFZ+PKyU=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/estraverse/download/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npm.alibaba-inc.com/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/execa/download/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expect.js": { - "version": "0.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/expect.js/download/expect.js-0.3.1.tgz", - "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/formidable/download/formidable-1.2.6.tgz", - "integrity": "sha1-0qUdYBYrvJtKBV2EV6fHUxXRoWg=", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/fresh": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/fresh/download/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.alibaba-inc.com/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-7.0.5.tgz", - "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npm.alibaba-inc.com/graceful-fs/download/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "optional": true - }, - "node_modules/graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/graceful-readlink/download/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "node_modules/growl": { - "version": "1.9.2", - "resolved": "https://registry.npm.alibaba-inc.com/growl/download/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-5.1.5.tgz", - "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hawk": { - "version": "3.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/hawk/download/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "optional": true, - "dependencies": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - }, - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/hoek": { - "version": "2.16.3", - "resolved": "https://registry.npm.alibaba-inc.com/hoek/download/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.40" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/htmlparser2/download/htmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "dependencies": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.alibaba-inc.com/http-errors/download/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/human-signals/download/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.alibaba-inc.com/image-size/download/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/invariant/download/invariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-core-module/download/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/is-finite/download/is-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-2.2.2.tgz", - "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", - "dev": true - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-stream/download/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/jade": { - "version": "1.11.0", - "resolved": "https://registry.npm.alibaba-inc.com/jade/download/jade-1.11.0.tgz", - "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", - "deprecated": "Jade has been renamed to pug, please install the latest version of pug instead of jade", - "dev": true, - "dependencies": { - "character-parser": "1.2.1", - "clean-css": "^3.1.9", - "commander": "~2.6.0", - "constantinople": "~3.0.1", - "jstransformer": "0.0.2", - "mkdirp": "~0.5.0", - "transformers": "2.1.0", - "uglify-js": "^2.4.19", - "void-elements": "~2.0.1", - "with": "~4.0.0" - }, - "bin": { - "jade": "bin/jade.js" - } - }, - "node_modules/jade/node_modules/clean-css": { - "version": "3.4.28", - "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-3.4.28.tgz", - "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", - "dev": true, - "dependencies": { - "commander": "2.8.x", - "source-map": "0.4.x" - }, - "bin": { - "cleancss": "bin/cleancss" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jade/node_modules/clean-css/node_modules/commander": { - "version": "2.8.1", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/jade/node_modules/clean-css/node_modules/source-map": { - "version": "0.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jade/node_modules/commander": { - "version": "2.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/jade/node_modules/uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "source-map": "~0.5.1", - "yargs": "~3.10.0" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - }, - "optionalDependencies": { - "uglify-to-browserify": "~1.0.0" - } - }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/js-levenshtein/download/js-levenshtein-1.1.6.tgz", - "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jscoverage": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/jscoverage/download/jscoverage-0.6.0.tgz", - "integrity": "sha1-9eE6nhN3Yzh2jB7gLhrnHVFc2sk=", - "dev": true, - "dependencies": { - "coffee-script": "*", - "commander": "^2.6.0", - "debug": "~1.0.3", - "ejs": "1.0.0", - "optimist": "^0.6.1", - "uglify-js": "~2.4.15", - "xfs": "~0.1.8" - }, - "bin": { - "jscoverage": "bin/jscoverage" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/jscoverage/node_modules/async": { - "version": "0.2.10", - "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "node_modules/jscoverage/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jscoverage/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "node_modules/jscoverage/node_modules/debug": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-1.0.5.tgz", - "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/jscoverage/node_modules/ejs": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-1.0.0.tgz", - "integrity": "sha1-ycYKSKRu5FL7MqccMXuV5aofyz0=", - "deprecated": "Critical security bugs fixed in 2.5.5", - "dev": true - }, - "node_modules/jscoverage/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/jscoverage/node_modules/source-map": { - "version": "0.1.34", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.34.tgz", - "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jscoverage/node_modules/uglify-js": { - "version": "2.4.24", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.4.24.tgz", - "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", - "dev": true, - "dependencies": { - "async": "~0.2.6", - "source-map": "0.1.34", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.5.4" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jscoverage/node_modules/wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jscoverage/node_modules/xfs": { - "version": "0.1.10", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.10.tgz", - "integrity": "sha1-TdL9uyraKifmxdRxy1fAleZStwM=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jscoverage/node_modules/yargs": { - "version": "3.5.4", - "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.5.4.tgz", - "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "decamelize": "^1.0.0", - "window-size": "0.1.0", - "wordwrap": "0.0.2" - } - }, - "node_modules/jsdom": { - "version": "6.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsdom/download/jsdom-6.2.0.tgz", - "integrity": "sha1-nead00VcGfMQBtJUJe3AHAx+1ok=", - "dev": true, - "dependencies": { - "acorn": "^1.2.1", - "acorn-globals": "^1.0.4", - "browser-request": ">= 0.3.1 < 0.4.0", - "cssom": ">= 0.3.0 < 0.4.0", - "cssstyle": ">= 0.2.29 < 0.3.0", - "escodegen": "^1.6.1", - "htmlparser2": ">= 3.7.3 < 4.0.0", - "nwmatcher": ">= 1.3.6 < 2.0.0", - "parse5": "^1.4.2", - "request": "^2.55.0", - "symbol-tree": ">= 3.1.0 < 4.0.0", - "tough-cookie": "^1.1.0", - "whatwg-url-compat": "~0.6.1", - "xml-name-validator": ">= 2.0.1 < 3.0.0", - "xmlhttprequest": ">= 1.6.0 < 2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "1.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/json-schema/download/json-schema-0.4.0.tgz", - "integrity": "sha1-995M9u+rg4666zI2R0y7paGTCrU=", - "dev": true, - "license": "(AFL-2.1 OR BSD-3-Clause)" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true - }, - "node_modules/json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/json-stable-stringify/download/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "optional": true, - "dependencies": { - "jsonify": "^0.0.1" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/json3/download/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "deprecated": "Please use the native JSON object instead of JSON 3", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/jsonify/download/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, - "optional": true - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/jsprim/download/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jstransformer": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/jstransformer/download/jstransformer-0.0.2.tgz", - "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", - "dev": true, - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^6.0.1" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/less/download/less-3.0.1.tgz", - "integrity": "sha1-ui/qJKVjLMuMhCMNYEPAv5GFXjc=", - "dev": true, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "2.81.0", - "source-map": "^0.5.3" - } - }, - "node_modules/less/node_modules/ajv": { - "version": "4.11.8", - "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "dependencies": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "node_modules/less/node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "optional": true - }, - "node_modules/less/node_modules/assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/less/node_modules/aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/less/node_modules/form-data": { - "version": "2.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/less/node_modules/har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "deprecated": "this library is no longer supported", - "dev": true, - "optional": true, - "dependencies": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/less/node_modules/http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/less/node_modules/oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true, - "engines": { - "node": "*" - } - }, - "node_modules/less/node_modules/performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "node_modules/less/node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "optional": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/less/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "node_modules/less/node_modules/qs": { - "version": "6.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.4.1.tgz", - "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/less/node_modules/request": { - "version": "2.81.0", - "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "optional": true, - "dependencies": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/less/node_modules/tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.3.4.tgz", - "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", - "dev": true, - "optional": true, - "dependencies": { - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/less/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "optional": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/litelog": { - "version": "2.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/litelog/download/litelog-2.0.9.tgz", - "integrity": "sha1-7BvyETZM3KzdCnsl/rVjNXxVLC4=", - "dev": true, - "dependencies": { - "xfs": "0.1.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/litelog/node_modules/xfs": { - "version": "0.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.6.tgz", - "integrity": "sha1-0hJZO/of4Ny7ogdAAsQbWGZWhFI=", - "dev": true, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" - }, - "node_modules/lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "node_modules/lodash._basecreate": { - "version": "3.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", - "dev": true - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._getnative/download/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "node_modules/lodash.create": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.create/download/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true, - "dependencies": { - "lodash._baseassign": "^3.0.0", - "lodash._basecreate": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" - } - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarray/download/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.keys/download/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.some/download/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, - "node_modules/longest": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npm.alibaba-inc.com/mime-db/download/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npm.alibaba-inc.com/mime-types/download/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "engines": { - "node": ">=6" - } - }, - "node_modules/minami": { - "version": "1.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/minami/download/minami-1.2.3.tgz", - "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "3.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/mocha/download/mocha-3.2.0.tgz", - "integrity": "sha1-fcT0XlCIB1FxpoiWgU5q6et6heM=", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.0", - "commander": "2.9.0", - "debug": "2.2.0", - "diff": "1.4.0", - "escape-string-regexp": "1.0.5", - "glob": "7.0.5", - "growl": "1.9.2", - "json3": "3.3.2", - "lodash.create": "3.1.1", - "mkdirp": "0.5.1", - "supports-color": "3.1.2" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 0.10.x", - "npm": ">= 1.4.x" - } - }, - "node_modules/mocha/node_modules/commander": { - "version": "2.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "2.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "dependencies": { - "ms": "0.7.1" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "0.7.1", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npm.alibaba-inc.com/node-releases/download/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/npm-run-path/download/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/nwmatcher/download/nwmatcher-1.4.4.tgz", - "integrity": "sha1-IoVjHzSpXw0Dlc2QDJbtObWPNG4=", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.anpm.alibaba-inc.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/onetime/download/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/optimist": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "dependencies": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "node_modules/optimist/node_modules/minimist": { - "version": "0.0.10", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/optionator/download/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/os-tmpdir/download/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse5": { - "version": "1.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/parse5/download/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/path-key/download/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npm.alibaba-inc.com/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/picocolors/download/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npm.alibaba-inc.com/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "node_modules/promise": { - "version": "6.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-6.1.0.tgz", - "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", - "dev": true, - "dependencies": { - "asap": "~1.0.0" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/psl/download/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/regenerate/download/regenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/regenerate-unicode-properties/download/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - }, - "node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.10.1.tgz", - "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/regjsgen/download/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npm.alibaba-inc.com/resolve/download/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - } - }, - "node_modules/right-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "dependencies": { - "align-text": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true - }, - "node_modules/sax": { - "version": "0.5.8", - "resolved": "https://registry.npm.alibaba-inc.com/sax/download/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", - "dev": true - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.15.4", - "resolved": "https://registry.npm.alibaba-inc.com/send/download/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", - "dependencies": { - "debug": "2.6.8", - "depd": "~1.1.1", - "destroy": "~1.0.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.0", - "fresh": "0.5.0", - "http-errors": "~1.6.2", - "mime": "1.3.4", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.8", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/mime": { - "version": "1.3.4", - "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "bin": { - "mime": "cli.js" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/statuses": { - "version": "1.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.12.4", - "resolved": "https://registry.npm.alibaba-inc.com/serve-static/download/serve-static-1.12.4.tgz", - "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", - "dependencies": { - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.15.4" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/shebang-regex/download/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "engines": { - "node": ">=8" - } - }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/sigmund/download/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npm.alibaba-inc.com/signal-exit/download/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sntp": { - "version": "1.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/sntp/download/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", - "dev": true, - "optional": true, - "dependencies": { - "hoek": "2.x.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.alibaba-inc.com/source-map-support/download/source-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npm.alibaba-inc.com/sshpk/download/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/stringstream/download/stringstream-0.0.6.tgz", - "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", - "dev": true, - "optional": true - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/strip-ansi/download/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "engines": { - "node": ">=6" - } - }, - "node_modules/stylus": { - "version": "0.53.0", - "resolved": "https://registry.npm.alibaba-inc.com/stylus/download/stylus-0.53.0.tgz", - "integrity": "sha1-a1HnZlCX+N1KaWXhTO6l5Ln9cko=", - "dev": true, - "dependencies": { - "css-parse": "1.7.x", - "debug": "*", - "glob": "3.2.x", - "mkdirp": "0.5.x", - "sax": "0.5.x", - "source-map": "0.1.x" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus/node_modules/glob": { - "version": "3.2.11", - "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true, - "dependencies": { - "inherits": "2", - "minimatch": "0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus/node_modules/lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "node_modules/stylus/node_modules/minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "deprecated": "Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue", - "dev": true, - "dependencies": { - "lru-cache": "2", - "sigmund": "~1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/superagent": { - "version": "3.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/superagent/download/superagent-3.8.3.tgz", - "integrity": "sha1-Rg6g29t9WxG8T3jeulZfhqF44Sg=", - "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", - "dev": true, - "dependencies": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/superagent/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "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" - } - }, - "node_modules/superagent/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "node_modules/superagent/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/supertest": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supertest/download/supertest-3.0.0.tgz", - "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", - "dev": true, - "dependencies": { - "methods": "~1.1.2", - "superagent": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-preserve-symlinks-flag/download/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", - "dev": true - }, - "node_modules/tnpm-sync": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/tnpm-sync/download/tnpm-sync-1.0.1.tgz", - "integrity": "sha1-CW7fgvo4rbi6Bry7hrVLUbMeSOM=", - "dependencies": { - "execa": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "bin": { - "tnpm-sync": "bin/index.js" - } - }, - "node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tough-cookie": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-1.2.0.tgz", - "integrity": "sha1-m36dmOdp6AtaqJnZRP5E4C6/gq0=", - "deprecated": "ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/tr46/download/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "node_modules/transformers": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/transformers/download/transformers-2.1.0.tgz", - "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", - "deprecated": "Deprecated, use jstransformer", - "dev": true, - "dependencies": { - "css": "~1.0.8", - "promise": "~2.0", - "uglify-js": "~2.2.5" - } - }, - "node_modules/transformers/node_modules/is-promise": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", - "dev": true - }, - "node_modules/transformers/node_modules/optimist": { - "version": "0.3.7", - "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "dev": true, - "dependencies": { - "wordwrap": "~0.0.2" - } - }, - "node_modules/transformers/node_modules/promise": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-2.0.0.tgz", - "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", - "dev": true, - "dependencies": { - "is-promise": "~1" - } - }, - "node_modules/transformers/node_modules/source-map": { - "version": "0.1.43", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "dependencies": { - "amdefine": ">=0.0.4" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/transformers/node_modules/uglify-js": { - "version": "2.2.5", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.2.5.tgz", - "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", - "dev": true, - "dependencies": { - "optimist": "~0.3.5", - "source-map": "~0.1.7" - }, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/trim-right/download/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npm.alibaba-inc.com/tweetnacl/download/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/uri-js/download/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.anpm.alibaba-inc.com/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/void-elements/download/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-url-compat": { - "version": "0.6.5", - "resolved": "https://registry.npm.alibaba-inc.com/whatwg-url-compat/download/whatwg-url-compat-0.6.5.tgz", - "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", - "dev": true, - "dependencies": { - "tr46": "~0.0.1" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/window-size": { - "version": "0.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/window-size/download/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/with": { - "version": "4.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/with/download/with-4.0.3.tgz", - "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", - "dev": true, - "dependencies": { - "acorn": "^1.0.1", - "acorn-globals": "^1.0.3" - } - }, - "node_modules/with/node_modules/acorn": { - "version": "1.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/word-wrap/download/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/xfs": { - "version": "0.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.6.tgz", - "integrity": "sha1-nn5L3JO8o5wjFcPSTFRHM8/rITY=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/xml-name-validator/download/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npm.alibaba-inc.com/xmlhttprequest/download/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - }, - "node_modules/yargs": { - "version": "3.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "dependencies": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/yargs-parser/download/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.21.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/code-frame/download/@babel/code-frame-7.21.4.tgz", - "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/compat-data/download/@babel/compat-data-7.22.3.tgz", - "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", - "dev": true - }, - "@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/core/download/@babel/core-7.6.4.tgz", - "integrity": "sha1-br2f4Akl9sPhd7tyahiLX1eAiP8=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/generator/download/@babel/generator-7.22.3.tgz", - "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", - "dev": true, - "requires": { - "@babel/types": "^7.22.3", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", - "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", - "dev": true, - "requires": { - "@babel/types": "^7.22.3" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.22.1.tgz", - "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "dependencies": { - "browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.22.1.tgz", - "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "requires": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - } - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-environment-visitor/download/@babel/helper-environment-visitor-7.22.1.tgz", - "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-function-name/download/@babel/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.22.3.tgz", - "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", - "dev": true, - "requires": { - "@babel/types": "^7.22.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.22.1.tgz", - "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.22.1.tgz", - "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-member-expression-to-functions": "^7.22.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-string-parser/download/@babel/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/helpers/download/@babel/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", - "dev": true, - "requires": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/highlight/download/@babel/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/parser/download/@babel/parser-7.22.3.tgz", - "integrity": "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.21.5.tgz", - "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.20.7.tgz", - "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.21.0.tgz", - "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.21.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.21.0.tgz", - "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.21.5.tgz", - "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.21.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.21.3.tgz", - "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.21.5.tgz", - "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.20.11", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.20.11.tgz", - "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.21.5.tgz", - "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.22.3.tgz", - "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", - "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.22.3.tgz", - "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.22.3.tgz", - "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.21.5", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.21.5.tgz", - "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "regenerator-transform": "^0.15.1" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - } - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.20.7", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.20.7.tgz", - "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.6.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/preset-env/download/@babel/preset-env-7.6.3.tgz", - "integrity": "sha1-nhvwWi4taHA20kxA5GOdxGzvInE=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.3", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.6.2", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.3", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - } - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } - } - }, - "@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/regjsgen/download/@babel/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/runtime/download/@babel/runtime-7.22.3.tgz", - "integrity": "sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.11" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.21.9", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/template/download/@babel/template-7.21.9.tgz", - "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" - } - }, - "@babel/traverse": { - "version": "7.22.1", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/traverse/download/@babel/traverse-7.22.1.tgz", - "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.22.0", - "@babel/types": "^7.22.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.22.3", - "resolved": "https://registry.npm.alibaba-inc.com/@babel/types/download/@babel/types-7.22.3.tgz", - "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/gen-mapping/download/@jridgewell/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/resolve-uri/download/@jridgewell/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/set-array/download/@jridgewell/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/trace-mapping/download/@jridgewell/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npm.alibaba-inc.com/@jridgewell/sourcemap-codec/download/@jridgewell/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - } - } - }, - "acorn": { - "version": "2.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-2.7.0.tgz", - "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "dev": true - }, - "acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/acorn-globals/download/acorn-globals-1.0.9.tgz", - "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", - "dev": true, - "requires": { - "acorn": "^2.1.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/align-text/download/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/amdefine/download/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/ansi-styles/download/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "asap": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-1.0.0.tgz", - "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/asn1/download/asn1-0.2.6.tgz", - "integrity": "sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-2.6.0.tgz", - "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", - "requires": { - "lodash": "^4.14.0" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws4/download/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-code-frame/download/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "babel-core": { - "version": "6.25.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", - "dev": true, - "requires": { - "babel-code-frame": "^6.22.0", - "babel-generator": "^6.25.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.25.0", - "babel-traverse": "^6.25.0", - "babel-types": "^6.25.0", - "babylon": "^6.17.2", - "convert-source-map": "^1.1.0", - "debug": "^2.1.1", - "json5": "^0.5.0", - "lodash": "^4.2.0", - "minimatch": "^3.0.2", - "path-is-absolute": "^1.0.0", - "private": "^0.1.6", - "slash": "^1.0.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-builder-react-jsx/download/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-evaluate-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-evaluate-path/download/babel-helper-evaluate-path-0.3.0.tgz", - "integrity": "sha1-JDlUXgturlt/SbeQrL69a5pz3yA=", - "dev": true - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-flip-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-flip-expressions/download/babel-helper-flip-expressions-0.3.0.tgz", - "integrity": "sha1-9bY5S9Uhm0PPj3sgFTXtVAxuf6I=", - "dev": true - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-is-nodes-equiv": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-nodes-equiv/download/babel-helper-is-nodes-equiv-0.0.1.tgz", - "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", - "dev": true - }, - "babel-helper-is-void-0": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-is-void-0/download/babel-helper-is-void-0-0.3.0.tgz", - "integrity": "sha1-lVcNIL0nsiBvaAg66ZgO5wA9j+c=", - "dev": true - }, - "babel-helper-mark-eval-scopes": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-mark-eval-scopes/download/babel-helper-mark-eval-scopes-0.3.0.tgz", - "integrity": "sha1-tHMTFP3XqJCRJxpSE7ThLSNuKeg=", - "dev": true - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-remove-or-void": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-remove-or-void/download/babel-helper-remove-or-void-0.3.0.tgz", - "integrity": "sha1-9DyGFHyPzDlalSjLsx5/9J1+FuM=", - "dev": true - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-to-multiple-sequence-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helper-to-multiple-sequence-expressions/download/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz", - "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=", - "dev": true - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-helpers/download/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-messages/download/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-minify-builtins": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-builtins/download/babel-plugin-minify-builtins-0.3.0.tgz", - "integrity": "sha1-R0ARemp4QGOq+PCSmJz55L1ISGA=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "babel-plugin-minify-constant-folding": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-constant-folding/download/babel-plugin-minify-constant-folding-0.3.0.tgz", - "integrity": "sha1-aH5AM2vU3dkh4OGX8ABiNawYS7k=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "babel-plugin-minify-dead-code-elimination": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-dead-code-elimination/download/babel-plugin-minify-dead-code-elimination-0.3.0.tgz", - "integrity": "sha1-oyP2hsQEuCQYa6VYPPeZbKyBcZ4=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "^0.3.0", - "babel-helper-mark-eval-scopes": "^0.3.0", - "babel-helper-remove-or-void": "^0.3.0", - "lodash.some": "^4.6.0" - } - }, - "babel-plugin-minify-flip-comparisons": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-flip-comparisons/download/babel-plugin-minify-flip-comparisons-0.3.0.tgz", - "integrity": "sha1-ZieJOkCcnzDvfyyJ4Mbup+6X3cQ=", - "dev": true, - "requires": { - "babel-helper-is-void-0": "^0.3.0" - } - }, - "babel-plugin-minify-guarded-expressions": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-guarded-expressions/download/babel-plugin-minify-guarded-expressions-0.3.0.tgz", - "integrity": "sha1-JVLZYYnvRdmkY/GmteT6EQcDrI0=", - "dev": true, - "requires": { - "babel-helper-flip-expressions": "^0.3.0" - } - }, - "babel-plugin-minify-infinity": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-infinity/download/babel-plugin-minify-infinity-0.3.0.tgz", - "integrity": "sha1-xewO3UM1F88xs68XB3wgK+tIu+c=", - "dev": true - }, - "babel-plugin-minify-mangle-names": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-mangle-names/download/babel-plugin-minify-mangle-names-0.3.0.tgz", - "integrity": "sha1-8oVhutDdLwOAgWgWu5RuIZs7YTU=", - "dev": true, - "requires": { - "babel-helper-mark-eval-scopes": "^0.3.0" - } - }, - "babel-plugin-minify-numeric-literals": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-numeric-literals/download/babel-plugin-minify-numeric-literals-0.3.0.tgz", - "integrity": "sha1-tXc0phLopZIAVAcyPDIRGfJ9S0A=", - "dev": true - }, - "babel-plugin-minify-replace": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-replace/download/babel-plugin-minify-replace-0.3.0.tgz", - "integrity": "sha1-mAElu/fLtaY3Q53p0LGwMKRpOJM=", - "dev": true - }, - "babel-plugin-minify-simplify": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-simplify/download/babel-plugin-minify-simplify-0.3.0.tgz", - "integrity": "sha1-FFdMx00hyB0wYPr6BBAQAoGJ8Rs=", - "dev": true, - "requires": { - "babel-helper-flip-expressions": "^0.3.0", - "babel-helper-is-nodes-equiv": "^0.0.1", - "babel-helper-to-multiple-sequence-expressions": "^0.3.0" - } - }, - "babel-plugin-minify-type-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-minify-type-constructors/download/babel-plugin-minify-type-constructors-0.3.0.tgz", - "integrity": "sha1-f1qG7zIsR0Y2TjxZG4UU7q/qatQ=", - "dev": true, - "requires": { - "babel-helper-is-void-0": "^0.3.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-inline-consecutive-adds": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-inline-consecutive-adds/download/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz", - "integrity": "sha1-8H2TaJwAAu0rK2KWm92Z9zTgP1c=", - "dev": true - }, - "babel-plugin-transform-member-expression-literals": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-member-expression-literals/download/babel-plugin-transform-member-expression-literals-6.9.4.tgz", - "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", - "dev": true - }, - "babel-plugin-transform-merge-sibling-variables": { - "version": "6.9.5", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-merge-sibling-variables/download/babel-plugin-transform-merge-sibling-variables-6.9.5.tgz", - "integrity": "sha512-xj/KrWi6/uP+DrD844h66Qh2cZN++iugEIgH8QcIxhmZZPNP6VpOE9b4gP2FFW39xDAY43kCmYMM6U0QNKN8fw==", - "dev": true - }, - "babel-plugin-transform-minify-booleans": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-minify-booleans/download/babel-plugin-transform-minify-booleans-6.9.4.tgz", - "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", - "dev": true - }, - "babel-plugin-transform-property-literals": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-property-literals/download/babel-plugin-transform-property-literals-6.9.4.tgz", - "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-react-jsx/download/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-regexp-constructors": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-regexp-constructors/download/babel-plugin-transform-regexp-constructors-0.3.0.tgz", - "integrity": "sha1-m7LI3QgicaXLGzpEGnxS6P0H4PU=", - "dev": true - }, - "babel-plugin-transform-remove-console": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-console/download/babel-plugin-transform-remove-console-6.9.4.tgz", - "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", - "dev": true - }, - "babel-plugin-transform-remove-debugger": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-debugger/download/babel-plugin-transform-remove-debugger-6.9.4.tgz", - "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", - "dev": true - }, - "babel-plugin-transform-remove-undefined": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-remove-undefined/download/babel-plugin-transform-remove-undefined-0.3.0.tgz", - "integrity": "sha1-A/XwBxhneB6b6rvHt3v4CV/T8+w=", - "dev": true, - "requires": { - "babel-helper-evaluate-path": "^0.3.0" - } - }, - "babel-plugin-transform-simplify-comparison-operators": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-simplify-comparison-operators/download/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", - "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", - "dev": true - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-undefined-to-void": { - "version": "6.9.4", - "resolved": "https://registry.npm.alibaba-inc.com/babel-plugin-transform-undefined-to-void/download/babel-plugin-transform-undefined-to-void-6.9.4.tgz", - "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", - "dev": true - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-env/download/babel-preset-env-1.7.0.tgz", - "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-minify": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-preset-minify/download/babel-preset-minify-0.3.0.tgz", - "integrity": "sha1-fbZK+nXxb24GwKpfJRlfbzZ4TXc=", - "dev": true, - "requires": { - "babel-plugin-minify-builtins": "^0.3.0", - "babel-plugin-minify-constant-folding": "^0.3.0", - "babel-plugin-minify-dead-code-elimination": "^0.3.0", - "babel-plugin-minify-flip-comparisons": "^0.3.0", - "babel-plugin-minify-guarded-expressions": "^0.3.0", - "babel-plugin-minify-infinity": "^0.3.0", - "babel-plugin-minify-mangle-names": "^0.3.0", - "babel-plugin-minify-numeric-literals": "^0.3.0", - "babel-plugin-minify-replace": "^0.3.0", - "babel-plugin-minify-simplify": "^0.3.0", - "babel-plugin-minify-type-constructors": "^0.3.0", - "babel-plugin-transform-inline-consecutive-adds": "^0.3.0", - "babel-plugin-transform-member-expression-literals": "^6.9.0", - "babel-plugin-transform-merge-sibling-variables": "^6.9.0", - "babel-plugin-transform-minify-booleans": "^6.9.0", - "babel-plugin-transform-property-literals": "^6.9.0", - "babel-plugin-transform-regexp-constructors": "^0.3.0", - "babel-plugin-transform-remove-console": "^6.9.0", - "babel-plugin-transform-remove-debugger": "^6.9.0", - "babel-plugin-transform-remove-undefined": "^0.3.0", - "babel-plugin-transform-simplify-comparison-operators": "^6.9.0", - "babel-plugin-transform-undefined-to-void": "^6.9.0", - "lodash.isplainobject": "^4.0.6" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-register/download/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, - "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-runtime/download/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-template/download/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-traverse/download/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npm.alibaba-inc.com/babel-types/download/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/balanced-match/download/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/boom/download/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npm.alibaba-inc.com/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/browser-request/download/browser-request-0.3.3.tgz", - "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=", - "dev": true - }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/browser-stdout/download/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-3.2.8.tgz", - "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=" - }, - "caniuse-lite": { - "version": "1.0.30001489", - "resolved": "https://registry.npm.alibaba-inc.com/caniuse-lite/download/caniuse-lite-1.0.30001489.tgz", - "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npm.alibaba-inc.com/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/center-align/download/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "character-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/character-parser/download/character-parser-1.2.1.tgz", - "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", - "dev": true - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-4.2.4.tgz", - "integrity": "sha1-czv0brpOYHxokepXwkqYk1aDEXg=", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" - } - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/cliui/download/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/co/download/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, - "coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npm.alibaba-inc.com/coffee-script/download/coffee-script-1.12.7.tgz", - "integrity": "sha1-wF2uDLeVkdBbMHCoQzqYyaiczFM=", - "dev": true - }, - "coffeescript": { - "version": "2.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/coffeescript/download/coffeescript-2.7.0.tgz", - "integrity": "sha512-hzWp6TUE2d/jCcN67LrW1eh5b/rSDKQK6oD6VMLlggYVUUFexgTH9z3dNYihzX4RMhze5FTUsUmOXViJKFQR/A==", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.alibaba-inc.com/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-4.0.1.tgz", - "integrity": "sha1-tnYicheFmTGC6Af0iDYz5kAbpTw=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/connect/download/connect-3.7.0.tgz", - "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "constantinople": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/constantinople/download/constantinople-3.0.2.tgz", - "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", - "dev": true, - "requires": { - "acorn": "^2.1.0" - } - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/convert-source-map/download/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/cookiejar/download/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "dev": true - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npm.alibaba-inc.com/core-js/download/core-js-2.6.12.tgz", - "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=" - }, - "core-js-compat": { - "version": "3.30.2", - "resolved": "https://registry.npm.alibaba-inc.com/core-js-compat/download/core-js-compat-3.30.2.tgz", - "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", - "dev": true, - "requires": { - "browserslist": "^4.21.5" - }, - "dependencies": { - "browserslist": { - "version": "4.21.7", - "resolved": "https://registry.npm.alibaba-inc.com/browserslist/download/browserslist-4.21.7.tgz", - "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001489", - "electron-to-chromium": "^1.4.411", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - } - }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npm.alibaba-inc.com/update-browserslist-db/download/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.anpm.alibaba-inc.com/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/cryptiles/download/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x" - } - }, - "css": { - "version": "1.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/css/download/css-1.0.8.tgz", - "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", - "dev": true, - "requires": { - "css-parse": "1.0.4", - "css-stringify": "1.0.5" - }, - "dependencies": { - "css-parse": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.0.4.tgz", - "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", - "dev": true - } - } - }, - "css-parse": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/css-parse/download/css-parse-1.7.0.tgz", - "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", - "dev": true - }, - "css-stringify": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/css-stringify/download/css-stringify-1.0.5.tgz", - "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", - "dev": true - }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npm.alibaba-inc.com/cssom/download/cssom-0.3.8.tgz", - "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npm.alibaba-inc.com/cssstyle/download/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, - "requires": { - "cssom": "0.3.x" - } - }, - "cube-babel": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/cube-babel/download/cube-babel-1.0.4.tgz", - "integrity": "sha1-2mWUrv3hVQ3gRUF8rx8xX9ozTtE=", - "dev": true, - "requires": { - "@babel/core": "7.6.4", - "@babel/preset-env": "7.6.3", - "lodash": "4.17.15" - } - }, - "cube-coffee": { - "version": "2.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/cube-coffee/download/cube-coffee-2.0.2.tgz", - "integrity": "sha1-y+8QXfbhCedi9os4QMJL7HJYRgs=", - "dev": true, - "requires": { - "coffeescript": "^2.0.0" - } - }, - "cube-ejs": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-ejs/download/cube-ejs-2.0.1.tgz", - "integrity": "sha1-LWbZor8AYMZNm7IaFnaA1Vnm0tc=", - "dev": true, - "requires": { - "ejs": "2.4.1" - } - }, - "cube-jade": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-jade/download/cube-jade-2.0.1.tgz", - "integrity": "sha1-GLAAv7ea42XVYS37YdMcFwnx7RY=", - "dev": true, - "requires": { - "jade": "~1.11.0" - } - }, - "cube-lazy-parse": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-lazy-parse/download/cube-lazy-parse-1.0.1.tgz", - "integrity": "sha1-mucksT3OYryfdWRJvw5pCxflOPI=", - "dev": true - }, - "cube-less": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/cube-less/download/cube-less-3.1.1.tgz", - "integrity": "sha1-QpFLAgx0XKwPsaswQp7/kArSzbs=", - "dev": true, - "requires": { - "less": "3.0.1" - } - }, - "cube-react": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/cube-react/download/cube-react-2.1.0.tgz", - "integrity": "sha1-SXepk6TYzoydZyfkuJUi6R/YMcE=", - "dev": true, - "requires": { - "babel-core": "~6.25.0", - "babel-plugin-transform-react-jsx": "~6.24.0" - } - }, - "cube-stylus": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/cube-stylus/download/cube-stylus-2.0.0.tgz", - "integrity": "sha1-dvSe8OEnzDZKg1I5+xuQyEKL9BI=", - "dev": true, - "requires": { - "stylus": "0.53.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npm.alibaba-inc.com/dashdash/download/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-4.1.0.tgz", - "integrity": "sha1-NzaHv/pnizixzZH4YbY4UANd3Ic=", - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/deep-is/download/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/detect-indent/download/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "diff": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/diff/download/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", - "dev": true - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/dom-serializer/download/dom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-2.2.0.tgz", - "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/domhandler/download/domhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npm.alibaba-inc.com/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "2.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-2.4.1.tgz", - "integrity": "sha1-guFbGyoflIsYCXR2uivXxm9NFWY=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.411", - "resolved": "https://registry.npm.alibaba-inc.com/electron-to-chromium/download/electron-to-chromium-1.4.411.tgz", - "integrity": "sha512-5VXLW4Qw89vM2WTICHua/y8v7fKGDRVa2VPOtBB9IpLvW316B+xd8yD1wTmLPY2ot/00P/qt87xdolj4aG/Lzg==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npm.alibaba-inc.com/errno/download/errno-0.1.8.tgz", - "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/escalade/download/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npm.alibaba-inc.com/escodegen/download/escodegen-1.14.3.tgz", - "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true - } - } - }, - "esminify": { - "version": "3.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/esminify/download/esminify-3.0.5.tgz", - "integrity": "sha1-AxN4p2Ye95VadnvXwwPs6Ln3XLQ=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-preset-minify": "0.3.0", - "commander": "2.10.0", - "litelog": "^2.0.8", - "lodash": "4.17.5", - "xfs": "0.2.3" - }, - "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npm.alibaba-inc.com/babel-core/download/babel-core-6.26.3.tgz", - "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "commander": { - "version": "2.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.10.0.tgz", - "integrity": "sha1-4fXTJF3iRtGlygRwL6GtG9fkBf4=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.5.tgz", - "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "xfs": { - "version": "0.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.3.tgz", - "integrity": "sha1-RW63DXVm3U33sXnIBOJaFZ+PKyU=", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/estraverse/download/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npm.alibaba-inc.com/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/execa/download/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "expect.js": { - "version": "0.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/expect.js/download/expect.js-0.3.1.tgz", - "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/formidable/download/formidable-1.2.6.tgz", - "integrity": "sha1-0qUdYBYrvJtKBV2EV6fHUxXRoWg=", - "dev": true - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/fresh/download/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/get-stream/download/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "requires": { - "pump": "^3.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.alibaba-inc.com/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-7.0.5.tgz", - "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npm.alibaba-inc.com/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=" - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npm.alibaba-inc.com/graceful-fs/download/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "optional": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/graceful-readlink/download/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "growl": { - "version": "1.9.2", - "resolved": "https://registry.npm.alibaba-inc.com/growl/download/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-5.1.5.tgz", - "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/hawk/download/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npm.alibaba-inc.com/hoek/download/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true, - "optional": true - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/home-or-tmp/download/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/htmlparser2/download/htmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.alibaba-inc.com/http-errors/download/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/human-signals/download/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=" - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.alibaba-inc.com/image-size/download/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/invariant/download/invariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-core-module/download/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/is-finite/download/is-finite-1.1.0.tgz", - "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=" - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-2.2.2.tgz", - "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-stream/download/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jade": { - "version": "1.11.0", - "resolved": "https://registry.npm.alibaba-inc.com/jade/download/jade-1.11.0.tgz", - "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", - "dev": true, - "requires": { - "character-parser": "1.2.1", - "clean-css": "^3.1.9", - "commander": "~2.6.0", - "constantinople": "~3.0.1", - "jstransformer": "0.0.2", - "mkdirp": "~0.5.0", - "transformers": "2.1.0", - "uglify-js": "^2.4.19", - "void-elements": "~2.0.1", - "with": "~4.0.0" - }, - "dependencies": { - "clean-css": { - "version": "3.4.28", - "resolved": "https://registry.npm.alibaba-inc.com/clean-css/download/clean-css-3.4.28.tgz", - "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", - "dev": true, - "requires": { - "commander": "2.8.x", - "source-map": "0.4.x" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "commander": { - "version": "2.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - } - } - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/js-levenshtein/download/js-levenshtein-1.1.6.tgz", - "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/js-tokens/download/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jscoverage": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/jscoverage/download/jscoverage-0.6.0.tgz", - "integrity": "sha1-9eE6nhN3Yzh2jB7gLhrnHVFc2sk=", - "dev": true, - "requires": { - "coffee-script": "*", - "commander": "^2.6.0", - "debug": "~1.0.3", - "ejs": "1.0.0", - "optimist": "^0.6.1", - "uglify-js": "~2.4.15", - "xfs": "~0.1.8" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npm.alibaba-inc.com/async/download/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "debug": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-1.0.5.tgz", - "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ejs": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ejs/download/ejs-1.0.0.tgz", - "integrity": "sha1-ycYKSKRu5FL7MqccMXuV5aofyz0=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.1.34", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.34.tgz", - "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "uglify-js": { - "version": "2.4.24", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.4.24.tgz", - "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", - "dev": true, - "requires": { - "async": "~0.2.6", - "source-map": "0.1.34", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.5.4" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "xfs": { - "version": "0.1.10", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.10.tgz", - "integrity": "sha1-TdL9uyraKifmxdRxy1fAleZStwM=", - "dev": true - }, - "yargs": { - "version": "3.5.4", - "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.5.4.tgz", - "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "decamelize": "^1.0.0", - "window-size": "0.1.0", - "wordwrap": "0.0.2" - } - } - } - }, - "jsdom": { - "version": "6.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsdom/download/jsdom-6.2.0.tgz", - "integrity": "sha1-nead00VcGfMQBtJUJe3AHAx+1ok=", - "dev": true, - "requires": { - "acorn": "^1.2.1", - "acorn-globals": "^1.0.4", - "browser-request": ">= 0.3.1 < 0.4.0", - "cssom": ">= 0.3.0 < 0.4.0", - "cssstyle": ">= 0.2.29 < 0.3.0", - "escodegen": "^1.6.1", - "htmlparser2": ">= 3.7.3 < 4.0.0", - "nwmatcher": ">= 1.3.6 < 2.0.0", - "parse5": "^1.4.2", - "request": "^2.55.0", - "symbol-tree": ">= 3.1.0 < 4.0.0", - "tough-cookie": "^1.1.0", - "whatwg-url-compat": "~0.6.1", - "xml-name-validator": ">= 2.0.1 < 3.0.0", - "xmlhttprequest": ">= 1.6.0 < 2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "dev": true - } - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/json-schema/download/json-schema-0.4.0.tgz", - "integrity": "sha1-995M9u+rg4666zI2R0y7paGTCrU=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/json-stable-stringify/download/json-stable-stringify-1.0.2.tgz", - "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", - "dev": true, - "optional": true, - "requires": { - "jsonify": "^0.0.1" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/json3/download/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/json5/download/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonify": { - "version": "0.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/jsonify/download/jsonify-0.0.1.tgz", - "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/jsprim/download/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "0.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/jstransformer/download/jstransformer-0.0.2.tgz", - "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^6.0.1" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/lazy-cache/download/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "less": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/less/download/less-3.0.1.tgz", - "integrity": "sha1-ui/qJKVjLMuMhCMNYEPAv5GFXjc=", - "dev": true, - "requires": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "2.81.0", - "source-map": "^0.5.3" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npm.alibaba-inc.com/ajv/download/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/assert-plus/download/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/aws-sign2/download/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npm.alibaba-inc.com/form-data/download/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npm.alibaba-inc.com/har-schema/download/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/har-validator/download/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^4.9.1", - "har-schema": "^1.0.5" - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/http-signature/download/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "optional": true, - "requires": { - "asap": "~2.0.3" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.4.1.tgz", - "integrity": "sha512-LQy1Q1fcva/UsnP/6Iaa4lVeM49WiOitu2T4hZCyA/elLKu37L99qcBJk4VCCk+rdLvnMzfKyiN3SZTqdAZGSQ==", - "dev": true, - "optional": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" - } - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.3.4.tgz", - "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "dev": true, - "optional": true - } - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/levn/download/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "litelog": { - "version": "2.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/litelog/download/litelog-2.0.9.tgz", - "integrity": "sha1-7BvyETZM3KzdCnsl/rVjNXxVLC4=", - "dev": true, - "requires": { - "xfs": "0.1.6" - }, - "dependencies": { - "xfs": { - "version": "0.1.6", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.1.6.tgz", - "integrity": "sha1-0hJZO/of4Ny7ogdAAsQbWGZWhFI=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npm.alibaba-inc.com/lodash/download/lodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" - }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._baseassign/download/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecopy/download/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basecreate": { - "version": "3.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._basecreate/download/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._getnative/download/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/lodash._isiterateecall/download/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash.create": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.create/download/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true, - "requires": { - "lodash._baseassign": "^3.0.0", - "lodash._basecreate": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isarray/download/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.keys/download/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/lodash.some/download/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/longest/download/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npm.alibaba-inc.com/mime-db/download/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npm.alibaba-inc.com/mime-types/download/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=" - }, - "minami": { - "version": "1.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/minami/download/minami-1.2.3.tgz", - "integrity": "sha1-mbbc37LwpU2hycj3qjoyd4eq+fg=", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "mocha": { - "version": "3.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/mocha/download/mocha-3.2.0.tgz", - "integrity": "sha1-fcT0XlCIB1FxpoiWgU5q6et6heM=", - "dev": true, - "requires": { - "browser-stdout": "1.3.0", - "commander": "2.9.0", - "debug": "2.2.0", - "diff": "1.4.0", - "escape-string-regexp": "1.0.5", - "glob": "7.0.5", - "growl": "1.9.2", - "json3": "3.3.2", - "lodash.create": "3.1.1", - "mkdirp": "0.5.1", - "supports-color": "3.1.2" - }, - "dependencies": { - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/commander/download/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true, - "requires": { - "ms": "0.7.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/has-flag/download/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "supports-color": { - "version": "3.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-3.1.2.tgz", - "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.1.3.tgz", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=" - }, - "node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npm.alibaba-inc.com/node-releases/download/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/npm-run-path/download/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "requires": { - "path-key": "^3.0.0" - } - }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npm.alibaba-inc.com/nwmatcher/download/nwmatcher-1.4.4.tgz", - "integrity": "sha1-IoVjHzSpXw0Dlc2QDJbtObWPNG4=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.anpm.alibaba-inc.com/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/onetime/download/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npm.alibaba-inc.com/minimist/download/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/optionator/download/optionator-0.8.3.tgz", - "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/os-tmpdir/download/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npm.alibaba-inc.com/parse5/download/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.alibaba-inc.com/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/path-key/download/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npm.alibaba-inc.com/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/picocolors/download/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/prelude-ls/download/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npm.alibaba-inc.com/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "promise": { - "version": "6.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-6.1.0.tgz", - "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", - "dev": true, - "requires": { - "asap": "~1.0.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npm.alibaba-inc.com/psl/download/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/punycode/download/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npm.alibaba-inc.com/qs/download/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=" - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npm.alibaba-inc.com/regenerate/download/regenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/regenerate-unicode-properties/download/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npm.alibaba-inc.com/regenerator-transform/download/regenerator-transform-0.10.1.tgz", - "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/regexpu-core/download/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/regjsgen/download/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npm.alibaba-inc.com/regjsparser/download/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.alibaba-inc.com/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/repeating/download/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npm.alibaba-inc.com/request/download/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "dev": true - } - } - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npm.alibaba-inc.com/resolve/download/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/right-align/download/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true - }, - "sax": { - "version": "0.5.8", - "resolved": "https://registry.npm.alibaba-inc.com/sax/download/sax-0.5.8.tgz", - "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.alibaba-inc.com/semver/download/semver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - }, - "send": { - "version": "0.15.4", - "resolved": "https://registry.npm.alibaba-inc.com/send/download/send-0.15.4.tgz", - "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", - "requires": { - "debug": "2.6.8", - "depd": "~1.1.1", - "destroy": "~1.0.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.0", - "fresh": "0.5.0", - "http-errors": "~1.6.2", - "mime": "1.3.4", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" - }, - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "requires": { - "ms": "2.0.0" - } - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npm.alibaba-inc.com/mime/download/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } - } - }, - "serve-static": { - "version": "1.12.4", - "resolved": "https://registry.npm.alibaba-inc.com/serve-static/download/serve-static-1.12.4.tgz", - "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", - "requires": { - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.15.4" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/setprototypeof/download/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/shebang-regex/download/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=" - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/sigmund/download/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npm.alibaba-inc.com/signal-exit/download/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npm.alibaba-inc.com/sntp/download/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.alibaba-inc.com/source-map-support/download/source-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npm.alibaba-inc.com/sshpk/download/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.alibaba-inc.com/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.3.0.tgz", - "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "stringstream": { - "version": "0.0.6", - "resolved": "https://registry.npm.alibaba-inc.com/stringstream/download/stringstream-0.0.6.tgz", - "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/strip-ansi/download/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=" - }, - "stylus": { - "version": "0.53.0", - "resolved": "https://registry.npm.alibaba-inc.com/stylus/download/stylus-0.53.0.tgz", - "integrity": "sha1-a1HnZlCX+N1KaWXhTO6l5Ln9cko=", - "dev": true, - "requires": { - "css-parse": "1.7.x", - "debug": "*", - "glob": "3.2.x", - "mkdirp": "0.5.x", - "sax": "0.5.x", - "source-map": "0.1.x" - }, - "dependencies": { - "glob": { - "version": "3.2.11", - "resolved": "https://registry.npm.alibaba-inc.com/glob/download/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true, - "requires": { - "inherits": "2", - "minimatch": "0.3" - } - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npm.alibaba-inc.com/lru-cache/download/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npm.alibaba-inc.com/minimatch/download/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npm.alibaba-inc.com/superagent/download/superagent-3.8.3.tgz", - "integrity": "sha1-Rg6g29t9WxG8T3jeulZfhqF44Sg=", - "dev": true, - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npm.alibaba-inc.com/debug/download/debug-3.2.7.tgz", - "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npm.alibaba-inc.com/readable-stream/download/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.alibaba-inc.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "supertest": { - "version": "3.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supertest/download/supertest-3.0.0.tgz", - "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", - "dev": true, - "requires": { - "methods": "~1.1.2", - "superagent": "^3.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/supports-preserve-symlinks-flag/download/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npm.alibaba-inc.com/symbol-tree/download/symbol-tree-3.2.4.tgz", - "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", - "dev": true - }, - "tnpm-sync": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/tnpm-sync/download/tnpm-sync-1.0.1.tgz", - "integrity": "sha1-CW7fgvo4rbi6Bry7hrVLUbMeSOM=", - "requires": { - "execa": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/to-fast-properties/download/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "tough-cookie": { - "version": "1.2.0", - "resolved": "https://registry.npm.alibaba-inc.com/tough-cookie/download/tough-cookie-1.2.0.tgz", - "integrity": "sha1-m36dmOdp6AtaqJnZRP5E4C6/gq0=", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/tr46/download/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "transformers": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/transformers/download/transformers-2.1.0.tgz", - "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", - "dev": true, - "requires": { - "css": "~1.0.8", - "promise": "~2.0", - "uglify-js": "~2.2.5" - }, - "dependencies": { - "is-promise": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/is-promise/download/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", - "dev": true - }, - "optimist": { - "version": "0.3.7", - "resolved": "https://registry.npm.alibaba-inc.com/optimist/download/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "dev": true, - "requires": { - "wordwrap": "~0.0.2" - } - }, - "promise": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/promise/download/promise-2.0.0.tgz", - "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", - "dev": true, - "requires": { - "is-promise": "~1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npm.alibaba-inc.com/source-map/download/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - }, - "uglify-js": { - "version": "2.2.5", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-2.2.5.tgz", - "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", - "dev": true, - "requires": { - "optimist": "~0.3.5", - "source-map": "~0.1.7" - } - } - } - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/trim-right/download/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npm.alibaba-inc.com/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npm.alibaba-inc.com/tweetnacl/download/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/type-check/download/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-js/download/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==" - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha1-MBrNxSVjFnDTn2FG4Od/9rvevdw=", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha1-VP0W4OyxZ88Ezx91a9zJLrp5dsM=", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.alibaba-inc.com/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.alibaba-inc.com/uri-js/download/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npm.alibaba-inc.com/uuid/download/uuid-8.3.2.tgz", - "integrity": "sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.anpm.alibaba-inc.com/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/verror/download/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/void-elements/download/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "whatwg-url-compat": { - "version": "0.6.5", - "resolved": "https://registry.npm.alibaba-inc.com/whatwg-url-compat/download/whatwg-url-compat-0.6.5.tgz", - "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", - "dev": true, - "requires": { - "tr46": "~0.0.1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "requires": { - "isexe": "^2.0.0" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npm.alibaba-inc.com/window-size/download/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "with": { - "version": "4.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/with/download/with-4.0.3.tgz", - "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", - "dev": true, - "requires": { - "acorn": "^1.0.1", - "acorn-globals": "^1.0.3" - }, - "dependencies": { - "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npm.alibaba-inc.com/acorn/download/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "dev": true - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npm.alibaba-inc.com/word-wrap/download/word-wrap-1.2.3.tgz", - "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npm.alibaba-inc.com/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xfs": { - "version": "0.2.6", - "resolved": "https://registry.npm.alibaba-inc.com/xfs/download/xfs-0.2.6.tgz", - "integrity": "sha1-nn5L3JO8o5wjFcPSTFRHM8/rITY=" - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npm.alibaba-inc.com/xml-name-validator/download/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npm.alibaba-inc.com/xmlhttprequest/download/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.alibaba-inc.com/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.alibaba-inc.com/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npm.alibaba-inc.com/yargs/download/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npm.alibaba-inc.com/camelcase/download/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npm.alibaba-inc.com/yargs-parser/download/yargs-parser-18.1.3.tgz", - "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/package.json b/package.json index 2e81402..bf8b013 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "cors": "^2.8.5", "debug": "4.1.0", "lodash": "4.17.15", + "resolve.exports": "^2.0.3", "serve-static": "1.12.4", "tnpm-sync": "^1.0.1", "uglify-js": "^3.14.1", From 5e7024ade0f756f2aad4344c8de05f96b1bff656 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 1 Jul 2025 10:47:02 +0800 Subject: [PATCH 66/74] release: v5.0.0-beta.23 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bf8b013..e4ef54d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.22", + "version": "5.0.0-beta.23", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index b71c0d4..6776c6f 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.22 + * Cube v5.0.0-beta.23 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.22'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.23'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.22'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.23'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 205b570bf38f8bff4811a4eb57f03e9e76d2ce0a Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 10 Jul 2025 11:59:34 +0800 Subject: [PATCH 67/74] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8E=9F?= =?UTF-8?q?=E6=9C=89browser=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index 2fc2756..b9d026f 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -267,7 +267,8 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { * } */ if (!alreadyFound && pkg && pkg.browser && typeof pkg.browser === 'object' && !!exist(pkg.browser, modPath, rootPath)) { - const browserArr = Object.keys(pkg.browser); + const browser = pkg.browser; + const browserArr = Object.keys(browser); for (let i =0; i < browserArr.length; i++) { if (modPath === path.resolve(rootPath, browserArr[i])) { if (browser[browserArr[i]]) { @@ -290,6 +291,7 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { debug('testModPath: try package.json.browser object', tmpModPath); tmpModPath = tryFiles(cube, root, tmpModPath); alreadyFound = true; + break; } catch (e) { } } From 7e2ade5b88fc2e2331bd37842f2eb8d7fecf51f5 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 10 Jul 2025 14:32:52 +0800 Subject: [PATCH 68/74] release: v5.0.0-beta.24 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e4ef54d..d169ab6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.23", + "version": "5.0.0-beta.24", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 6776c6f..a36d7c2 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.23 + * Cube v5.0.0-beta.24 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.23'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.24'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.23'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.24'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From b1920f3ae9fa3e0e84781c9c895515028e76697d Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 15 Jul 2025 15:16:17 +0800 Subject: [PATCH 69/74] =?UTF-8?q?fix(resolveModulePath):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dpkg.main=E5=AF=BB=E5=9D=80=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/cube/ext_api_process.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/cube/ext_api_process.js b/lib/cube/ext_api_process.js index b9d026f..60db0a1 100644 --- a/lib/cube/ext_api_process.js +++ b/lib/cube/ext_api_process.js @@ -307,6 +307,9 @@ function testModPathBaisc(cube, modPath, modName, modRootPath, isDirectory) { tmpModPath = tryFiles(cube, root, tmpModPath); alreadyFound = true; } catch (e) { + /** if package.main like : ./lib, it means ./lib/index.js **/ + tmpModPath = path.join(tmpModPath, './index.js'); + debug('testModPath: try package.json.main / index.js ', tmpModPath); } } else { try { From ead79ab1bc37c0dfec5bd9b99c3fd6fdfc4d1800 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Tue, 15 Jul 2025 15:28:11 +0800 Subject: [PATCH 70/74] release: v5.0.0-beta.25 --- package.json | 2 +- runtime/cube-reconstruction.min.js | 4 ++-- runtime/cube.min.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d169ab6..4e564f7 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.24", + "version": "5.0.0-beta.25", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index a36d7c2..0655bc0 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.24 + * Cube v5.0.0-beta.25 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.24'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.25'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.24'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.25'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 146f3e626df40874f15a88f62e9d4282d0f01418 Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Thu, 31 Jul 2025 15:35:50 +0800 Subject: [PATCH 71/74] release: v5.0.0-beta.26 --- package.json | 2 +- runtime/cube-reconstruction.js | 57 +++++++++++++++++------------- runtime/cube-reconstruction.min.js | 4 +-- runtime/cube.min.js | 4 +-- 4 files changed, 37 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 4e564f7..78a1fb7 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.25", + "version": "5.0.0-beta.26", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 84cd5f3..399caab 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,5 +1,5 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 -(function () { +(function (globalThis) { var __assign = function() { __assign = Object.assign || function __assign(t) { @@ -58,17 +58,19 @@ function fetchCubeCode(url, inputCodeProxy, responseAdapter) { } }); } -var head = document.querySelector('head'); +var head = typeof document === 'undefined' ? { + appendChild: function () { }, +} : document.querySelector('head'); /** 原有 cube 请求方法 */ function scriptCubeCode(url) { - var script = document.createElement('script'); + var script = document === null || document === void 0 ? void 0 : document.createElement('script'); script.type = 'text/javascript'; script.async = true; script.onerror = function () { console.error("load module failed."); }; script.src = url; - head.appendChild(script); + head === null || head === void 0 ? void 0 : head.appendChild(script); } function fixMododulePath(paths, remoteSeparator) { var len = paths.length; @@ -109,7 +111,7 @@ function scriptCubeCss(originCss, namespace, file) { if (namespace) { style.setAttribute('ns', namespace); } - head.appendChild(style); + head === null || head === void 0 ? void 0 : head.appendChild(style); style.innerHTML = css; return css; } @@ -178,10 +180,9 @@ function extractModuleInfoFromRequire(require) { // import Cube from 'node-cube/runtime/cube'; -function mockClassialCube() { +function mockClassicalCube(global) { /* short global val */ - var global = window; - var doc = document; + var doc = typeof document === 'undefined' ? {} : document; var log = console; /* settings */ @@ -1175,7 +1176,7 @@ var Cube = /** @class */ (function () { var fireResult = true; try { module.firing = true; - var exports = module.sourceCode.apply(window, [ + var exports_1 = module.sourceCode.apply(window, [ module, // 此处需要组件不改变实例 module.exports, @@ -1184,7 +1185,7 @@ var Cube = /** @class */ (function () { _this.config.mockedProcess, _this.config.mockedGlobal, ]); - module.exports = _this._isEsModule(exports) ? exports.default : exports; + module.exports = _this._isEsModule(exports_1) ? exports_1.default : exports_1; module.error = false; } catch (e) { @@ -1225,12 +1226,12 @@ var Cube = /** @class */ (function () { /** 支持组件内模块请求 */ this._cubeRequire = function (selfName) { return function (moduleName, namespace) { if (namespace === undefined) { - var module = _this._getModule(moduleName); - if (module === null || module === void 0 ? void 0 : module.fired) { - return module.exports; + var module_1 = _this._getModule(moduleName); + if (module_1 === null || module_1 === void 0 ? void 0 : module_1.fired) { + return module_1.exports; } var fireFinished = _this._fireModule(moduleName); - if (!module || !fireFinished) { + if (!module_1 || !fireFinished) { if (_this.config.fetchUndeclaredModule) { if (_this.state.lostDepModule[selfName]) { _this.state.lostDepModule[selfName].push(moduleName); @@ -1247,21 +1248,21 @@ var Cube = /** @class */ (function () { } } else { - return module.exports; + return module_1.exports; } } else { // 默认 css 模块不再依赖其它模块 var css = void 0; - var module = _this._getModule(moduleName); - if (!module || !module.loaded) + var module_2 = _this._getModule(moduleName); + if (!module_2 || !module_2.loaded) return; - if (module.fired) { - css = module.exports; + if (module_2.fired) { + css = module_2.exports; } var fireSucceed = _this._fireModule(moduleName); if (fireSucceed) { - css = module.exports; + css = module_2.exports; } return _this.css(css, namespace, moduleName); } @@ -1405,13 +1406,13 @@ function getStringOnlyObj() { /** 全局初始化单例 */ function setGlobalCube(oldVersion) { var alias = 'Cube'; - var global = window; + var global = typeof window !== 'undefined' ? window : globalThis; if (global[alias]) { console.error('Cube Error: window.' + alias + ' already in using'); return global[alias]; } if (oldVersion) { - mockClassialCube(); + mockClassicalCube(global); } else { var cube_1 = new Cube(); @@ -1429,11 +1430,17 @@ function setGlobalCube(oldVersion) { }); global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.22'; + var cubeVersion = '5.0.0-beta.26'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; } -setGlobalCube(true); -})(); \ No newline at end of file + + if (typeof window === 'undefined') { + module.exports = setGlobalCube(true); + } else { + setGlobalCube(true); + } + +})(typeof window !== "undefined" ? window : globalThis); \ No newline at end of file diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 0655bc0..2564034 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.25 + * Cube v5.0.0-beta.26 */ - (function(){function a(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function l(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(){function a(a,b){if(1===arguments.length)return q(a);var c=q(a);return s.css(c,b,a),a}function c(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,s.use(b,a,d)):s.use(b,a,function(a){a=s.css(a,c,b),d&&d(a)})}}function d(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;r()}function n(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||p(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(u&&l.push(u),o(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,n(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),d()):void P.push([a,b])}function o(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function p(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function q(b){var d=p(b)||K[b];if(!d){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!d.fired)if(d.fired=!0,C)d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F]);else try{d.exports=d.fn.apply(v,[d,d.exports,a,c(b),E,F])}catch(a){x.error(a),d.exports={}}return t(d.exports)?d.exports.default:d.exports}function r(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=q(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function s(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],n(b,a)):b.length&&n(b,a)}function t(a){return G&&a&&'object'===typeof a&&a.__esModule}var u,v=window,w=document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';s.setRemoteBase=function(a){Object.assign(z,a)},s.toString=function(){return'Cube:v5.0.0-beta.25'},s.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(u=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();n(c[0],c[1])}return this},s.use=function(a,c,d,e){if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof c&&(e=d,d=c,c=void 0),c||(c='Cube.use'),d=d||b,a='string'===typeof a?[k(a)]:a.map(k),e||(a=g(a,A)),H.has(a)||H.set(a,[]),H.get(a).push(function(){var b=[],c=a.length,e=!1;return function(a){if(!e)return(b.push(a),b.length===c)?(e=!0,d.apply(v,b),!0):void 0}}()),n(a,c,!0),this},s.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};s.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},s.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},s.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},v.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):v.Cube=s;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(s.init(W),s.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(s,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:u,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}var p=function(){return p=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function l(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function m(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function o(a){function b(a,b){if(1===arguments.length)return r(a);var c=r(a);return t.css(c,b,a),a}function d(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,t.use(b,a,d)):t.use(b,a,function(a){a=t.css(a,c,b),d&&d(a)})}}function e(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;s()}function o(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||q(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,e]=(a+'').split('?');var h=k(d,{base:y,remoteSeparator:A,remoteBase:z}),i=h||y+d,l=[];if(v&&l.push(v),p(i)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,o(a,b))},Q),failed:!1})),e){const a=j(e);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(i=i+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?f({url:i,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):f(i):g(i),I[d]=a,L[a]=!0}),e()):void P.push([a,b])}function p(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function q(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=n(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function r(c){var f=q(c)||K[c];if(!f){const a=new Error('Cube Error: Cannot find module \''+c+'\'');if(C)throw a;else return x.error(a),{}}if(!f.fired)if(f.fired=!0,C)f.exports=f.fn.apply(a,[f,f.exports,b,d(c),E,F]);else try{f.exports=f.fn.apply(a,[f,f.exports,b,d(c),E,F])}catch(a){x.error(a),f.exports={}}return u(f.exports)?f.exports.default:f.exports}function s(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=r(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function t(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=l(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],o(b,a)):b.length&&o(b,a)}function u(a){return G&&a&&'object'===typeof a&&a.__esModule}var v,w='undefined'===typeof document?{}:document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';t.setRemoteBase=function(a){Object.assign(z,a)},t.toString=function(){return'Cube:v5.0.0-beta.26'},t.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(v=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();o(c[0],c[1])}return this},t.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,b='string'===typeof b?[l(b)]:b.map(l),f||(b=h(b,A)),H.has(b)||H.set(b,[]),H.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),o(b,d,!0),this},t.register=function(a,b,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=m(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};t.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,i(a,b,c)}},t.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},t.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},a.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):a.Cube=t;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(t.init(W),t.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(t,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:v,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function p(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}function q(b){var c='Cube',d='undefined'===typeof window?a:window;if(d[c])return console.error('Cube Error: window.'+c+' already in using'),d[c];if(b)o(d);else{var e=new v,f=function(a,b,c){return e.execute(a,b,c)},g=new Proxy(f,{get:function(a,b){return Reflect.ownKeys(e).includes(b)?e[b]:Reflect.get(a,b)}});d[c]=g}return d[c].cubeVersion='5.0.0-beta.26',d[c].oldVersion=b,d[c]}var r=function(){return r=Object.assign||function(a){for(var b,c=1,d=arguments.length;c=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.25'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.26'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 9d298c5807630759a68969c58c38e3499ef3c7bc Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Mon, 25 Aug 2025 11:25:36 +0800 Subject: [PATCH 72/74] release: v5.0.0-beta.27 --- package.json | 2 +- runtime/cube-reconstruction.js | 2582 ++++++++++++++-------------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 1338 insertions(+), 1254 deletions(-) diff --git a/package.json b/package.json index 78a1fb7..218e6c4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.26", + "version": "5.0.0-beta.27", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 399caab..3232ac1 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -1,451 +1,431 @@ // WATCH! 该文件由 cube-reconstruct.ts 导出 请勿直接改动 (function (globalThis) { - -var __assign = function() { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; - -function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); -} - -// 支持 cube 的一些工具方法 -function noop() { } -function baseCodeProxy(c) { + // 支持 cube 的一些工具方法 + function noop() {} + function baseCodeProxy(c) { return c; -} -function combineExecute(c) { + } + function combineExecute(c) { return 'Cube.cStart();' + c + ';Cube.cStop();'; -} -function fetchCubeCode(url, inputCodeProxy, responseAdapter) { - var codeProxy = inputCodeProxy || baseCodeProxy; - var options = typeof url === 'string' ? { url: url } : url; - return (typeof options.fetch === 'function' ? options.fetch : fetch)(options.url, { + } + function fetchCubeCode(url, inputCodeProxy, responseAdapter) { + const codeProxy = inputCodeProxy || baseCodeProxy; + const options = typeof url === 'string' ? { url } : url; + return (typeof options.fetch === 'function' ? options.fetch : fetch)( + options.url, + { headers: { - "Content-Type": "text/plain", + 'Content-Type': 'text/plain', }, - }) - .then(function (response) { - if (responseAdapter) - responseAdapter(response); + } + ) + .then((response) => { + if (responseAdapter) responseAdapter(response); return response; - }) - .then(function (response) { return response.text(); }) - .then(function (code) { + }) + .then((response) => response.text()) + .then((code) => { var _a; try { - return new Function(codeProxy(code))(); - } - catch (error) { - (_a = options.onCodeError) === null || _a === void 0 ? void 0 : _a.call(options, error, { + return new Function(codeProxy(code))(); + } catch (error) { + (_a = options.onCodeError) === null || _a === void 0 + ? void 0 + : _a.call(options, error, { url: options.url, - }); - /** 保持抛错 */ - console.error(error); + }); + /** 保持抛错 */ + console.error(error); } - }); -} -var head = typeof document === 'undefined' ? { - appendChild: function () { }, -} : document.querySelector('head'); -/** 原有 cube 请求方法 */ -function scriptCubeCode(url) { - var script = document === null || document === void 0 ? void 0 : document.createElement('script'); + }); + } + const head = + typeof document === 'undefined' + ? { + appendChild: () => {}, + } + : document.querySelector('head'); + /** 原有 cube 请求方法 */ + function scriptCubeCode(url) { + var script = + document === null || document === void 0 + ? void 0 + : document.createElement('script'); script.type = 'text/javascript'; script.async = true; - script.onerror = function () { - console.error("load module failed."); + script.onerror = () => { + console.error(`load module failed.`); }; script.src = url; head === null || head === void 0 ? void 0 : head.appendChild(script); -} -function fixMododulePath(paths, remoteSeparator) { + } + function fixMododulePath(paths, remoteSeparator) { var len = paths.length; var mod; for (var i = 0; i < len; i++) { - mod = paths[i]; - if (mod.indexOf(remoteSeparator) === -1) { - /** fix #12 **/ - if (mod.indexOf('./') === 0) { - // be compatible with ./test.js - paths[i] = mod.substr(1); - } - else if (mod[0] !== '/') { - // be campatible with test.js - paths[i] = '/' + mod; - } + mod = paths[i]; + if (mod.indexOf(remoteSeparator) === -1) { + /** fix #12 **/ + if (mod.indexOf('./') === 0) { + // be compatible with ./test.js + paths[i] = mod.substr(1); + } else if (mod[0] !== '/') { + // be campatible with test.js + paths[i] = '/' + mod; } + } } return paths; -} -var parseCssRe = /([^};]+)(\{[^}]+\})/g; -/** 原有 css 请求方法 */ -function scriptCubeCss(originCss, namespace, file) { - var css = originCss; + } + const parseCssRe = /([^};]+)(\{[^}]+\})/g; + /** 原有 css 请求方法 */ + function scriptCubeCss(originCss, namespace, file) { + let css = originCss; if (namespace) { - css = originCss.replace(parseCssRe, function (_m0, m1, m2) { - var selectors = m1.split(',').map(function (selector) { - return namespace + ' ' + selector.trim(); - }); - return selectors.join(',') + m2; + css = originCss.replace(parseCssRe, function (_m0, m1, m2) { + var selectors = m1.split(',').map(function (selector) { + return namespace + ' ' + selector.trim(); }); + return selectors.join(',') + m2; + }); } var style = document.createElement('style'); style.setAttribute('type', 'text/css'); if (file) { - style.setAttribute('mod', file); + style.setAttribute('mod', file); } if (namespace) { - style.setAttribute('ns', namespace); + style.setAttribute('ns', namespace); } head === null || head === void 0 ? void 0 : head.appendChild(style); style.innerHTML = css; return css; -} -function parseQueryString(param) { - var kvs = param.split('&'); - var obj = {}; - kvs.forEach(function (kv) { - var tmp = kv.split('='); - obj[tmp[0]] = tmp[1]; + } + function parseQueryString(param) { + let kvs = param.split('&'); + let obj = {}; + kvs.forEach((kv) => { + let tmp = kv.split('='); + obj[tmp[0]] = tmp[1]; }); return obj; -} -/** - * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() - */ -function rebase(name, config) { - var base = config.base, remoteSeparator = config.remoteSeparator, remoteBase = config.remoteBase; - var defaultPath = base + name; + } + /** + * If name is like 'remoteXXX:/com/user/index.js', replace remoteXXX with path defined in init() + */ + function rebase(name, config) { + const { base, remoteSeparator, remoteBase } = config; + let defaultPath = base + name; var offset = name.indexOf ? name.indexOf(remoteSeparator) : 0; - if (offset <= 0) - return defaultPath; + if (offset <= 0) return defaultPath; var rbase = name.substr(0, offset); - if (!remoteBase[rbase]) - return defaultPath; + if (!remoteBase[rbase]) return defaultPath; return remoteBase[rbase] + name.substr(offset + 1); -} -// 定制业务逻辑 ?env=publish === 不加 env -// 此逻辑加在 cube 似乎处不合理 -function removePublishName(name) { - var _a = String(name).split('?'), main = _a[0], params = _a[1]; + } + // 定制业务逻辑 ?env=publish === 不加 env + // 此逻辑加在 cube 似乎处不合理 + function removePublishName(name) { + const [main, params] = String(name).split('?'); if (params) { - var kvs = params.split('&'); - if (kvs.includes('env=publish')) { - kvs = kvs.filter(function (v) { return v !== 'env=publish'; }); - var newParams = kvs.join('&'); - if (newParams) { - return main + '?' + newParams; - } - else { - return main; - } + let kvs = params.split('&'); + if (kvs.includes('env=publish')) { + kvs = kvs.filter((v) => v !== 'env=publish'); + const newParams = kvs.join('&'); + if (newParams) { + return main + '?' + newParams; + } else { + return main; } + } } return name; -} -// 从模块路径中提取模块名称和模块版本 -function extractModuleInfo(path) { - var regex = /^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/; - var match = path.match(regex); - if (!match) - return null; - var moduleName = match[1]; - var modulePath = match[3] || ""; // 模块路径(默认为空字符串) - return { moduleName: moduleName, modulePath: modulePath }; -} -// require => datav:/npm/react/16.4.6?env=xxx -function extractModuleInfoFromRequire(require) { - var regex = /^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/; - var match = require.match(regex); - if (!match) - return null; - var moduleName = match[1]; - var modulePath = match[3] || ""; // 模块路径(默认为空字符串) - return { moduleName: moduleName, modulePath: modulePath }; -} - -// import Cube from 'node-cube/runtime/cube'; + } + // 从模块路径中提取模块名称和模块版本 + function extractModuleInfo(path) { + const regex = /^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/; + const match = path.match(regex); + if (!match) return null; + const moduleName = match[1]; + const modulePath = match[3] || ''; // 模块路径(默认为空字符串) + return { moduleName, modulePath }; + } + // require => datav:/npm/react/16.4.6?env=xxx + function extractModuleInfoFromRequire(require) { + const regex = + /^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/; + const match = require.match(regex); + if (!match) return null; + const moduleName = match[1]; + const modulePath = match[3] || ''; // 模块路径(默认为空字符串) + return { moduleName, modulePath }; + } -function mockClassicalCube(global) { - /* short global val */ - var doc = typeof document === 'undefined' ? {} : document; - var log = console; + // import Cube from 'node-cube/runtime/cube'; - /* settings */ - var base = ''; - var remoteBase = {}; - var remoteSeparator = ':'; - var charset = 'utf-8'; - var version; - var strict = true; - var debug = true; - var combine = true; + function mockClassicalCube(global) { + /* short global val */ + var doc = typeof document === 'undefined' ? {} : document; + var log = console; - var mockedProcess = { - env: { NODE_ENV: 'production' }, - }; - var mockedGlobal = undefined; - var esModule = false; + /* settings */ + var base = ''; + var remoteBase = {}; + var remoteSeparator = ':'; + var charset = 'utf-8'; + var version; + var strict = true; + var debug = true; + var combine = true; - var entrances = new Map(); // Cube.use's cb - // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 - var requireMap = {}; - // 注册表。 eg. { [moduleName]: { [modulePath]: { require, matchType, match, module } } } - var registerMap = {}; - var installedModules = { - /*exports, fn, loaded, fired*/ - }; // The module cache - var loading = {}; - var combineMap = {}; - // type BlackList = Array - var combineBlackList = []; + var mockedProcess = { + env: { NODE_ENV: 'production' }, + }; + var mockedGlobal = undefined; + var esModule = false; - /* store requires before init */ - var inited = false; - /** 未初始化时添加的等待请求的 module */ - var loadQueue = []; - var combineFailTime = 10000; + var entrances = new Map(); // Cube.use's cb + // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 + var requireMap = {}; + // 注册表。 eg. { [moduleName]: { [modulePath]: { require, matchType, match, module } } } + var registerMap = {}; + var installedModules = { + /*exports, fn, loaded, fired*/ + }; // The module cache + var loading = {}; + var combineMap = {}; + // type BlackList = Array + var combineBlackList = []; - // watch! 旧版使用 fetch 容易产生问题 - let requestMethod = 'script'; // 'fetch' | 'script' - // let isIntercepted = false; - let fetchMethod = undefined; - let onCodeError = undefined; + /* store requires before init */ + var inited = false; + /** 未初始化时添加的等待请求的 module */ + var loadQueue = []; + var combineFailTime = 10000; - /** - * The require function - * @param module - * @param namespace - * @returns {*} - * @private - */ - function __cube_require__(module, namespace) { - if (arguments.length === 1) { - return fireModule(module); - } else { - var css = fireModule(module); - Cube.css(css, namespace, module); - return module; - } - } + // watch! 旧版使用 fetch 容易产生问题 + let requestMethod = 'script'; // 'fetch' | 'script' + // let isIntercepted = false; + let fetchMethod = undefined; + let onCodeError = undefined; - /** - * This function creates the load function - */ - function __cube_load_creator__(referer) { /** - * The load function + * The require function * @param module * @param namespace - * @param cb + * @returns {*} * @private */ - return function __cube_load__(module, namespace, cb) { - if (arguments.length === 2 && typeof namespace === 'function') { - cb = namespace; - namespace = null; - Cube.use(module, referer, cb); + function __cube_require__(module, namespace) { + if (typeof namespace === 'undefined') { + return fireModule(module); } else { - Cube.use(module, referer, function (css) { - css = Cube.css(css, namespace, module); - cb && cb(css); - }); + var css = fireModule(module); + Cube.css(css, namespace, module); + return module; } - }; - } - - Cube.setRemoteBase = function (_remoteBase) { - Object.assign(remoteBase, _remoteBase); - }; + } - function checkAllDownloaded() { - if (loadQueue.length) { - return false; + /** + * This function creates the load function + */ + function __cube_load_creator__(referer) { + /** + * The load function + * @param module + * @param namespace + * @param cb + * @private + */ + return function __cube_load__(module, namespace, cb) { + if (typeof cb === 'undefined' && typeof namespace === 'function') { + cb = namespace; + namespace = null; + Cube.use(module, referer, cb); + } else { + Cube.use(module, referer, function (css) { + css = Cube.css(css, namespace, module); + cb && cb(css); + }); + } + }; } - for (var i in loading) { - if (loading.hasOwnProperty(i)) { + + Cube.setRemoteBase = function (_remoteBase) { + Object.assign(remoteBase, _remoteBase); + }; + + function checkAllDownloaded() { + if (loadQueue.length) { return false; } + for (var i in loading) { + if (loading.hasOwnProperty(i)) { + return false; + } + } + startAppAndCallback(); } - startAppAndCallback(); - } - /** - * 下载模块 - * @param requires - * @param referer - * @param root 是否为顶层请求组件 - */ - function load(requires, referer, root) { - if (typeof requires === 'string') { - requires = [requires]; - } - if (!inited) { - loadQueue.push([requires, referer]); - return; - } + /** + * 下载模块 + * @param requires + * @param referer + * @param root 是否为顶层请求组件 + */ + function load(requires, referer, root) { + if (typeof requires === 'string') { + requires = [requires]; + } + if (!inited) { + loadQueue.push([requires, referer]); + return; + } - requires.forEach(function (require) { - if (installedModules[require] || getGlobalRegister(require)) { - if ( - combineMap[require] && - combineMap[require].failed && - installedModules[require] && - installedModules[require].loaded === false - ) ; else { - return; + requires.forEach(function (require) { + if (installedModules[require] || getGlobalRegister(require)) { + if ( + combineMap[require] && + combineMap[require].failed && + installedModules[require] && + installedModules[require].loaded === false + ); + else { + return; + } } - } - installedModules[require] = { - exports: {}, - loaded: false, - fired: false, - }; + installedModules[require] = { + exports: {}, + loaded: false, + fired: false, + }; - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - const [mod, custom] = String(require).split('?'); + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [mod, custom] = String(require).split('?'); - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); - var srcPath = rebaseName || base + mod; + var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var srcPath = rebaseName || base + mod; - var query = []; - if (version) { - query.push(version); - } - // 目前仅根节点(组件级别)发起 combine - if (checkCombineState(srcPath) && root) { - query.push('combine=true'); - installedModules[require].combine = true; - if (!combineMap[require]) { - combineMap[require] = { - start: Date.now(), - timeout: setTimeout(() => { - if (loading[require]) { - combineMap[require].failed = true; - load(require, referer); - // 标记超时了 - } - }, combineFailTime), - failed: false, - }; + var query = []; + if (version) { + query.push(version); + } + // 目前仅根节点(组件级别)发起 combine + if (checkCombineState(srcPath) && root) { + query.push('combine=true'); + installedModules[require].combine = true; + if (!combineMap[require]) { + combineMap[require] = { + start: Date.now(), + timeout: setTimeout(() => { + if (loading[require]) { + combineMap[require].failed = true; + load(require, referer); + // 标记超时了 + } + }, combineFailTime), + failed: false, + }; + } } - } - if (custom) { - const customArgs = parseQueryString(custom); - Array.prototype.push.apply( - query, - Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; - }) - ); - } + if (custom) { + const customArgs = parseQueryString(custom); + Array.prototype.push.apply( + query, + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } - if (requestMethod === 'fetch') { - // combine 接口失败后的 traceId 记录排查 - if (combine && combineMap[require] && !combineMap[require].traceId) { - fetchCubeCode({ - url: srcPath, - fetch: fetchMethod, - onCodeError: onCodeError, - }, undefined, (res) => { - if (res.headers.has('request-id')) { - combineMap[require].traceId = res.headers.get('request-id'); - } - }); + if (requestMethod === 'fetch') { + // combine 接口失败后的 traceId 记录排查 + if (combine && combineMap[require] && !combineMap[require].traceId) { + fetchCubeCode( + { + url: srcPath, + fetch: fetchMethod, + onCodeError: onCodeError, + }, + undefined, + (res) => { + if (res.headers.has('request-id')) { + combineMap[require].traceId = res.headers.get('request-id'); + } + } + ); + } else { + fetchCubeCode(srcPath); + } } else { - fetchCubeCode(srcPath); + scriptCubeCode(srcPath); } - } else { - scriptCubeCode(srcPath); - } - - requireMap[mod] = require; - loading[require] = true; - }); - checkAllDownloaded(); - } - function checkCombineState(path) { - if (!combine) return false; - if (combineBlackList.length) { - return !combineBlackList.some((black) => { - return !!path.match(black); + requireMap[mod] = require; + loading[require] = true; }); + checkAllDownloaded(); } - // combineBlackList 没有或错误的情况下兜底 combine - return true; - } - // require => datav:/npm/react/16.4.6?env=xxx - function getGlobalRegister(require) { - if (!require.startsWith('datav:/npm/')) { - return false; + function checkCombineState(path) { + if (!combine) return false; + if (combineBlackList.length) { + return !combineBlackList.some((black) => { + return !!path.match(black); + }); + } + // combineBlackList 没有或错误的情况下兜底 combine + return true; } - let { moduleName, modulePath } = extractModuleInfoFromRequire(require); - if (!registerMap[moduleName]) return false; + // require => datav:/npm/react/16.4.6?env=xxx + function getGlobalRegister(require) { + if (!require.startsWith('datav:/npm/')) { + return false; + } - modulePath = modulePath || 'default'; - if (registerMap[moduleName][modulePath]) return registerMap[moduleName][modulePath].module; + let { moduleName, modulePath } = extractModuleInfoFromRequire(require); + if (!registerMap[moduleName]) return false; - Object.entries(registerMap[moduleName]).forEach(([path, register]) => { - if (register.match.test(require)) { - return register.module; - } - }); - return false; - } + modulePath = modulePath || 'default'; + if (registerMap[moduleName][modulePath]) + return registerMap[moduleName][modulePath].module; - /** - * 运行模块 - * @param module - * @returns {*} - */ - function fireModule(module) { - var m = getGlobalRegister(module) || installedModules[module]; - if (!m) { - const err = new Error('Cube Error: Cannot find module ' + "'" + module + "'"); - if (strict) { - throw err; - } else { - log.error(err); - return {}; - } + Object.entries(registerMap[moduleName]).forEach(([path, register]) => { + if (register.match.test(require)) { + return register.module; + } + }); + return false; } - if (!m.fired) { - m.fired = true; - if (strict) { - m.exports = m.fn.apply(global, [ - m, - m.exports, - __cube_require__, - __cube_load_creator__(module), - mockedProcess, - mockedGlobal, - ]); - } else { - try { + + /** + * 运行模块 + * @param module + * @returns {*} + */ + function fireModule(module) { + var m = getGlobalRegister(module) || installedModules[module]; + if (!m) { + const err = new Error( + 'Cube Error: Cannot find module ' + "'" + module + "'" + ); + if (strict) { + throw err; + } else { + log.error(err); + return {}; + } + } + if (!m.fired) { + m.fired = true; + if (strict) { m.exports = m.fn.apply(global, [ m, m.exports, @@ -454,362 +434,388 @@ function mockClassicalCube(global) { mockedProcess, mockedGlobal, ]); - } catch (e) { - log.error(e); - m.exports = {}; + } else { + try { + m.exports = m.fn.apply(global, [ + m, + m.exports, + __cube_require__, + __cube_load_creator__(module), + mockedProcess, + mockedGlobal, + ]); + } catch (e) { + log.error(e); + m.exports = {}; + } } } + return isEsModule(m.exports) ? m.exports.default : m.exports; } - return isEsModule(m.exports) ? m.exports.default : m.exports; - } - /** - * 从Cube.use的文件开始自上而下运行,并调用回调函数 - */ - function startAppAndCallback() { - for (let [key, value] of entrances) { - key.length && - key.forEach(function (entrance) { - // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 - // 严格检查 - if (loading[entrance]) return; - var count = 0; - const exportModule = fireModule(entrance); - value.length && - value.forEach(function (fn) { - var called = fn(exportModule); - if (called) { - count++; - } - }); - if (value.length === count) { - // 回调函数都执行完后删除 - entrances.delete(key); - } - }); + /** + * 从Cube.use的文件开始自上而下运行,并调用回调函数 + */ + function startAppAndCallback() { + for (let [key, value] of entrances) { + key.length && + key.forEach(function (entrance) { + // 出现多次 startAppAndCallback, 在某次 startAppAndCallback 未结束时,entrances 增加了,但其实 loading 并未结束 + // 严格检查 + if (loading[entrance]) return; + var count = 0; + const exportModule = fireModule(entrance); + value.length && + value.forEach(function (fn) { + var called = fn(exportModule); + if (called) { + count++; + } + }); + if (value.length === count) { + // 回调函数都执行完后删除 + entrances.delete(key); + } + }); + } } - } - /** - * 非构造函数,只供模块的wrapper调用 - * installedModules[name] name 是带入参的,不同入参的,不同key - * @param name - * @param requires - * @param sourceCode - */ - function Cube(name, requires, callback) { - // 暂时兼容返回的 name 不带入参的情况 - const oldName = String(name); - name = requireMap[name] || name; - var mod = installedModules[name]; - // 定制业务逻辑 ?env=publish === 不加 env - mod = removePublishName(mod); - if (!mod) { - mod = installedModules[name] = { - exports: {}, - fired: false, - }; - } - // 记录或清理合并接口信息 - if (combineMap[name] && !mod.loaded) { - if (!combineMap[name].failed) { - clearTimeout(combineMap[name].timeout); - delete combineMap[name]; - } else { - combineMap[name].end = Date.now(); + /** + * 非构造函数,只供模块的wrapper调用 + * installedModules[name] name 是带入参的,不同入参的,不同key + * @param name + * @param requires + * @param sourceCode + */ + function Cube(name, requires, callback) { + // 暂时兼容返回的 name 不带入参的情况 + const oldName = String(name); + name = requireMap[name] || name; + var mod = installedModules[name]; + // 定制业务逻辑 ?env=publish === 不加 env + mod = removePublishName(mod); + if (!mod) { + mod = installedModules[name] = { + exports: {}, + fired: false, + }; + } + // 记录或清理合并接口信息 + if (combineMap[name] && !mod.loaded) { + if (!combineMap[name].failed) { + clearTimeout(combineMap[name].timeout); + delete combineMap[name]; + } else { + combineMap[name].end = Date.now(); + } } - } - mod.loaded = true; - mod.fn = callback; - requireMap[oldName] && delete requireMap[oldName]; + mod.loaded = true; + mod.fn = callback; + requireMap[oldName] && delete requireMap[oldName]; - if (loading[name]) { - delete loading[name]; - load(requires, name); - } else if (requires.length) { - load(requires, name); + if (loading[name]) { + delete loading[name]; + load(requires, name); + } else if (requires.length) { + load(requires, name); + } } - } - /** version, will replace in `make release` **/ - Cube.toString = function () { - return 'Cube:v$$version$$'; - }; + /** version, will replace in `make release` **/ + Cube.toString = function () { + return 'Cube:v$$version$$'; + }; - /** - * init global setting for Cube - * @static - * @param {Object} config {base, remoteBase, charset, version} - */ - Cube.init = function (config) { - if (config.base && config.base !== '/') { - base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + /** + * init global setting for Cube + * @static + * @param {Object} config {base, remoteBase, charset, version} + */ + Cube.init = function (config) { + if (config.base && config.base !== '/') { + base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (var key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); + } } } - } - if (config.charset) { - charset = config.charset; - } - if (config.version) { - version = config.version; - } + if (config.charset) { + charset = config.charset; + } + if (config.version) { + version = config.version; + } - if (config.strict !== undefined) { - strict = config.strict; - } - if (config.env) { - mockedProcess.env.NODE_ENV = config.env; - } - if (config.global) { - mockedGlobal = config.global; - } - if (config.combine !== undefined) { - combine = config.combine; - } - if (config.combineBlackList) { - combineBlackList = config.combineBlackList; - } - if (config.requestMethod) { - requestMethod = config.requestMethod; - } - // support ES6 module, default is true - if (config.esModule !== undefined) { - esModule = config.esModule; - } + if (config.strict !== undefined) { + strict = config.strict; + } + if (config.env) { + mockedProcess.env.NODE_ENV = config.env; + } + if (config.global) { + mockedGlobal = config.global; + } + if (config.combine !== undefined) { + combine = config.combine; + } + if (config.combineBlackList) { + combineBlackList = config.combineBlackList; + } + if (config.requestMethod) { + requestMethod = config.requestMethod; + } + // support ES6 module, default is true + if (config.esModule !== undefined) { + esModule = config.esModule; + } - if (config.fetchMethod) { - fetchMethod = config.fetchMethod; - } + if (config.fetchMethod) { + fetchMethod = config.fetchMethod; + } - if (config.onCodeError) { - onCodeError = config.onCodeError; - } + if (config.onCodeError) { + onCodeError = config.onCodeError; + } - if (config.combineFailTime) { - combineFailTime = config.combineFailTime; - } + if (config.combineFailTime) { + combineFailTime = config.combineFailTime; + } - inited = true; + inited = true; - while (loadQueue.length) { - var deps = loadQueue.shift(); - load(deps[0], deps[1]); - } + while (loadQueue.length) { + var deps = loadQueue.shift(); + load(deps[0], deps[1]); + } - return this; - }; - /** - * loading module async, this function only support abs path - * @public - * @param {Path} moduleNames module abs path - * @param {Function} cb callback function, usually with module.exports as it's first param - * @param {Boolean} noFix used only in single mode - */ - Cube.use = function (mods, referer, cb, noFix) { - if (!mods) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - if (typeof referer === 'function') { - noFix = cb; - cb = referer; - referer = undefined; - } - if (!referer) { - referer = 'Cube.use'; - } - cb = cb || noop; + return this; + }; + /** + * loading module async, this function only support abs path + * @public + * @param {Path} moduleNames module abs path + * @param {Function} cb callback function, usually with module.exports as it's first param + * @param {Boolean} noFix used only in single mode + */ + Cube.use = function (mods, referer, cb, noFix) { + if (!mods) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + if (typeof referer === 'function') { + noFix = cb; + cb = referer; + referer = undefined; + } + if (!referer) { + referer = 'Cube.use'; + } + cb = cb || noop; - if (typeof mods === 'string') { - mods = [removePublishName(mods)]; - } else { - mods = mods.map(removePublishName); - } + if (typeof mods === 'string') { + mods = [removePublishName(mods)]; + } else { + mods = mods.map(removePublishName); + } - if (!noFix) { - mods = fixMododulePath(mods, remoteSeparator); - } + if (!noFix) { + mods = fixMododulePath(mods, remoteSeparator); + } - // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map - if (!entrances.has(mods)) { - entrances.set(mods, []); - } - entrances.get(mods).push( - (function () { - var apps = []; - var length = mods.length; - var firing = false; + // WARN: mods 是数组,会被自然的用 , 拼接,但 query 入参也可能带 , 所以这边 entrances 用 Map + if (!entrances.has(mods)) { + entrances.set(mods, []); + } + entrances.get(mods).push( + (function () { + var apps = []; + var length = mods.length; + var firing = false; - return function (exports) { - if (firing) { - return; - } - apps.push(exports); - if (apps.length === length) { - firing = true; - cb.apply(global, apps); - return true; - } - }; - })() - ); - load(mods, referer, true); - return this; - }; - /** - * register module in to cache - * @param {string} module [description] - * @param {} exports [description] - * @param {object} options 配置项 - * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { - if (installedModules[module]) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' already registered'); - } - installedModules[module] = { - exports: exports, - fn: noop, - loaded: true, - fired: true, + return function (exports) { + if (firing) { + return; + } + apps.push(exports); + if (apps.length === length) { + firing = true; + cb.apply(global, apps); + return true; + } + }; + })() + ); + load(mods, referer, true); + return this; }; - - if (matchType === 'module') { - registerMap[module] = registerMap[module] || {}; - registerMap[module].default = { - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), - module: installedModules[module], - moduleName: module, + /** + * register module in to cache + * @param {string} module [description] + * @param {} exports [description] + * @param {object} options 配置项 + * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + Cube.register = function (module, exports, { matchType = 'version' } = {}) { + if (installedModules[module]) { + return log.warn( + 'Cube Warning: Module ' + "'" + module + "'" + ' already registered' + ); + } + installedModules[module] = { + exports: exports, + fn: noop, + loaded: true, + fired: true, }; - } - if (matchType === 'function') { - const { moduleName, modulePath } = extractModuleInfo(module); - - if (!modulePath) { - return log.warn('Cube Warning: Module ' + "'" + module + "'" + ' matchType is function, but no path'); + if (matchType === 'module') { + registerMap[module] = registerMap[module] || {}; + registerMap[module].default = { + require: module, + matchType, + match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + module: installedModules[module], + moduleName: module, + }; } - registerMap[moduleName] = registerMap[moduleName] || {}; - registerMap[moduleName][modulePath] = { - require: module, - matchType, - match: new RegExp(`^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePath}$`), - module: installedModules[module], - moduleName, - }; - } + if (matchType === 'function') { + const { moduleName, modulePath } = extractModuleInfo(module); - return this; - }; - /** - * @interface inject css into page - * css inject is comp - * ie8 and lower only support 32 stylesheets, so this function - * @param {String} name module name - * @param {CssCode} css css code - */ - var cssMod = {}; - Cube.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (cssMod[modId]) { - return; - } - cssMod[modId] = true; - return scriptCubeCss(css, namespace, file); - }; + if (!modulePath) { + return log.warn( + 'Cube Warning: Module ' + + "'" + + module + + "'" + + ' matchType is function, but no path' + ); + } - Cube.debug = function () { - log.error('Cube Error: Cube.debug nolonger supported'); - }; + registerMap[moduleName] = registerMap[moduleName] || {}; + registerMap[moduleName][modulePath] = { + require: module, + matchType, + match: new RegExp( + `^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePath}$` + ), + module: installedModules[module], + moduleName, + }; + } - Cube.cache = function () { - var unloaded = {}, - unfired = {}, - i, - m; + return this; + }; + /** + * @interface inject css into page + * css inject is comp + * ie8 and lower only support 32 stylesheets, so this function + * @param {String} name module name + * @param {CssCode} css css code + */ + var cssMod = {}; + Cube.css = function (css, namespace, file) { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (cssMod[modId]) { + return; + } + cssMod[modId] = true; + return scriptCubeCss(css, namespace, file); + }; - for (i in installedModules) { - if (installedModules.hasOwnProperty(i)) { - m = installedModules[i]; - if (!m.loaded) { - unloaded[i] = m; - } - if (!m.fired) { - unfired[i] = m; + Cube.debug = function () { + log.error('Cube Error: Cube.debug nolonger supported'); + }; + + Cube.cache = function () { + var unloaded = {}, + unfired = {}, + i, + m; + + for (i in installedModules) { + if (installedModules.hasOwnProperty(i)) { + m = installedModules[i]; + if (!m.loaded) { + unloaded[i] = m; + } + if (!m.fired) { + unfired[i] = m; + } } } - } - log.info('modules:', installedModules); - log.info('unloaded:', unloaded); - log.info('unfired:', unfired); - }; + log.info('modules:', installedModules); + log.info('unloaded:', unloaded); + log.info('unfired:', unfired); + }; - if (global['Cube']) { - log.error('Cube Error: window.' + 'Cube' + ' already in using, replace the last "null" param in cube.js'); - } else { - global['Cube'] = Cube; - } + if (global['Cube']) { + log.error( + 'Cube Error: window.' + + 'Cube' + + ' already in using, replace the last "null" param in cube.js' + ); + } else { + global['Cube'] = Cube; + } - /** - * intergration with - */ - var cse = doc.currentScript; - if (cse) { - var cfg = cse.dataset; - if (cfg.base) { - Cube.init(cfg); - Cube.use(cfg.main || 'index.js', function (app) { - app.run && app.run(); - }); + /** + * intergration with + */ + var cse = doc.currentScript; + if (cse) { + var cfg = cse.dataset; + if (cfg.base) { + Cube.init(cfg); + Cube.use(cfg.main || 'index.js', function (app) { + app.run && app.run(); + }); + } } - } - // 支持 Cube 获取配置信息与新版一致 - Object.defineProperty(Cube, 'config', { - get() { - return { - base, - remoteBase, - remoteSeparator, - version, - strict, - debug, - esModule, - mockedGlobal, - mockedProcess, - charset, - combine, - combineMap, - }; - }, - }); + // 支持 Cube 获取配置信息与新版一致 + Object.defineProperty(Cube, 'config', { + get() { + return { + base, + remoteBase, + remoteSeparator, + version, + strict, + debug, + esModule, + mockedGlobal, + mockedProcess, + charset, + combine, + combineMap, + }; + }, + }); - function isEsModule(module) { - return esModule && module && typeof module === 'object' && module.__esModule; + function isEsModule(module) { + return ( + esModule && module && typeof module === 'object' && module.__esModule + ); + } } -} -/** - * 默认配置项变量 - */ -var DEFAULT_CUBE_CONFIG = { + /** + * 默认配置项变量 + */ + const DEFAULT_CUBE_CONFIG = { base: '', remoteBase: {}, remoteSeparator: ':', mockedProcess: { - env: { NODE_ENV: 'production' }, + env: { NODE_ENV: 'production' }, }, mockedGlobal: undefined, /** 这个字段应该已经废弃了 */ @@ -835,612 +841,690 @@ var DEFAULT_CUBE_CONFIG = { fetchMethod: undefined, /** 下载脚本报错回调 */ onCodeError: undefined, -}; -/** - * cube 重构 - * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg - */ -var Cube = /** @class */ (function () { - function Cube() { - var _this = this; - this.config = __assign({}, DEFAULT_CUBE_CONFIG); - this.state = { - /** 是否完成初始化 */ - inited: false, - /** 是否被拦截 */ - isIntercepted: false, - /** 未初始化时添加的等待请求的 module */ - pendingQueue: [], - lostDepModule: {}, - /** 记录资源加载完成后的回调信息 */ - entrances: new Map(), - /** 记录 css 模块加载情况 */ - cssModule: {}, - /** 已下载模块 */ - installedModules: getStringOnlyObj(), - /** 注册模块 */ - registerModules: [], - // 兼容请求 key 带入参,返回 key 不带入参的情况。 - // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } - requireMap: {}, - // 是否处于文件合并执行状态 - fileExecuting: false, - // 聚合请求 - aggregateLoading: {}, - delayTrigger: undefined, - // TODO 新版支持 combine 兜底(combineMap) - }; - /** - * 跳过请求注册模块 - * @param moduleName 模块名 - * @param exports 模块实例 - * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 - */ - this.register = function (moduleName, exports, option) { - var _a; - if (option === void 0) { option = { matchType: 'version' }; } - var matchType = option.matchType; - if ((_a = _this._getModule(moduleName)) === null || _a === void 0 ? void 0 : _a.fired) { - return console.warn('Cube Warning: Module ' + "'" + moduleName + "'" + ' already registered'); - } - _this.state.installedModules[moduleName] = { - exports: exports, - sourceCode: noop, - dep: [], - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: true, - }; - if (matchType === 'module') { - _this.state.registerModules.push({ - moduleName: moduleName, - matchType: matchType, - match: new RegExp("^datav:/npm/".concat(moduleName, "/([^/]+)?$")), - module: _this.state.installedModules[moduleName], - }); - } - }; - /** 初始化 */ - this.init = function (config) { - var _a, _b, _c, _d, _e, _f, _g; - if (_this.state.inited) { - console.warn('Cube 重复初始化,可能产生资源请求错误'); - } - if (config.base && config.base !== '/') { - _this.config.base = config.base.replace(/\/$/, ''); - } - if (config.remoteBase) { - for (var key in config.remoteBase) { - if (config.remoteBase.hasOwnProperty(key)) { - _this.config.remoteBase[key] = config.remoteBase[key].replace(/\/$/, ''); - } - } - } - _this.config.version = (_a = config.version) !== null && _a !== void 0 ? _a : _this.config.version; - _this.config.esModule = (_b = config.esModule) !== null && _b !== void 0 ? _b : _this.config.esModule; - _this.config.debug = (_c = config.debug) !== null && _c !== void 0 ? _c : _this.config.debug; - _this.config.combine = (_d = config.combine) !== null && _d !== void 0 ? _d : _this.config.combine; - _this.config.requestMethod = (_e = config.requestMethod) !== null && _e !== void 0 ? _e : _this.config.requestMethod; - _this.config.fetchUndeclaredModule = (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 ? _f : _this.config.fetchUndeclaredModule; - _this.config.aggregateFetch = (_g = config.aggregateFetch) !== null && _g !== void 0 ? _g : _this.config.aggregateFetch; - _this.config.fetchMethod = config.fetchMethod || fetch; - _this.config.onCodeError = config.onCodeError; - _this.state.inited = true; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /** - * 异步加载模块 - */ - this.use = function (moduleName, refererOrCallback, callbackOrOmitFix, omitFixOrUndefined) { - if (!moduleName) { - throw new Error('Cube.use(moduleName) moduleName is undefined!'); - } - // 整理入参 - // 确保 moduleNames 唯一 - var moduleNames = typeof moduleName === 'string' - ? [moduleName] - : typeof moduleName === 'number' - ? [moduleName.toString()] - : __spreadArray([], moduleName, true); - var omitFix = omitFixOrUndefined; - // let _referer: string | undefined; - var callback; - if (typeof refererOrCallback === 'string') { - // referer = refererOrCallback; - callback = callbackOrOmitFix; - } - else { - // referer = undefined; - callback = refererOrCallback; - omitFix = callbackOrOmitFix; - } - callback = callback || noop; - moduleNames = !omitFix ? fixMododulePath(moduleNames, _this.config.remoteSeparator) : moduleNames; - var entry = { - callback: callback, - loadSource: {}, - targets: __spreadArray([], moduleNames, true), - }; - if (_this.config.aggregateFetch) ; - else { - moduleNames.forEach(function (i) { - entry.loadSource[i] = false; - }); - } - _this.state.entrances.set(moduleNames, entry); - moduleNames.forEach(function (mName) { return _this._load(mName, moduleNames); }); + }; + /** + * cube 重构 + * https://yuque.antfin.com/lcv0by/ph89oq/chzehxz50ldg5krg + */ + class Cube { + constructor() { + this.config = Object.assign({}, DEFAULT_CUBE_CONFIG); + this.state = { + /** 是否完成初始化 */ + inited: false, + /** 是否被拦截 */ + isIntercepted: false, + /** 未初始化时添加的等待请求的 module */ + pendingQueue: [], + lostDepModule: {}, + /** 记录资源加载完成后的回调信息 */ + entrances: new Map(), + /** 记录 css 模块加载情况 */ + cssModule: {}, + /** 已下载模块 */ + installedModules: getStringOnlyObj(), + /** 注册模块 */ + registerModules: [], + // 兼容请求 key 带入参,返回 key 不带入参的情况。 + // eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } + requireMap: {}, + // 是否处于文件合并执行状态 + fileExecuting: false, + // 聚合请求 + aggregateLoading: {}, + delayTrigger: undefined, + // TODO 新版支持 combine 兜底(combineMap) + }; + /** + * 跳过请求注册模块 + * @param moduleName 模块名 + * @param exports 模块实例 + * @param matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 + */ + this.register = ( + moduleName, + exports, + option = { matchType: 'version' } + ) => { + var _a; + const { matchType } = option; + if ( + (_a = this._getModule(moduleName)) === null || _a === void 0 + ? void 0 + : _a.fired + ) { + return console.warn( + 'Cube Warning: Module ' + + "'" + + moduleName + + "'" + + ' already registered' + ); + } + this.state.installedModules[moduleName] = { + exports: exports, + sourceCode: noop, + dep: [], + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: true, }; - /** 执行 cube 源码 即原 Cube(...) */ - this.execute = function (responseName, requires, sourceCode) { - var _a; - if (typeof responseName === 'number') { - responseName = responseName.toString(); - } - var moduleName = _this._calibrateName(responseName); - // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 - if ((_a = _this.state.installedModules[moduleName]) === null || _a === void 0 ? void 0 : _a.loaded) { - return; + if (matchType === 'module') { + this.state.registerModules.push({ + moduleName, + matchType, + match: new RegExp(`^datav:\/npm\/${moduleName}\/([^\/]+)?$`), + module: this.state.installedModules[moduleName], + }); + } + }; + /** 初始化 */ + this.init = (config) => { + var _a, _b, _c, _d, _e, _f, _g; + if (this.state.inited) { + console.warn('Cube 重复初始化,可能产生资源请求错误'); + } + if (config.base && config.base !== '/') { + this.config.base = config.base.replace(/\/$/, ''); + } + if (config.remoteBase) { + for (let key in config.remoteBase) { + if (config.remoteBase.hasOwnProperty(key)) { + this.config.remoteBase[key] = config.remoteBase[key].replace( + /\/$/, + '' + ); } - _this._store(moduleName, requires, sourceCode); - _this._initiate(moduleName); + } + } + this.config.version = + (_a = config.version) !== null && _a !== void 0 + ? _a + : this.config.version; + this.config.esModule = + (_b = config.esModule) !== null && _b !== void 0 + ? _b + : this.config.esModule; + this.config.debug = + (_c = config.debug) !== null && _c !== void 0 + ? _c + : this.config.debug; + this.config.combine = + (_d = config.combine) !== null && _d !== void 0 + ? _d + : this.config.combine; + this.config.requestMethod = + (_e = config.requestMethod) !== null && _e !== void 0 + ? _e + : this.config.requestMethod; + this.config.fetchUndeclaredModule = + (_f = config.fetchUndeclaredModule) !== null && _f !== void 0 + ? _f + : this.config.fetchUndeclaredModule; + this.config.aggregateFetch = + (_g = config.aggregateFetch) !== null && _g !== void 0 + ? _g + : this.config.aggregateFetch; + this.config.fetchMethod = config.fetchMethod || fetch; + this.config.onCodeError = config.onCodeError; + this.state.inited = true; + for (let i = 0; i < this.state.pendingQueue.length; i++) { + let pendingInfo = this.state.pendingQueue[i]; + this._load(pendingInfo[0], pendingInfo[1]); + } + this.state.pendingQueue = []; + }; + /** + * 异步加载模块 + */ + this.use = ( + moduleName, + refererOrCallback, + callbackOrOmitFix, + omitFixOrUndefined + ) => { + if (!moduleName) { + throw new Error('Cube.use(moduleName) moduleName is undefined!'); + } + // 整理入参 + // 确保 moduleNames 唯一 + let moduleNames = + typeof moduleName === 'string' + ? [moduleName] + : typeof moduleName === 'number' + ? [moduleName.toString()] + : [...moduleName]; + let omitFix = omitFixOrUndefined; + // let _referer: string | undefined; + let callback; + if (typeof refererOrCallback === 'string') { + // referer = refererOrCallback; + callback = callbackOrOmitFix; + } else { + // referer = undefined; + callback = refererOrCallback; + omitFix = callbackOrOmitFix; + } + callback = callback || noop; + moduleNames = !omitFix + ? fixMododulePath(moduleNames, this.config.remoteSeparator) + : moduleNames; + const entry = { + callback, + loadSource: {}, + targets: [...moduleNames], }; - /** - * 加载 css - */ - this.css = function (css, namespace, file) { - if (!css) { - return; - } - var modId = file + '@' + namespace; - if (_this.state.cssModule[modId]) { - return; - } - _this.state.cssModule[modId] = true; - return scriptCubeCss(css, namespace, file); + if (this.config.aggregateFetch); + else { + moduleNames.forEach((i) => { + entry.loadSource[i] = false; + }); + } + this.state.entrances.set(moduleNames, entry); + moduleNames.forEach((mName) => this._load(mName, moduleNames)); + }; + /** 执行 cube 源码 即原 Cube(...) */ + this.execute = (responseName, requires, sourceCode) => { + var _a; + if (typeof responseName === 'number') { + responseName = responseName.toString(); + } + const moduleName = this._calibrateName(responseName); + // load 处已做判断 但仍有可能某个模块源码带有其他冗余模块的情况 + if ( + (_a = this.state.installedModules[moduleName]) === null || + _a === void 0 + ? void 0 + : _a.loaded + ) { + return; + } + this._store(moduleName, requires, sourceCode); + this._initiate(moduleName); + }; + /** + * 加载 css + */ + this.css = (css, namespace, file) => { + if (!css) { + return; + } + var modId = file + '@' + namespace; + if (this.state.cssModule[modId]) { + return; + } + this.state.cssModule[modId] = true; + return scriptCubeCss(css, namespace, file); + }; + /** + * 模块存储 + */ + this._store = (moduleName, dep, sourceCode) => { + const module = this.state.installedModules[moduleName]; + if (module) { + module.dep.push(...dep); + module.sourceCode = sourceCode; + module.loaded = true; + } else { + this.state.installedModules[moduleName] = { + exports: {}, + sourceCode, + dep, + refer: { entryDep: [] }, + loaded: true, + firing: false, + fired: false, + }; + } + }; + /** 请求资源 */ + this._load = (moduleName, entryKey) => { + if (typeof moduleName === 'number') { + moduleName = moduleName.toString(); + } + if (!this.config.aggregateFetch) { + const entry = this.state.entrances.get(entryKey); + if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { + entry.loadSource[moduleName] = false; + } + } + if (!this.state.inited || this.state.fileExecuting) { + this.state.pendingQueue.push([moduleName, entryKey]); + return; + } + const module = this._getModule(moduleName); + if (module) { + this._addReferToDependency(moduleName, module, entryKey); + if (module.loaded) { + this._triggerCallback(moduleName, module); + } + return; + } + const [name] = moduleName.split('?'); + this.state.requireMap[name] = moduleName; + this.state.installedModules[moduleName] = { + exports: {}, + sourceCode: undefined, + dep: [], + refer: { + entryDep: [], + }, + loaded: false, + firing: false, + fired: false, }; - /** - * 模块存储 - */ - this._store = function (moduleName, dep, sourceCode) { + this._addReferToDependency( + moduleName, + this.state.installedModules[moduleName], + entryKey + ); + const srcPath = this._generatePath(moduleName); + this.config.requestMethod === 'fetch' + ? fetchCubeCode( + { + url: srcPath, + fetch: this.config.fetchMethod, + onCodeError: this.config.onCodeError, + }, + combineExecute + ) + : scriptCubeCode(srcPath); + }; + /** 实例化并执行回调 */ + this._initiate = (moduleName) => { + const module = this.state.installedModules[moduleName]; + this._triggerCallback(moduleName, module); + }; + /** 向上检索树依赖及回调 */ + this._triggerCallback = (moduleName, module) => { + if (!module.loaded) return; + if (this.config.aggregateFetch) { + module.dep.forEach((m) => { var _a; - var module = _this.state.installedModules[moduleName]; - if (module) { - (_a = module.dep).push.apply(_a, dep); - module.sourceCode = sourceCode; - module.loaded = true; + if ( + (_a = this._getModule(m)) === null || _a === void 0 + ? void 0 + : _a.loaded + ) { + return; } - else { - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: sourceCode, - dep: dep, - refer: { entryDep: [] }, - loaded: true, - firing: false, - fired: false, - }; - } - }; - /** 请求资源 */ - this._load = function (moduleName, entryKey) { - if (typeof moduleName === 'number') { - moduleName = moduleName.toString(); - } - if (!_this.config.aggregateFetch) { - var entry = _this.state.entrances.get(entryKey); - if (entry && !entry.loadSource.hasOwnProperty(moduleName)) { - entry.loadSource[moduleName] = false; - } - } - if (!_this.state.inited || _this.state.fileExecuting) { - _this.state.pendingQueue.push([moduleName, entryKey]); - return; - } - var module = _this._getModule(moduleName); - if (module) { - _this._addReferToDependency(moduleName, module, entryKey); - if (module.loaded) { - _this._triggerCallback(moduleName, module); - } - return; + this._load(m, []); + }); + if (this.state.aggregateLoading[moduleName]) { + delete this.state.aggregateLoading[moduleName]; + this._triggerAllCallback(); + } + return; + } + const refDep = module.refer; + let finishedEntry = []; + refDep.entryDep.forEach((entryKey) => { + const entry = this.state.entrances.get(entryKey); + if (entry) { + entry.loadSource[moduleName] = true; + let next = true; + if (!module.fired) { + module.dep.forEach((m) => { + if (entry.loadSource[m]) return; + const subModule = this._getModule(m); + if ( + subModule === null || subModule === void 0 + ? void 0 + : subModule.fired + ) + return; + next = false; + this._load(m, entryKey); + }); } - var name = moduleName.split('?')[0]; - _this.state.requireMap[name] = moduleName; - _this.state.installedModules[moduleName] = { - exports: {}, - sourceCode: undefined, - dep: [], - refer: { - entryDep: [], - }, - loaded: false, - firing: false, - fired: false, - }; - _this._addReferToDependency(moduleName, _this.state.installedModules[moduleName], entryKey); - var srcPath = _this._generatePath(moduleName); - _this.config.requestMethod === 'fetch' ? fetchCubeCode({ - url: srcPath, - fetch: _this.config.fetchMethod, - onCodeError: _this.config.onCodeError, - }, combineExecute) : scriptCubeCode(srcPath); - }; - /** 实例化并执行回调 */ - this._initiate = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - _this._triggerCallback(moduleName, module); - }; - /** 向上检索树依赖及回调 */ - this._triggerCallback = function (moduleName, module) { - if (!module.loaded) - return; - if (_this.config.aggregateFetch) { - module.dep.forEach(function (m) { - var _a; - if ((_a = _this._getModule(m)) === null || _a === void 0 ? void 0 : _a.loaded) { - return; - } - _this._load(m, []); - }); - if (_this.state.aggregateLoading[moduleName]) { - delete _this.state.aggregateLoading[moduleName]; - _this._triggerAllCallback(); - } - return; + if (next) { + // 考虑标记 unload 提速 + if (Object.values(entry.loadSource).every((i) => i)) { + this._triggerEntryCallback(entryKey, entry); + } } - var refDep = module.refer; - var finishedEntry = []; - refDep.entryDep.forEach(function (entryKey) { - var entry = _this.state.entrances.get(entryKey); - if (entry) { - entry.loadSource[moduleName] = true; - var next_1 = true; - if (!module.fired) { - module.dep.forEach(function (m) { - if (entry.loadSource[m]) - return; - var subModule = _this._getModule(m); - if (subModule === null || subModule === void 0 ? void 0 : subModule.fired) - return; - next_1 = false; - _this._load(m, entryKey); - }); - } - if (next_1) { - // 考虑标记 unload 提速 - if (Object.values(entry.loadSource).every(function (i) { return i; })) { - _this._triggerEntryCallback(entryKey, entry); - } - } - } - else { - finishedEntry.push(entryKey); + } else { + finishedEntry.push(entryKey); + } + }); + if (finishedEntry.length) { + module.refer.entryDep = refDep.entryDep.filter( + (i) => !finishedEntry.includes(i) + ); + } + }; + /** 执行回调函数 */ + this._triggerEntryCallback = (entryKey, entry) => { + let readyCallback = true; + entry.targets.forEach((moduleName) => { + const module = this._getModule(moduleName); + if (module.fired) return; + // 理论上不会不存在 + if (module.firing) { + readyCallback = false; + return; + } + this._fireModule(moduleName); + if (module.fired) return; + readyCallback = false; + }); + if (readyCallback) { + entry.callback( + ...entry.targets.map((e) => this.state.installedModules[e].exports) + ); + this.state.entrances.delete(entryKey); + } + }; + this._triggerAllCallback = () => { + if (this.state.delayTrigger) return; + // this.state.delayTrigger = setTimeout(() => { + // this.state.delayTrigger = undefined; + if (this.state.pendingQueue.length) return; + if (Object.keys(this.state.aggregateLoading).length) return; + this.state.entrances.forEach((entry, entryKey) => { + this._triggerEntryCallback(entryKey, entry); + }); + // }); + }; + /** 实例化某一模块 */ + this._fireModule = (moduleName) => { + const module = this.state.installedModules[moduleName]; + if (!module || !module.loaded) return false; + if (module.fired) return true; + // 处理循环依赖问题 + if (module.firing) { + return true; + } + let fireResult = true; + try { + module.firing = true; + const exports = module.sourceCode.apply(window, [ + module, + // 此处需要组件不改变实例 + module.exports, + this._cubeRequire(moduleName), + this._cubeLoad(moduleName), + this.config.mockedProcess, + this.config.mockedGlobal, + ]); + module.exports = this._isEsModule(exports) + ? exports.default + : exports; + module.error = false; + } catch (e) { + if ( + this.config.fetchUndeclaredModule && + e.message === `Cube inner denpendency lost; refetch inited` + ) { + console.warn('Cube 检测到文件依赖缺失'); + fireResult = false; + } else { + console.error('Cube 生成实例失败', e); + console.error(moduleName, module); + module.error = true; + } + } finally { + module.firing = false; + if (this.config.fetchUndeclaredModule) { + // 避免组件内部有 catch 导致 抓不到错误的情况 + if (this.state.lostDepModule[moduleName]) { + this.state.lostDepModule[moduleName].forEach((name) => { + if (!module.dep.includes(name)) { + module.dep.push(name); + module.refer.entryDep.forEach((eKey) => { + this._load(name, eKey); + }); + console.warn( + `Cube module ${moduleName} 缺失声明依赖 ${name}` + ); } - }); - if (finishedEntry.length) { - module.refer.entryDep = refDep.entryDep.filter(function (i) { return !finishedEntry.includes(i); }); + }); + Reflect.deleteProperty(this.state.lostDepModule, moduleName); + fireResult = false; } - }; - /** 执行回调函数 */ - this._triggerEntryCallback = function (entryKey, entry) { - var readyCallback = true; - entry.targets.forEach(function (moduleName) { - var module = _this._getModule(moduleName); - if (module.fired) - return; - // 理论上不会不存在 - if (module.firing) { - readyCallback = false; - return; - } - _this._fireModule(moduleName); - if (module.fired) - return; - readyCallback = false; - }); - if (readyCallback) { - entry.callback.apply(entry, entry.targets.map(function (e) { return _this.state.installedModules[e].exports; })); - _this.state.entrances.delete(entryKey); + } else { + module.fired = true; + } + } + return fireResult; + }; + /** 支持组件内模块请求 */ + this._cubeRequire = (selfName) => (moduleName, namespace) => { + if (namespace === undefined) { + const module = this._getModule(moduleName); + if (module === null || module === void 0 ? void 0 : module.fired) { + return module.exports; + } + const fireFinished = this._fireModule(moduleName); + if (!module || !fireFinished) { + if (this.config.fetchUndeclaredModule) { + if (this.state.lostDepModule[selfName]) { + this.state.lostDepModule[selfName].push(moduleName); + } else { + this.state.lostDepModule[selfName] = [moduleName]; + } + // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, + // 后续应该将相对依赖加入依赖中 + throw new Error(`Cube inner denpendency lost; refetch inited`); + } else { + throw new Error(`Cube 获取未声明资源 ${moduleName} 失败`); } - }; - this._triggerAllCallback = function () { - if (_this.state.delayTrigger) - return; - // this.state.delayTrigger = setTimeout(() => { - // this.state.delayTrigger = undefined; - if (_this.state.pendingQueue.length) - return; - if (Object.keys(_this.state.aggregateLoading).length) - return; - _this.state.entrances.forEach(function (entry, entryKey) { - _this._triggerEntryCallback(entryKey, entry); + } else { + return module.exports; + } + } else { + // 默认 css 模块不再依赖其它模块 + let css; + const module = this._getModule(moduleName); + if (!module || !module.loaded) return; + if (module.fired) { + css = module.exports; + } + const fireSucceed = this._fireModule(moduleName); + if (fireSucceed) { + css = module.exports; + } + return this.css(css, namespace, moduleName); + } + }; + /** 支持组件内模块加载 */ + this._cubeLoad = (referer) => { + /** The load function */ + const __cube_load__ = (moduleName, namespace, cb) => { + if (cb === undefined && typeof namespace === 'function') { + cb = namespace; + namespace = ''; + this.use(moduleName, referer, cb); + } else { + this.use(moduleName, referer, (css) => { + css = this.css(css, namespace, moduleName); + cb && cb(css); }); - // }); - }; - /** 实例化某一模块 */ - this._fireModule = function (moduleName) { - var module = _this.state.installedModules[moduleName]; - if (!module || !module.loaded) - return false; - if (module.fired) - return true; - // 处理循环依赖问题 - if (module.firing) { - return true; - } - var fireResult = true; - try { - module.firing = true; - var exports_1 = module.sourceCode.apply(window, [ - module, - // 此处需要组件不改变实例 - module.exports, - _this._cubeRequire(moduleName), - _this._cubeLoad(moduleName), - _this.config.mockedProcess, - _this.config.mockedGlobal, - ]); - module.exports = _this._isEsModule(exports_1) ? exports_1.default : exports_1; - module.error = false; - } - catch (e) { - if (_this.config.fetchUndeclaredModule && e.message === "Cube inner denpendency lost; refetch inited") { - console.warn('Cube 检测到文件依赖缺失'); - fireResult = false; - } - else { - console.error('Cube 生成实例失败', e); - console.error(moduleName, module); - module.error = true; - } - } - finally { - module.firing = false; - if (_this.config.fetchUndeclaredModule) { - // 避免组件内部有 catch 导致 抓不到错误的情况 - if (_this.state.lostDepModule[moduleName]) { - _this.state.lostDepModule[moduleName].forEach(function (name) { - if (!module.dep.includes(name)) { - module.dep.push(name); - module.refer.entryDep.forEach(function (eKey) { - _this._load(name, eKey); - }); - console.warn("Cube module ".concat(moduleName, " \u7F3A\u5931\u58F0\u660E\u4F9D\u8D56 ").concat(name)); - } - }); - Reflect.deleteProperty(_this.state.lostDepModule, moduleName); - fireResult = false; - } - } - else { - module.fired = true; - } - } - return fireResult; - }; - /** 支持组件内模块请求 */ - this._cubeRequire = function (selfName) { return function (moduleName, namespace) { - if (namespace === undefined) { - var module_1 = _this._getModule(moduleName); - if (module_1 === null || module_1 === void 0 ? void 0 : module_1.fired) { - return module_1.exports; - } - var fireFinished = _this._fireModule(moduleName); - if (!module_1 || !fireFinished) { - if (_this.config.fetchUndeclaredModule) { - if (_this.state.lostDepModule[selfName]) { - _this.state.lostDepModule[selfName].push(moduleName); - } - else { - _this.state.lostDepModule[selfName] = [moduleName]; - } - // WATCH! 由于组件内相对路径依赖没有声明 导致必须强行中断流程, - // 后续应该将相对依赖加入依赖中 - throw new Error("Cube inner denpendency lost; refetch inited"); - } - else { - throw new Error("Cube \u83B7\u53D6\u672A\u58F0\u660E\u8D44\u6E90 ".concat(moduleName, " \u5931\u8D25")); - } - } - else { - return module_1.exports; - } - } - else { - // 默认 css 模块不再依赖其它模块 - var css = void 0; - var module_2 = _this._getModule(moduleName); - if (!module_2 || !module_2.loaded) - return; - if (module_2.fired) { - css = module_2.exports; - } - var fireSucceed = _this._fireModule(moduleName); - if (fireSucceed) { - css = module_2.exports; - } - return _this.css(css, namespace, moduleName); - } - }; }; - /** 支持组件内模块加载 */ - this._cubeLoad = function (referer) { - /** The load function */ - var __cube_load__ = function (moduleName, namespace, cb) { - if (cb === undefined && typeof namespace === 'function') { - cb = namespace; - namespace = ''; - _this.use(moduleName, referer, cb); - } - else { - _this.use(moduleName, referer, function (css) { - css = _this.css(css, namespace, moduleName); - cb && cb(css); - }); - } - }; - return __cube_load__; - }; - /** 请求路径生成 */ - this._generatePath = function (moduleName) { - // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key - var _a = moduleName.split('?'), name = _a[0], custom = _a[1]; - var srcPath = rebase(name, _this.config); - var query = []; - if (_this.config.version) { - query.push(_this.config.version); - } - if (_this.config.combine) { - query.push('combine=true'); - } - if (custom) { - var customArgs_1 = parseQueryString(custom); - query.push(Object.keys(customArgs_1).map(function (c) { - return "".concat(c, "=").concat(customArgs_1[c]); - })); - } - // 历史逻辑 疑似命中缓存 - if (!query.includes('m=1')) { - query.push('m=1'); - } - if (query.length) { - srcPath = srcPath + '?' + query.join('&'); - } - return srcPath; - }; - /** 存储引用关系 */ - this._addReferToDependency = function (moduleName, module, referer) { - if (_this.config.aggregateFetch) { - if (!module.loaded) { - _this.state.aggregateLoading[moduleName] = true; - } - return; - } - var refDep = module.refer; - if (!referer) { - return; - } - if (!refDep.entryDep.includes(referer)) { - refDep.entryDep.push(referer); - } - }; - /** 修正返回值 */ - this._calibrateName = function (responseName) { - // 兼容返回的 name 不带入参的情况 - var moduleName = _this.state.requireMap[responseName] || responseName; - if (_this.state.requireMap[responseName]) { - Reflect.deleteProperty(_this.state.requireMap, responseName); - } - return moduleName; - }; - /** - * 获取全局默认模块 - * requirePath => datav:/npm/react/16.4.6?env=xxx - */ - this._getGlobalRegister = function (requirePath) { - for (var _i = 0, _a = _this.state.registerModules; _i < _a.length; _i++) { - var register = _a[_i]; - if (requirePath && register.match.test(requirePath)) { - return register.module; - } - } - }; - this._getModule = function (name) { - // TODO 此处有问题 理论上优先选取 globalRegister - // 但考虑到正则匹配的耗时 每次匹配耗时过长 - // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 - var module = _this.state.installedModules[name]; - if (!module) { - return _this._getGlobalRegister(name); - } - return module; - }; - this._isEsModule = function (module) { - return _this.config.esModule && module && typeof module === 'object' && module.__esModule; - }; - this.cStart = function () { - _this.state.fileExecuting = true; - }; - this.cStop = function () { - _this.state.fileExecuting = false; - for (var i = 0; i < _this.state.pendingQueue.length; i++) { - var pendingInfo = _this.state.pendingQueue[i]; - _this._load(pendingInfo[0], pendingInfo[1]); - } - _this.state.pendingQueue = []; - }; - /****************************** 以下为原有方法兼容 **************************/ - /** 原有方法 直接打印内部状态 */ - this.cache = function () { - console.info('modules:', Object.fromEntries(Object.entries(_this.state.installedModules))); - console.info('unloaded:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].loaded; }))); - console.info('unfired:', Object.fromEntries(Object.entries(_this.state.installedModules).filter(function (m) { return !m[1].fired; }))); - }; - /** @deprecated */ - this.debug = function () { - console.error('debug 方法不再支持'); - }; - /** @deprecated */ - this.setRemoteBase = function () { - console.error('不支持动态修改 remoteBase'); + } }; + return __cube_load__; + }; + /** 请求路径生成 */ + this._generatePath = (moduleName) => { + // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key + const [name, custom] = moduleName.split('?'); + let srcPath = rebase(name, this.config); + const query = []; + if (this.config.version) { + query.push(this.config.version); + } + if (this.config.combine) { + query.push('combine=true'); + } + if (custom) { + const customArgs = parseQueryString(custom); + query.push( + Object.keys(customArgs).map((c) => { + return `${c}=${customArgs[c]}`; + }) + ); + } + // 历史逻辑 疑似命中缓存 + if (!query.includes('m=1')) { + query.push('m=1'); + } + if (query.length) { + srcPath = srcPath + '?' + query.join('&'); + } + return srcPath; + }; + /** 存储引用关系 */ + this._addReferToDependency = (moduleName, module, referer) => { + if (this.config.aggregateFetch) { + if (!module.loaded) { + this.state.aggregateLoading[moduleName] = true; + } + return; + } + const refDep = module.refer; + if (!referer) { + return; + } + if (!refDep.entryDep.includes(referer)) { + refDep.entryDep.push(referer); + } + }; + /** 修正返回值 */ + this._calibrateName = (responseName) => { + // 兼容返回的 name 不带入参的情况 + const moduleName = this.state.requireMap[responseName] || responseName; + if (this.state.requireMap[responseName]) { + Reflect.deleteProperty(this.state.requireMap, responseName); + } + return moduleName; + }; + /** + * 获取全局默认模块 + * requirePath => datav:/npm/react/16.4.6?env=xxx + */ + this._getGlobalRegister = (requirePath) => { + for (const register of this.state.registerModules) { + if (requirePath && register.match.test(requirePath)) { + return register.module; + } + } + }; + this._getModule = (name) => { + // TODO 此处有问题 理论上优先选取 globalRegister + // 但考虑到正则匹配的耗时 每次匹配耗时过长 + // 所以应该是此处顺序不变 注册的时候做一次是否满足正则的校验 + const module = this.state.installedModules[name]; + if (!module) { + return this._getGlobalRegister(name); + } + return module; + }; + this._isEsModule = (module) => { + return ( + this.config.esModule && + module && + typeof module === 'object' && + module.__esModule + ); + }; + this.cStart = () => { + this.state.fileExecuting = true; + }; + this.cStop = () => { + this.state.fileExecuting = false; + for (let i = 0; i < this.state.pendingQueue.length; i++) { + let pendingInfo = this.state.pendingQueue[i]; + this._load(pendingInfo[0], pendingInfo[1]); + } + this.state.pendingQueue = []; + }; + /****************************** 以下为原有方法兼容 **************************/ + /** 原有方法 直接打印内部状态 */ + this.cache = () => { + console.info( + 'modules:', + Object.fromEntries(Object.entries(this.state.installedModules)) + ); + console.info( + 'unloaded:', + Object.fromEntries( + Object.entries(this.state.installedModules).filter( + (m) => !m[1].loaded + ) + ) + ); + console.info( + 'unfired:', + Object.fromEntries( + Object.entries(this.state.installedModules).filter( + (m) => !m[1].fired + ) + ) + ); + }; + /** @deprecated */ + this.debug = () => { + console.error('debug 方法不再支持'); + }; + /** @deprecated */ + this.setRemoteBase = () => { + console.error('不支持动态修改 remoteBase'); + }; } - return Cube; -}()); -function getStringOnlyObj() { - return new Proxy({}, { + } + function getStringOnlyObj() { + return new Proxy( + {}, + { get: function (target, propKey) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.get(target, key); + const key = + typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.get(target, key); }, set: function (target, propKey, value, receiver) { - var key = typeof propKey === 'number' ? propKey.toString() : propKey; - return Reflect.set(target, key, value, receiver); + const key = + typeof propKey === 'number' ? propKey.toString() : propKey; + return Reflect.set(target, key, value, receiver); }, - }); -} -/** 全局初始化单例 */ -function setGlobalCube(oldVersion) { - var alias = 'Cube'; - var global = typeof window !== 'undefined' ? window : globalThis; + } + ); + } + /** 全局初始化单例 */ + function setGlobalCube(oldVersion) { + const alias = 'Cube'; + const global = typeof window !== 'undefined' ? window : globalThis; if (global[alias]) { - console.error('Cube Error: window.' + alias + ' already in using'); - return global[alias]; + console.error('Cube Error: window.' + alias + ' already in using'); + return global[alias]; } if (oldVersion) { - mockClassicalCube(global); - } - else { - var cube_1 = new Cube(); - // 支持 Cube(...args) 的写法 - var cubeHandler = function (moduleName, requires, instance) { - return cube_1.execute(moduleName, requires, instance); - }; - var mockCube = new Proxy(cubeHandler, { - get: function (handler, key) { - if (Reflect.ownKeys(cube_1).includes(key)) { - return cube_1[key]; - } - return Reflect.get(handler, key); - }, - }); - global[alias] = mockCube; + mockClassicalCube(global); + } else { + const cube = new Cube(); + // 支持 Cube(...args) 的写法 + const cubeHandler = (moduleName, requires, instance) => { + return cube.execute(moduleName, requires, instance); + }; + const mockCube = new Proxy(cubeHandler, { + get: function (handler, key) { + if (Reflect.ownKeys(cube).includes(key)) { + return cube[key]; + } + return Reflect.get(handler, key); + }, + }); + global[alias] = mockCube; } - var cubeVersion = '5.0.0-beta.26'; + const cubeVersion = '5.0.0-beta.26'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; -} - + } if (typeof window === 'undefined') { module.exports = setGlobalCube(true); } else { setGlobalCube(true); } - -})(typeof window !== "undefined" ? window : globalThis); \ No newline at end of file +})(typeof window !== 'undefined' ? window : globalThis); diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 2564034..657b80b 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.26 + * Cube v5.0.0-beta.27 */ - (function(a){function b(a,b,c){if(c||2===arguments.length)for(var d,e=0,f=b.length;e=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function l(a){var b=(a+'').split('?'),c=b[0],d=b[1];if(d){var e=d.split('&');if(e.includes('env=publish')){e=e.filter(function(a){return'env=publish'!==a});var f=e.join('&');return f?c+'?'+f:c}}return a}function m(a){var b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(a){var b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;var d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function o(a){function b(a,b){if(1===arguments.length)return r(a);var c=r(a);return t.css(c,b,a),a}function d(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,t.use(b,a,d)):t.use(b,a,function(a){a=t.css(a,c,b),d&&d(a)})}}function e(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;s()}function o(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||q(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,e]=(a+'').split('?');var h=k(d,{base:y,remoteSeparator:A,remoteBase:z}),i=h||y+d,l=[];if(v&&l.push(v),p(i)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,o(a,b))},Q),failed:!1})),e){const a=j(e);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(i=i+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?f({url:i,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):f(i):g(i),I[d]=a,L[a]=!0}),e()):void P.push([a,b])}function p(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function q(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=n(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function r(c){var f=q(c)||K[c];if(!f){const a=new Error('Cube Error: Cannot find module \''+c+'\'');if(C)throw a;else return x.error(a),{}}if(!f.fired)if(f.fired=!0,C)f.exports=f.fn.apply(a,[f,f.exports,b,d(c),E,F]);else try{f.exports=f.fn.apply(a,[f,f.exports,b,d(c),E,F])}catch(a){x.error(a),f.exports={}}return u(f.exports)?f.exports.default:f.exports}function s(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=r(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function t(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=l(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],o(b,a)):b.length&&o(b,a)}function u(a){return G&&a&&'object'===typeof a&&a.__esModule}var v,w='undefined'===typeof document?{}:document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';t.setRemoteBase=function(a){Object.assign(z,a)},t.toString=function(){return'Cube:v5.0.0-beta.26'},t.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(v=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();o(c[0],c[1])}return this},t.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,b='string'===typeof b?[l(b)]:b.map(l),f||(b=h(b,A)),H.has(b)||H.set(b,[]),H.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),o(b,d,!0),this},t.register=function(a,b,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=m(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};t.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,i(a,b,c)}},t.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},t.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},a.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):a.Cube=t;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(t.init(W),t.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(t,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:v,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function p(){return new Proxy({},{get:function(a,b){var c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){var e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}function q(b){var c='Cube',d='undefined'===typeof window?a:window;if(d[c])return console.error('Cube Error: window.'+c+' already in using'),d[c];if(b)o(d);else{var e=new v,f=function(a,b,c){return e.execute(a,b,c)},g=new Proxy(f,{get:function(a,b){return Reflect.ownKeys(e).includes(b)?e[b]:Reflect.get(a,b)}});d[c]=g}return d[c].cubeVersion='5.0.0-beta.26',d[c].oldVersion=b,d[c]}var r=function(){return r=Object.assign||function(a){for(var b,c=1,d=arguments.length;c(d&&d(a),a)).then((a)=>a.text()).then((a)=>{var d;try{return new Function((b||c)(a))()}catch(a){null===(d=e.onCodeError)||void 0===d?void 0:d.call(e,a,{url:e.url}),console.error(a)}})}function f(a){var b=null===document||void 0===document?void 0:document.createElement('script');b.type='text/javascript',b.async=!0,b.onerror=()=>{console.error(`load module failed.`)},b.src=a,null===q||void 0===q?void 0:q.appendChild(b)}function g(a,b){for(var c,d=a.length,e=0;e{let b=a.split('=');c[b[0]]=b[1]}),c}function j(a,b){const{base:c,remoteSeparator:d,remoteBase:e}=b;let f=c+a;var g=a.indexOf?a.indexOf(d):0;if(0>=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){const[b,c]=(a+'').split('?');if(c){let a=c.split('&');if(a.includes('env=publish')){a=a.filter((a)=>'env=publish'!==a);const c=a.join('&');return c?b+'?'+c:b}}return a}function l(a){const b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){const b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(a){function c(a,b){if('undefined'===typeof b)return r(a);var c=r(a);return t.css(c,b,a),a}function d(a){return function(b,c,d){'undefined'===typeof d&&'function'===typeof c?(d=c,c=null,t.use(b,a,d)):t.use(b,a,function(a){a=t.css(a,c,b),d&&d(a)})}}function n(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;s()}function o(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||q(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(v&&l.push(v),p(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,o(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),n()):void P.push([a,b])}function p(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function q(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function r(b){var f=q(b)||K[b];if(!f){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!f.fired)if(f.fired=!0,C)f.exports=f.fn.apply(a,[f,f.exports,c,d(b),E,F]);else try{f.exports=f.fn.apply(a,[f,f.exports,c,d(b),E,F])}catch(a){x.error(a),f.exports={}}return u(f.exports)?f.exports.default:f.exports}function s(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=r(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function t(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],o(b,a)):b.length&&o(b,a)}function u(a){return G&&a&&'object'===typeof a&&a.__esModule}var v,w='undefined'===typeof document?{}:document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';t.setRemoteBase=function(a){Object.assign(z,a)},t.toString=function(){return'Cube:v5.0.0-beta.27'},t.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(v=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();o(c[0],c[1])}return this},t.use=function(c,d,e,f){if(!c)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||b,c='string'===typeof c?[k(c)]:c.map(k),f||(c=g(c,A)),H.has(c)||H.set(c,[]),H.get(c).push(function(){var b=[],d=c.length,f=!1;return function(c){if(!f)return(b.push(c),b.length===d)?(f=!0,e.apply(a,b),!0):void 0}}()),o(c,d,!0),this},t.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};t.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},t.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},t.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},a.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):a.Cube=t;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(t.init(W),t.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(t,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:v,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){const c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){const e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}function p(b){const c='Cube',d='undefined'===typeof window?a:window;if(d[c])return console.error('Cube Error: window.'+c+' already in using'),d[c];if(b)n(d);else{const a=new t,b=new Proxy((b,c,d)=>a.execute(b,c,d),{get:function(b,c){return Reflect.ownKeys(a).includes(c)?a[c]:Reflect.get(b,c)}});d[c]=b}return d[c].cubeVersion='5.0.0-beta.26',d[c].oldVersion=b,d[c]}const q='undefined'===typeof document?{appendChild:()=>{}}:document.querySelector('head'),r=/([^};]+)(\{[^}]+\})/g,s={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch',fetchUndeclaredModule:!1,aggregateFetch:!0,fetchMethod:void 0,onCodeError:void 0};class t{constructor(){this.config=Object.assign({},s),this.state={inited:!1,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:o(),registerModules:[],requireMap:{},fileExecuting:!1,aggregateLoading:{},delayTrigger:void 0},this.register=(a,c,d={matchType:'version'})=>{var e;const{matchType:f}=d;return(null===(e=this._getModule(a))||void 0===e?void 0:e.fired)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(this.state.installedModules[a]={exports:c,sourceCode:b,dep:[],refer:{entryDep:[]},loaded:!0,firing:!1,fired:!0},'module'===f&&this.state.registerModules.push({moduleName:a,matchType:f,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:this.state.installedModules[a]}))},this.init=(a)=>{var b,c,d,e,f,g,h;if(this.state.inited&&console.warn('Cube \u91CD\u590D\u521D\u59CB\u5316\uFF0C\u53EF\u80FD\u4EA7\u751F\u8D44\u6E90\u8BF7\u6C42\u9519\u8BEF'),a.base&&'/'!==a.base&&(this.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(let b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(this.config.remoteBase[b]=a.remoteBase[b].replace(/\/$/,''));this.config.version=null!==(b=a.version)&&void 0!==b?b:this.config.version,this.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:this.config.esModule,this.config.debug=null!==(d=a.debug)&&void 0!==d?d:this.config.debug,this.config.combine=null!==(e=a.combine)&&void 0!==e?e:this.config.combine,this.config.requestMethod=null!==(f=a.requestMethod)&&void 0!==f?f:this.config.requestMethod,this.config.fetchUndeclaredModule=null!==(g=a.fetchUndeclaredModule)&&void 0!==g?g:this.config.fetchUndeclaredModule,this.config.aggregateFetch=null!==(h=a.aggregateFetch)&&void 0!==h?h:this.config.aggregateFetch,this.config.fetchMethod=a.fetchMethod||fetch,this.config.onCodeError=a.onCodeError,this.state.inited=!0;for(let b,c=0;c{if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');let f,h='string'===typeof a?[a]:'number'===typeof a?[a.toString()]:[...a],i=e;'string'===typeof c?f=d:(f=c,i=d),f=f||b,h=i?h:g(h,this.config.remoteSeparator);const j={callback:f,loadSource:{},targets:[...h]};if(this.config.aggregateFetch);else h.forEach((a)=>{j.loadSource[a]=!1});this.state.entrances.set(h,j),h.forEach((a)=>this._load(a,h))},this.execute=(a,b,c)=>{var d;'number'===typeof a&&(a=a.toString());const e=this._calibrateName(a);(null===(d=this.state.installedModules[e])||void 0===d?void 0:d.loaded)||(this._store(e,b,c),this._initiate(e))},this.css=(a,b,c)=>{if(a){var d=c+'@'+b;if(!this.state.cssModule[d])return this.state.cssModule[d]=!0,h(a,b,c)}},this._store=(a,b,c)=>{const d=this.state.installedModules[a];d?(d.dep.push(...b),d.sourceCode=c,d.loaded=!0):this.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{entryDep:[]},loaded:!0,firing:!1,fired:!1}},this._load=(a,b)=>{if('number'===typeof a&&(a=a.toString()),!this.config.aggregateFetch){const c=this.state.entrances.get(b);c&&!c.loadSource.hasOwnProperty(a)&&(c.loadSource[a]=!1)}if(!this.state.inited||this.state.fileExecuting)return void this.state.pendingQueue.push([a,b]);const c=this._getModule(a);if(c)return this._addReferToDependency(a,c,b),void(c.loaded&&this._triggerCallback(a,c));const[g]=a.split('?');this.state.requireMap[g]=a,this.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[]},loaded:!1,firing:!1,fired:!1},this._addReferToDependency(a,this.state.installedModules[a],b);const h=this._generatePath(a);'fetch'===this.config.requestMethod?e({url:h,fetch:this.config.fetchMethod,onCodeError:this.config.onCodeError},d):f(h)},this._initiate=(a)=>{const b=this.state.installedModules[a];this._triggerCallback(a,b)},this._triggerCallback=(a,b)=>{if(!b.loaded)return;if(this.config.aggregateFetch)return b.dep.forEach((a)=>{var b;(null===(b=this._getModule(a))||void 0===b?void 0:b.loaded)||this._load(a,[])}),void(this.state.aggregateLoading[a]&&(delete this.state.aggregateLoading[a],this._triggerAllCallback()));const c=b.refer;let d=[];c.entryDep.forEach((c)=>{const e=this.state.entrances.get(c);if(e){e.loadSource[a]=!0;let d=!0;b.fired||b.dep.forEach((a)=>{if(!e.loadSource[a]){const b=this._getModule(a);(null===b||void 0===b?void 0:b.fired)||(d=!1,this._load(a,c))}}),d&&Object.values(e.loadSource).every((a)=>a)&&this._triggerEntryCallback(c,e)}else d.push(c)}),d.length&&(b.refer.entryDep=c.entryDep.filter((a)=>!d.includes(a)))},this._triggerEntryCallback=(a,b)=>{let c=!0;b.targets.forEach((a)=>{const b=this._getModule(a);if(!b.fired){if(b.firing)return void(c=!1);this._fireModule(a),b.fired||(c=!1)}}),c&&(b.callback(...b.targets.map((a)=>this.state.installedModules[a].exports)),this.state.entrances.delete(a))},this._triggerAllCallback=()=>{this.state.delayTrigger||this.state.pendingQueue.length||Object.keys(this.state.aggregateLoading).length||this.state.entrances.forEach((a,b)=>{this._triggerEntryCallback(b,a)})},this._fireModule=(a)=>{const b=this.state.installedModules[a];if(!b||!b.loaded)return!1;if(b.fired)return!0;if(b.firing)return!0;let c=!0;try{b.firing=!0;const c=b.sourceCode.apply(window,[b,b.exports,this._cubeRequire(a),this._cubeLoad(a),this.config.mockedProcess,this.config.mockedGlobal]);b.exports=this._isEsModule(c)?c.default:c,b.error=!1}catch(d){this.config.fetchUndeclaredModule&&`Cube inner denpendency lost; refetch inited`===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{b.firing=!1,this.config.fetchUndeclaredModule?this.state.lostDepModule[a]&&(this.state.lostDepModule[a].forEach((c)=>{b.dep.includes(c)||(b.dep.push(c),b.refer.entryDep.forEach((a)=>{this._load(c,a)}),console.warn(`Cube module ${a} 缺失声明依赖 ${c}`))}),Reflect.deleteProperty(this.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=(a)=>(b,c)=>{if(void 0===c){const c=this._getModule(b);if(null===c||void 0===c?void 0:c.fired)return c.exports;const d=this._fireModule(b);if(c&&d)return c.exports;if(this.config.fetchUndeclaredModule)throw this.state.lostDepModule[a]?this.state.lostDepModule[a].push(b):this.state.lostDepModule[a]=[b],new Error(`Cube inner denpendency lost; refetch inited`);else throw new Error(`Cube 获取未声明资源 ${b} 失败`)}else{let a;const d=this._getModule(b);if(!d||!d.loaded)return;d.fired&&(a=d.exports);const e=this._fireModule(b);return e&&(a=d.exports),this.css(a,c,b)}},this._cubeLoad=(a)=>{return(b,c,d)=>{d===void 0&&'function'===typeof c?(d=c,c='',this.use(b,a,d)):this.use(b,a,(a)=>{a=this.css(a,c,b),d&&d(a)})}},this._generatePath=(a)=>{const[b,c]=a.split('?');let d=j(b,this.config);const e=[];if(this.config.version&&e.push(this.config.version),this.config.combine&&e.push('combine=true'),c){const a=i(c);e.push(Object.keys(a).map((b)=>`${b}=${a[b]}`))}return e.includes('m=1')||e.push('m=1'),e.length&&(d=d+'?'+e.join('&')),d},this._addReferToDependency=(a,b,c)=>{if(this.config.aggregateFetch)return void(b.loaded||(this.state.aggregateLoading[a]=!0));const d=b.refer;c&&(d.entryDep.includes(c)||d.entryDep.push(c))},this._calibrateName=(a)=>{const b=this.state.requireMap[a]||a;return this.state.requireMap[a]&&Reflect.deleteProperty(this.state.requireMap,a),b},this._getGlobalRegister=(a)=>{for(const b of this.state.registerModules)if(a&&b.match.test(a))return b.module},this._getModule=(a)=>{const b=this.state.installedModules[a];return b?b:this._getGlobalRegister(a)},this._isEsModule=(a)=>this.config.esModule&&a&&'object'===typeof a&&a.__esModule,this.cStart=()=>{this.state.fileExecuting=!0},this.cStop=()=>{this.state.fileExecuting=!1;for(let a,b=0;b{console.info('modules:',Object.fromEntries(Object.entries(this.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].loaded))),console.info('unfired:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].fired)))},this.debug=()=>{console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=()=>{console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}}'undefined'===typeof window?module.exports=p(!0):p(!0)})('undefined'===typeof window?globalThis:window); \ No newline at end of file diff --git a/runtime/cube.min.js b/runtime/cube.min.js index 38018b4..ab517e6 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.26 + * Cube v5.0.0-beta.27 */ - (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.26'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.27'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file From 22a7cbbcc5cc76b01b8d4264c5e23fa32d276ebf Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 19 Nov 2025 16:31:24 +0800 Subject: [PATCH 73/74] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81process=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=80=8C=E4=B8=8D=E6=98=AF=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtime/cube-reconstruction.js | 8 ++++++-- runtime/cube.js | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 3232ac1..82de53e 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -178,7 +178,11 @@ var combine = true; var mockedProcess = { - env: { NODE_ENV: 'production' }, + ...(global.process ?? {}), + env: { + ...(global.process?.env ?? {}), + NODE_ENV: 'production', + }, }; var mockedGlobal = undefined; var esModule = false; @@ -1516,7 +1520,7 @@ }); global[alias] = mockCube; } - const cubeVersion = '5.0.0-beta.26'; + const cubeVersion = '5.0.0-beta.27'; global[alias].cubeVersion = cubeVersion; global[alias].oldVersion = oldVersion; return global[alias]; diff --git a/runtime/cube.js b/runtime/cube.js index 2d3a44f..d094896 100644 --- a/runtime/cube.js +++ b/runtime/cube.js @@ -28,9 +28,9 @@ var requireMap = {}; var registerArr = []; - var mockedProcess = { + var mockedProcess = Object.assign(global.process || {}, { env: {NODE_ENV: 'production'} - }; + }); var mockedGlobal = undefined; var esModule = false; From a7209006a4dd9cc51dc485244f87b72547f53f2b Mon Sep 17 00:00:00 2001 From: elvira1112 Date: Wed, 19 Nov 2025 16:55:44 +0800 Subject: [PATCH 74/74] release: v5.0.0-beta.28 --- package.json | 2 +- runtime/cube-reconstruction.js | 155 +++++++++++++++++++---------- runtime/cube-reconstruction.min.js | 4 +- runtime/cube.min.js | 4 +- 4 files changed, 107 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 218e6c4..9015a7d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "fish (https://github.com/fishbar)", "name": "node-cube", "description": "a new way to write js in browser", - "version": "5.0.0-beta.27", + "version": "5.0.0-beta.28", "homepage": "https://github.com/fishbar/cube", "repository": { "type": "git", diff --git a/runtime/cube-reconstruction.js b/runtime/cube-reconstruction.js index 82de53e..8ff61aa 100644 --- a/runtime/cube-reconstruction.js +++ b/runtime/cube-reconstruction.js @@ -160,9 +160,63 @@ return { moduleName, modulePath }; } - // import Cube from 'node-cube/runtime/cube'; + function _defineProperty(e, r, t) { + return ( + (r = _toPropertyKey(r)) in e + ? Object.defineProperty(e, r, { + value: t, + enumerable: !0, + configurable: !0, + writable: !0, + }) + : (e[r] = t), + e + ); + } + function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && + (o = o.filter(function (r) { + return Object.getOwnPropertyDescriptor(e, r).enumerable; + })), + t.push.apply(t, o); + } + return t; + } + function _objectSpread2(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 + ? ownKeys(Object(t), !0).forEach(function (r) { + _defineProperty(e, r, t[r]); + }) + : Object.getOwnPropertyDescriptors + ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) + : ownKeys(Object(t)).forEach(function (r) { + Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); + }); + } + return e; + } + function _toPrimitive(t, r) { + if ('object' != typeof t || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || 'default'); + if ('object' != typeof i) return i; + throw new TypeError('@@toPrimitive must return a primitive value.'); + } + return ('string' === r ? String : Number)(t); + } + function _toPropertyKey(t) { + var i = _toPrimitive(t, 'string'); + return 'symbol' == typeof i ? i : i + ''; + } function mockClassicalCube(global) { + var _global$process, _global$process$env, _global$process2; /* short global val */ var doc = typeof document === 'undefined' ? {} : document; var log = console; @@ -176,17 +230,37 @@ var strict = true; var debug = true; var combine = true; - - var mockedProcess = { - ...(global.process ?? {}), - env: { - ...(global.process?.env ?? {}), - NODE_ENV: 'production', - }, - }; + var mockedProcess = _objectSpread2( + _objectSpread2( + {}, + (_global$process = global.process) !== null && + _global$process !== void 0 + ? _global$process + : {} + ), + {}, + { + env: _objectSpread2( + _objectSpread2( + {}, + (_global$process$env = + (_global$process2 = global.process) === null || + _global$process2 === void 0 + ? void 0 + : _global$process2.env) !== null && + _global$process$env !== void 0 + ? _global$process$env + : {} + ), + {}, + { + NODE_ENV: 'production', + } + ), + } + ); var mockedGlobal = undefined; var esModule = false; - var entrances = new Map(); // Cube.use's cb // 兼容请求 key 带入参,返回 key 不带入参的情况。eg. 请求 /xxx?env=xx 返回 Cube('/xxx',), requireMap 缓存了 { '/xxx': '/xxx?env=xx' } // 此兼容是在业务方已知的情况,后期会改造返回的代码头。 @@ -254,11 +328,9 @@ } }; } - Cube.setRemoteBase = function (_remoteBase) { Object.assign(remoteBase, _remoteBase); }; - function checkAllDownloaded() { if (loadQueue.length) { return false; @@ -285,7 +357,6 @@ loadQueue.push([requires, referer]); return; } - requires.forEach(function (require) { if (installedModules[require] || getGlobalRegister(require)) { if ( @@ -298,7 +369,6 @@ return; } } - installedModules[require] = { exports: {}, loaded: false, @@ -307,10 +377,12 @@ // 只有拼 src 时要带上 m & ref 时才需要分离 require 里的入参 query, 平时 /xxx?query=xx 才作为 installedModules 的 key const [mod, custom] = String(require).split('?'); - - var rebaseName = rebase(mod, { base, remoteSeparator, remoteBase }); + var rebaseName = rebase(mod, { + base, + remoteSeparator, + remoteBase, + }); var srcPath = rebaseName || base + mod; - var query = []; if (version) { query.push(version); @@ -333,21 +405,18 @@ }; } } - if (custom) { const customArgs = parseQueryString(custom); Array.prototype.push.apply( query, Object.keys(customArgs).map((c) => { - return `${c}=${customArgs[c]}`; + return ''.concat(c, '=').concat(customArgs[c]); }) ); } - if (query.length) { srcPath = srcPath + '?' + query.join('&'); } - if (requestMethod === 'fetch') { // combine 接口失败后的 traceId 记录排查 if (combine && combineMap[require] && !combineMap[require].traceId) { @@ -370,13 +439,11 @@ } else { scriptCubeCode(srcPath); } - requireMap[mod] = require; loading[require] = true; }); checkAllDownloaded(); } - function checkCombineState(path) { if (!combine) return false; if (combineBlackList.length) { @@ -393,15 +460,13 @@ if (!require.startsWith('datav:/npm/')) { return false; } - let { moduleName, modulePath } = extractModuleInfoFromRequire(require); if (!registerMap[moduleName]) return false; - modulePath = modulePath || 'default'; if (registerMap[moduleName][modulePath]) return registerMap[moduleName][modulePath].module; - - Object.entries(registerMap[moduleName]).forEach(([path, register]) => { + Object.entries(registerMap[moduleName]).forEach((_ref) => { + let [path, register] = _ref; if (register.match.test(require)) { return register.module; } @@ -513,11 +578,9 @@ combineMap[name].end = Date.now(); } } - mod.loaded = true; mod.fn = callback; requireMap[oldName] && delete requireMap[oldName]; - if (loading[name]) { delete loading[name]; load(requires, name); @@ -553,7 +616,6 @@ if (config.version) { version = config.version; } - if (config.strict !== undefined) { strict = config.strict; } @@ -576,26 +638,20 @@ if (config.esModule !== undefined) { esModule = config.esModule; } - if (config.fetchMethod) { fetchMethod = config.fetchMethod; } - if (config.onCodeError) { onCodeError = config.onCodeError; } - if (config.combineFailTime) { combineFailTime = config.combineFailTime; } - inited = true; - while (loadQueue.length) { var deps = loadQueue.shift(); load(deps[0], deps[1]); } - return this; }; /** @@ -618,13 +674,11 @@ referer = 'Cube.use'; } cb = cb || noop; - if (typeof mods === 'string') { mods = [removePublishName(mods)]; } else { mods = mods.map(removePublishName); } - if (!noFix) { mods = fixMododulePath(mods, remoteSeparator); } @@ -638,7 +692,6 @@ var apps = []; var length = mods.length; var firing = false; - return function (exports) { if (firing) { return; @@ -662,7 +715,9 @@ * @param {object} options 配置项 * @param {string} options.matchType 匹配模式,version 默认为按版本全匹配; module 按库级别,只要库一致就替换 */ - Cube.register = function (module, exports, { matchType = 'version' } = {}) { + Cube.register = function (module, exports) { + let { matchType = 'version' } = + arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (installedModules[module]) { return log.warn( 'Cube Warning: Module ' + "'" + module + "'" + ' already registered' @@ -674,21 +729,18 @@ loaded: true, fired: true, }; - if (matchType === 'module') { registerMap[module] = registerMap[module] || {}; registerMap[module].default = { require: module, matchType, - match: new RegExp(`^datav:\/npm\/${module}\/([^\/]+)?$`), + match: new RegExp('^datav:/npm/'.concat(module, '/([^/]+)?$')), module: installedModules[module], moduleName: module, }; } - if (matchType === 'function') { const { moduleName, modulePath } = extractModuleInfo(module); - if (!modulePath) { return log.warn( 'Cube Warning: Module ' + @@ -698,19 +750,22 @@ ' matchType is function, but no path' ); } - registerMap[moduleName] = registerMap[moduleName] || {}; registerMap[moduleName][modulePath] = { require: module, matchType, match: new RegExp( - `^datav:\/npm\/${moduleName}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${modulePath}$` + '^datav:/npm/' + .concat( + moduleName, + '/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)/' + ) + .concat(modulePath, '$') ), module: installedModules[module], moduleName, }; } - return this; }; /** @@ -732,17 +787,14 @@ cssMod[modId] = true; return scriptCubeCss(css, namespace, file); }; - Cube.debug = function () { log.error('Cube Error: Cube.debug nolonger supported'); }; - Cube.cache = function () { var unloaded = {}, unfired = {}, i, m; - for (i in installedModules) { if (installedModules.hasOwnProperty(i)) { m = installedModules[i]; @@ -754,12 +806,10 @@ } } } - log.info('modules:', installedModules); log.info('unloaded:', unloaded); log.info('unfired:', unfired); }; - if (global['Cube']) { log.error( 'Cube Error: window.' + @@ -803,7 +853,6 @@ }; }, }); - function isEsModule(module) { return ( esModule && module && typeof module === 'object' && module.__esModule diff --git a/runtime/cube-reconstruction.min.js b/runtime/cube-reconstruction.min.js index 657b80b..3b9dd44 100644 --- a/runtime/cube-reconstruction.min.js +++ b/runtime/cube-reconstruction.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.27 + * Cube v5.0.0-beta.28 */ - (function(a){function b(){}function c(a){return a}function d(a){return'Cube.cStart();'+a+';Cube.cStop();'}function e(a,b,d){const e='string'===typeof a?{url:a}:a;return('function'===typeof e.fetch?e.fetch:fetch)(e.url,{headers:{"Content-Type":'text/plain'}}).then((a)=>(d&&d(a),a)).then((a)=>a.text()).then((a)=>{var d;try{return new Function((b||c)(a))()}catch(a){null===(d=e.onCodeError)||void 0===d?void 0:d.call(e,a,{url:e.url}),console.error(a)}})}function f(a){var b=null===document||void 0===document?void 0:document.createElement('script');b.type='text/javascript',b.async=!0,b.onerror=()=>{console.error(`load module failed.`)},b.src=a,null===q||void 0===q?void 0:q.appendChild(b)}function g(a,b){for(var c,d=a.length,e=0;e{let b=a.split('=');c[b[0]]=b[1]}),c}function j(a,b){const{base:c,remoteSeparator:d,remoteBase:e}=b;let f=c+a;var g=a.indexOf?a.indexOf(d):0;if(0>=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){const[b,c]=(a+'').split('?');if(c){let a=c.split('&');if(a.includes('env=publish')){a=a.filter((a)=>'env=publish'!==a);const c=a.join('&');return c?b+'?'+c:b}}return a}function l(a){const b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){const b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(a){function c(a,b){if('undefined'===typeof b)return r(a);var c=r(a);return t.css(c,b,a),a}function d(a){return function(b,c,d){'undefined'===typeof d&&'function'===typeof c?(d=c,c=null,t.use(b,a,d)):t.use(b,a,function(a){a=t.css(a,c,b),d&&d(a)})}}function n(){if(P.length)return!1;for(var a in L)if(L.hasOwnProperty(a))return!1;s()}function o(a,b,c){return'string'===typeof a&&(a=[a]),O?void(a.forEach(function(a){if(K[a]||q(a))if(M[a]&&M[a].failed&&K[a]&&!1===K[a].loaded);else return;K[a]={exports:{},loaded:!1,fired:!1};const[d,g]=(a+'').split('?');var h=j(d,{base:y,remoteSeparator:A,remoteBase:z}),k=h||y+d,l=[];if(v&&l.push(v),p(k)&&c&&(l.push('combine=true'),K[a].combine=!0,!M[a]&&(M[a]={start:Date.now(),timeout:setTimeout(()=>{L[a]&&(M[a].failed=!0,o(a,b))},Q),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>`${b}=${a[b]}`))}l.length&&(k=k+'?'+l.join('&')),'fetch'===T?D&&M[a]&&!M[a].traceId?e({url:k,fetch:R,onCodeError:S},void 0,(b)=>{b.headers.has('request-id')&&(M[a].traceId=b.headers.get('request-id'))}):e(k):f(k),I[d]=a,L[a]=!0}),n()):void P.push([a,b])}function p(a){return!!D&&(!N.length||!N.some((b)=>!!a.match(b)))}function q(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!J[b]&&((c=c||'default',J[b][c])?J[b][c].module:(Object.entries(J[b]).forEach(([b,c])=>{if(c.match.test(a))return c.module}),!1))}function r(b){var f=q(b)||K[b];if(!f){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(C)throw a;else return x.error(a),{}}if(!f.fired)if(f.fired=!0,C)f.exports=f.fn.apply(a,[f,f.exports,c,d(b),E,F]);else try{f.exports=f.fn.apply(a,[f,f.exports,c,d(b),E,F])}catch(a){x.error(a),f.exports={}}return u(f.exports)?f.exports.default:f.exports}function s(){for(let[a,b]of H)a.length&&a.forEach(function(c){if(L[c])return;var d=0;const e=r(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&H.delete(a)})}function t(a,b,c){const d=a+'';a=I[a]||a;var e=K[a];e=k(e),e||(e=K[a]={exports:{},fired:!1}),M[a]&&!e.loaded&&(M[a].failed?M[a].end=Date.now():(clearTimeout(M[a].timeout),delete M[a])),e.loaded=!0,e.fn=c,I[d]&&delete I[d],L[a]?(delete L[a],o(b,a)):b.length&&o(b,a)}function u(a){return G&&a&&'object'===typeof a&&a.__esModule}var v,w='undefined'===typeof document?{}:document,x=console,y='',z={},A=':',B='utf-8',C=!0,D=!0,E={env:{NODE_ENV:'production'}},F=void 0,G=!1,H=new Map,I={},J={},K={},L={},M={},N=[],O=!1,P=[],Q=1e4;let R,S,T='script';t.setRemoteBase=function(a){Object.assign(z,a)},t.toString=function(){return'Cube:v5.0.0-beta.27'},t.init=function(a){if(a.base&&'/'!==a.base&&(y=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(z[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(B=a.charset),a.version&&(v=a.version),void 0!==a.strict&&(C=a.strict),a.env&&(E.env.NODE_ENV=a.env),a.global&&(F=a.global),void 0!==a.combine&&(D=a.combine),a.combineBlackList&&(N=a.combineBlackList),a.requestMethod&&(T=a.requestMethod),void 0!==a.esModule&&(G=a.esModule),a.fetchMethod&&(R=a.fetchMethod),a.onCodeError&&(S=a.onCodeError),a.combineFailTime&&(Q=a.combineFailTime),O=!0;P.length;){var c=P.shift();o(c[0],c[1])}return this},t.use=function(c,d,e,f){if(!c)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||b,c='string'===typeof c?[k(c)]:c.map(k),f||(c=g(c,A)),H.has(c)||H.set(c,[]),H.get(c).push(function(){var b=[],d=c.length,f=!1;return function(c){if(!f)return(b.push(c),b.length===d)?(f=!0,e.apply(a,b),!0):void 0}}()),o(c,d,!0),this},t.register=function(a,c,{matchType:d='version'}={}){if(K[a])return x.warn('Cube Warning: Module \''+a+'\' already registered');if(K[a]={exports:c,fn:b,loaded:!0,fired:!0},'module'===d&&(J[a]=J[a]||{},J[a].default={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:K[a],moduleName:a}),'function'===d){const{moduleName:b,modulePath:c}=l(a);if(!c)return x.warn('Cube Warning: Module \''+a+'\' matchType is function, but no path');J[b]=J[b]||{},J[b][c]={require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${b}\/(?\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)\/${c}$`),module:K[a],moduleName:b}}return this};var U={};t.css=function(a,b,c){if(a){var d=c+'@'+b;if(!U[d])return U[d]=!0,h(a,b,c)}},t.debug=function(){x.error('Cube Error: Cube.debug nolonger supported')},t.cache=function(){var a,b,c={},d={};for(a in K)K.hasOwnProperty(a)&&(b=K[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));x.info('modules:',K),x.info('unloaded:',c),x.info('unfired:',d)},a.Cube?x.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):a.Cube=t;var V=w.currentScript;if(V){var W=V.dataset;W.base&&(t.init(W),t.use(W.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(t,'config',{get(){return{base:y,remoteBase:z,remoteSeparator:A,version:v,strict:C,debug:!0,esModule:G,mockedGlobal:F,mockedProcess:E,charset:B,combine:D,combineMap:M}}})}function o(){return new Proxy({},{get:function(a,b){const c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){const e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}function p(b){const c='Cube',d='undefined'===typeof window?a:window;if(d[c])return console.error('Cube Error: window.'+c+' already in using'),d[c];if(b)n(d);else{const a=new t,b=new Proxy((b,c,d)=>a.execute(b,c,d),{get:function(b,c){return Reflect.ownKeys(a).includes(c)?a[c]:Reflect.get(b,c)}});d[c]=b}return d[c].cubeVersion='5.0.0-beta.26',d[c].oldVersion=b,d[c]}const q='undefined'===typeof document?{appendChild:()=>{}}:document.querySelector('head'),r=/([^};]+)(\{[^}]+\})/g,s={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch',fetchUndeclaredModule:!1,aggregateFetch:!0,fetchMethod:void 0,onCodeError:void 0};class t{constructor(){this.config=Object.assign({},s),this.state={inited:!1,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:o(),registerModules:[],requireMap:{},fileExecuting:!1,aggregateLoading:{},delayTrigger:void 0},this.register=(a,c,d={matchType:'version'})=>{var e;const{matchType:f}=d;return(null===(e=this._getModule(a))||void 0===e?void 0:e.fired)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(this.state.installedModules[a]={exports:c,sourceCode:b,dep:[],refer:{entryDep:[]},loaded:!0,firing:!1,fired:!0},'module'===f&&this.state.registerModules.push({moduleName:a,matchType:f,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:this.state.installedModules[a]}))},this.init=(a)=>{var b,c,d,e,f,g,h;if(this.state.inited&&console.warn('Cube \u91CD\u590D\u521D\u59CB\u5316\uFF0C\u53EF\u80FD\u4EA7\u751F\u8D44\u6E90\u8BF7\u6C42\u9519\u8BEF'),a.base&&'/'!==a.base&&(this.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(let b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(this.config.remoteBase[b]=a.remoteBase[b].replace(/\/$/,''));this.config.version=null!==(b=a.version)&&void 0!==b?b:this.config.version,this.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:this.config.esModule,this.config.debug=null!==(d=a.debug)&&void 0!==d?d:this.config.debug,this.config.combine=null!==(e=a.combine)&&void 0!==e?e:this.config.combine,this.config.requestMethod=null!==(f=a.requestMethod)&&void 0!==f?f:this.config.requestMethod,this.config.fetchUndeclaredModule=null!==(g=a.fetchUndeclaredModule)&&void 0!==g?g:this.config.fetchUndeclaredModule,this.config.aggregateFetch=null!==(h=a.aggregateFetch)&&void 0!==h?h:this.config.aggregateFetch,this.config.fetchMethod=a.fetchMethod||fetch,this.config.onCodeError=a.onCodeError,this.state.inited=!0;for(let b,c=0;c{if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');let f,h='string'===typeof a?[a]:'number'===typeof a?[a.toString()]:[...a],i=e;'string'===typeof c?f=d:(f=c,i=d),f=f||b,h=i?h:g(h,this.config.remoteSeparator);const j={callback:f,loadSource:{},targets:[...h]};if(this.config.aggregateFetch);else h.forEach((a)=>{j.loadSource[a]=!1});this.state.entrances.set(h,j),h.forEach((a)=>this._load(a,h))},this.execute=(a,b,c)=>{var d;'number'===typeof a&&(a=a.toString());const e=this._calibrateName(a);(null===(d=this.state.installedModules[e])||void 0===d?void 0:d.loaded)||(this._store(e,b,c),this._initiate(e))},this.css=(a,b,c)=>{if(a){var d=c+'@'+b;if(!this.state.cssModule[d])return this.state.cssModule[d]=!0,h(a,b,c)}},this._store=(a,b,c)=>{const d=this.state.installedModules[a];d?(d.dep.push(...b),d.sourceCode=c,d.loaded=!0):this.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{entryDep:[]},loaded:!0,firing:!1,fired:!1}},this._load=(a,b)=>{if('number'===typeof a&&(a=a.toString()),!this.config.aggregateFetch){const c=this.state.entrances.get(b);c&&!c.loadSource.hasOwnProperty(a)&&(c.loadSource[a]=!1)}if(!this.state.inited||this.state.fileExecuting)return void this.state.pendingQueue.push([a,b]);const c=this._getModule(a);if(c)return this._addReferToDependency(a,c,b),void(c.loaded&&this._triggerCallback(a,c));const[g]=a.split('?');this.state.requireMap[g]=a,this.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[]},loaded:!1,firing:!1,fired:!1},this._addReferToDependency(a,this.state.installedModules[a],b);const h=this._generatePath(a);'fetch'===this.config.requestMethod?e({url:h,fetch:this.config.fetchMethod,onCodeError:this.config.onCodeError},d):f(h)},this._initiate=(a)=>{const b=this.state.installedModules[a];this._triggerCallback(a,b)},this._triggerCallback=(a,b)=>{if(!b.loaded)return;if(this.config.aggregateFetch)return b.dep.forEach((a)=>{var b;(null===(b=this._getModule(a))||void 0===b?void 0:b.loaded)||this._load(a,[])}),void(this.state.aggregateLoading[a]&&(delete this.state.aggregateLoading[a],this._triggerAllCallback()));const c=b.refer;let d=[];c.entryDep.forEach((c)=>{const e=this.state.entrances.get(c);if(e){e.loadSource[a]=!0;let d=!0;b.fired||b.dep.forEach((a)=>{if(!e.loadSource[a]){const b=this._getModule(a);(null===b||void 0===b?void 0:b.fired)||(d=!1,this._load(a,c))}}),d&&Object.values(e.loadSource).every((a)=>a)&&this._triggerEntryCallback(c,e)}else d.push(c)}),d.length&&(b.refer.entryDep=c.entryDep.filter((a)=>!d.includes(a)))},this._triggerEntryCallback=(a,b)=>{let c=!0;b.targets.forEach((a)=>{const b=this._getModule(a);if(!b.fired){if(b.firing)return void(c=!1);this._fireModule(a),b.fired||(c=!1)}}),c&&(b.callback(...b.targets.map((a)=>this.state.installedModules[a].exports)),this.state.entrances.delete(a))},this._triggerAllCallback=()=>{this.state.delayTrigger||this.state.pendingQueue.length||Object.keys(this.state.aggregateLoading).length||this.state.entrances.forEach((a,b)=>{this._triggerEntryCallback(b,a)})},this._fireModule=(a)=>{const b=this.state.installedModules[a];if(!b||!b.loaded)return!1;if(b.fired)return!0;if(b.firing)return!0;let c=!0;try{b.firing=!0;const c=b.sourceCode.apply(window,[b,b.exports,this._cubeRequire(a),this._cubeLoad(a),this.config.mockedProcess,this.config.mockedGlobal]);b.exports=this._isEsModule(c)?c.default:c,b.error=!1}catch(d){this.config.fetchUndeclaredModule&&`Cube inner denpendency lost; refetch inited`===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{b.firing=!1,this.config.fetchUndeclaredModule?this.state.lostDepModule[a]&&(this.state.lostDepModule[a].forEach((c)=>{b.dep.includes(c)||(b.dep.push(c),b.refer.entryDep.forEach((a)=>{this._load(c,a)}),console.warn(`Cube module ${a} 缺失声明依赖 ${c}`))}),Reflect.deleteProperty(this.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=(a)=>(b,c)=>{if(void 0===c){const c=this._getModule(b);if(null===c||void 0===c?void 0:c.fired)return c.exports;const d=this._fireModule(b);if(c&&d)return c.exports;if(this.config.fetchUndeclaredModule)throw this.state.lostDepModule[a]?this.state.lostDepModule[a].push(b):this.state.lostDepModule[a]=[b],new Error(`Cube inner denpendency lost; refetch inited`);else throw new Error(`Cube 获取未声明资源 ${b} 失败`)}else{let a;const d=this._getModule(b);if(!d||!d.loaded)return;d.fired&&(a=d.exports);const e=this._fireModule(b);return e&&(a=d.exports),this.css(a,c,b)}},this._cubeLoad=(a)=>{return(b,c,d)=>{d===void 0&&'function'===typeof c?(d=c,c='',this.use(b,a,d)):this.use(b,a,(a)=>{a=this.css(a,c,b),d&&d(a)})}},this._generatePath=(a)=>{const[b,c]=a.split('?');let d=j(b,this.config);const e=[];if(this.config.version&&e.push(this.config.version),this.config.combine&&e.push('combine=true'),c){const a=i(c);e.push(Object.keys(a).map((b)=>`${b}=${a[b]}`))}return e.includes('m=1')||e.push('m=1'),e.length&&(d=d+'?'+e.join('&')),d},this._addReferToDependency=(a,b,c)=>{if(this.config.aggregateFetch)return void(b.loaded||(this.state.aggregateLoading[a]=!0));const d=b.refer;c&&(d.entryDep.includes(c)||d.entryDep.push(c))},this._calibrateName=(a)=>{const b=this.state.requireMap[a]||a;return this.state.requireMap[a]&&Reflect.deleteProperty(this.state.requireMap,a),b},this._getGlobalRegister=(a)=>{for(const b of this.state.registerModules)if(a&&b.match.test(a))return b.module},this._getModule=(a)=>{const b=this.state.installedModules[a];return b?b:this._getGlobalRegister(a)},this._isEsModule=(a)=>this.config.esModule&&a&&'object'===typeof a&&a.__esModule,this.cStart=()=>{this.state.fileExecuting=!0},this.cStop=()=>{this.state.fileExecuting=!1;for(let a,b=0;b{console.info('modules:',Object.fromEntries(Object.entries(this.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].loaded))),console.info('unfired:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].fired)))},this.debug=()=>{console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=()=>{console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}}'undefined'===typeof window?module.exports=p(!0):p(!0)})('undefined'===typeof window?globalThis:window); \ No newline at end of file + (function(a){function b(){}function c(a){return a}function d(a){return'Cube.cStart();'+a+';Cube.cStop();'}function e(a,b,d){const e='string'===typeof a?{url:a}:a;return('function'===typeof e.fetch?e.fetch:fetch)(e.url,{headers:{"Content-Type":'text/plain'}}).then((a)=>(d&&d(a),a)).then((a)=>a.text()).then((a)=>{var d;try{return new Function((b||c)(a))()}catch(a){null===(d=e.onCodeError)||void 0===d?void 0:d.call(e,a,{url:e.url}),console.error(a)}})}function f(a){var b=null===document||void 0===document?void 0:document.createElement('script');b.type='text/javascript',b.async=!0,b.onerror=()=>{console.error(`load module failed.`)},b.src=a,null===v||void 0===v?void 0:v.appendChild(b)}function g(a,b){for(var c,d=a.length,e=0;e{let b=a.split('=');c[b[0]]=b[1]}),c}function j(a,b){const{base:c,remoteSeparator:d,remoteBase:e}=b;let f=c+a;var g=a.indexOf?a.indexOf(d):0;if(0>=g)return f;var h=a.substr(0,g);return e[h]?e[h]+a.substr(g+1):f}function k(a){const[b,c]=(a+'').split('?');if(c){let a=c.split('&');if(a.includes('env=publish')){a=a.filter((a)=>'env=publish'!==a);const c=a.join('&');return c?b+'?'+c:b}}return a}function l(a){const b=/^((@[^/]+\/[^/]+|[^/]+))(?:\/(.*))?$/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function m(a){const b=/^datav:\/npm\/((?:@[^/]+\/[^/]+)|[^/]+)(?:\/([^/?]+))?(?:\/([^?]*))?/,c=a.match(b);if(!c)return null;const d=c[1],e=c[3]||'';return{moduleName:d,modulePath:e}}function n(a,b,c){return(b=s(b))in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function o(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function p(a){for(var b,c=1;c{P[a]&&(Q[a].failed=!0,o(a,b))},U),failed:!1})),g){const a=i(g);Array.prototype.push.apply(l,Object.keys(a).map((b)=>''.concat(b,'=').concat(a[b])))}l.length&&(k=k+'?'+l.join('&')),'fetch'===X?H&&Q[a]&&!Q[a].traceId?e({url:k,fetch:V,onCodeError:W},void 0,(b)=>{b.headers.has('request-id')&&(Q[a].traceId=b.headers.get('request-id'))}):e(k):f(k),M[d]=a,P[a]=!0}),n()):void T.push([a,b])}function q(a){return!!H&&(!R.length||!R.some((b)=>!!a.match(b)))}function r(a){if(!a.startsWith('datav:/npm/'))return!1;let{moduleName:b,modulePath:c}=m(a);return!!N[b]&&((c=c||'default',N[b][c])?N[b][c].module:(Object.entries(N[b]).forEach((b)=>{let[c,d]=b;if(d.match.test(a))return d.module}),!1))}function s(b){var f=r(b)||O[b];if(!f){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(G)throw a;else return B.error(a),{}}if(!f.fired)if(f.fired=!0,G)f.exports=f.fn.apply(a,[f,f.exports,c,d(b),I,J]);else try{f.exports=f.fn.apply(a,[f,f.exports,c,d(b),I,J])}catch(a){B.error(a),f.exports={}}return v(f.exports)?f.exports.default:f.exports}function t(){for(let[a,b]of L)a.length&&a.forEach(function(c){if(P[c])return;var d=0;const e=s(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&L.delete(a)})}function u(a,b,c){const d=a+'';a=M[a]||a;var e=O[a];e=k(e),e||(e=O[a]={exports:{},fired:!1}),Q[a]&&!e.loaded&&(Q[a].failed?Q[a].end=Date.now():(clearTimeout(Q[a].timeout),delete Q[a])),e.loaded=!0,e.fn=c,M[d]&&delete M[d],P[a]?(delete P[a],o(b,a)):b.length&&o(b,a)}function v(a){return K&&a&&'object'===typeof a&&a.__esModule}var w,x,y,z,A='undefined'===typeof document?{}:document,B=console,C='',D={},E=':',F='utf-8',G=!0,H=!0,I=p(p({},null!==(w=a.process)&&void 0!==w?w:{}),{},{env:p(p({},null!==(x=null===(y=a.process)||void 0===y?void 0:y.env)&&void 0!==x?x:{}),{},{NODE_ENV:'production'})}),J=void 0,K=!1,L=new Map,M={},N={},O={},P={},Q={},R=[],S=!1,T=[],U=1e4;let V,W,X='script';u.setRemoteBase=function(a){Object.assign(D,a)},u.toString=function(){return'Cube:v5.0.0-beta.28'},u.init=function(a){if(a.base&&'/'!==a.base&&(C=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(D[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(F=a.charset),a.version&&(z=a.version),void 0!==a.strict&&(G=a.strict),a.env&&(I.env.NODE_ENV=a.env),a.global&&(J=a.global),void 0!==a.combine&&(H=a.combine),a.combineBlackList&&(R=a.combineBlackList),a.requestMethod&&(X=a.requestMethod),void 0!==a.esModule&&(K=a.esModule),a.fetchMethod&&(V=a.fetchMethod),a.onCodeError&&(W=a.onCodeError),a.combineFailTime&&(U=a.combineFailTime),S=!0;T.length;){var c=T.shift();o(c[0],c[1])}return this},u.use=function(c,d,e,f){if(!c)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||b,c='string'===typeof c?[k(c)]:c.map(k),f||(c=g(c,E)),L.has(c)||L.set(c,[]),L.get(c).push(function(){var b=[],d=c.length,f=!1;return function(c){if(!f)return(b.push(c),b.length===d)?(f=!0,e.apply(a,b),!0):void 0}}()),o(c,d,!0),this},u.register=function(a,c){let{matchType:d='version'}=2\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?)/').concat(c,'$')),module:O[a],moduleName:b}}return this};var Y={};u.css=function(a,b,c){if(a){var d=c+'@'+b;if(!Y[d])return Y[d]=!0,h(a,b,c)}},u.debug=function(){B.error('Cube Error: Cube.debug nolonger supported')},u.cache=function(){var a,b,c={},d={};for(a in O)O.hasOwnProperty(a)&&(b=O[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));B.info('modules:',O),B.info('unloaded:',c),B.info('unfired:',d)},a.Cube?B.error('Cube Error: window.Cube already in using, replace the last "null" param in cube.js'):a.Cube=u;var Z=A.currentScript;if(Z){var $=Z.dataset;$.base&&(u.init($),u.use($.main||'index.js',function(a){a.run&&a.run()}))}Object.defineProperty(u,'config',{get(){return{base:C,remoteBase:D,remoteSeparator:E,version:z,strict:G,debug:!0,esModule:K,mockedGlobal:J,mockedProcess:I,charset:F,combine:H,combineMap:Q}}})}function t(){return new Proxy({},{get:function(a,b){const c='number'===typeof b?b.toString():b;return Reflect.get(a,c)},set:function(a,b,c,d){const e='number'===typeof b?b.toString():b;return Reflect.set(a,e,c,d)}})}function u(b){const c='Cube',d='undefined'===typeof window?a:window;if(d[c])return console.error('Cube Error: window.'+c+' already in using'),d[c];if(b)r(d);else{const a=new y,b=new Proxy((b,c,d)=>a.execute(b,c,d),{get:function(b,c){return Reflect.ownKeys(a).includes(c)?a[c]:Reflect.get(b,c)}});d[c]=b}return d[c].cubeVersion='5.0.0-beta.27',d[c].oldVersion=b,d[c]}const v='undefined'===typeof document?{appendChild:()=>{}}:document.querySelector('head'),w=/([^};]+)(\{[^}]+\})/g,x={base:'',remoteBase:{},remoteSeparator:':',mockedProcess:{env:{NODE_ENV:'production'}},mockedGlobal:void 0,charset:'utf-8',strict:!0,esModule:!1,version:void 0,debug:!0,combine:!1,requestMethod:'fetch',fetchUndeclaredModule:!1,aggregateFetch:!0,fetchMethod:void 0,onCodeError:void 0};class y{constructor(){this.config=Object.assign({},x),this.state={inited:!1,isIntercepted:!1,pendingQueue:[],lostDepModule:{},entrances:new Map,cssModule:{},installedModules:t(),registerModules:[],requireMap:{},fileExecuting:!1,aggregateLoading:{},delayTrigger:void 0},this.register=(a,c,d={matchType:'version'})=>{var e;const{matchType:f}=d;return(null===(e=this._getModule(a))||void 0===e?void 0:e.fired)?console.warn('Cube Warning: Module \''+a+'\' already registered'):void(this.state.installedModules[a]={exports:c,sourceCode:b,dep:[],refer:{entryDep:[]},loaded:!0,firing:!1,fired:!0},'module'===f&&this.state.registerModules.push({moduleName:a,matchType:f,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:this.state.installedModules[a]}))},this.init=(a)=>{var b,c,d,e,f,g,h;if(this.state.inited&&console.warn('Cube \u91CD\u590D\u521D\u59CB\u5316\uFF0C\u53EF\u80FD\u4EA7\u751F\u8D44\u6E90\u8BF7\u6C42\u9519\u8BEF'),a.base&&'/'!==a.base&&(this.config.base=a.base.replace(/\/$/,'')),a.remoteBase)for(let b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(this.config.remoteBase[b]=a.remoteBase[b].replace(/\/$/,''));this.config.version=null!==(b=a.version)&&void 0!==b?b:this.config.version,this.config.esModule=null!==(c=a.esModule)&&void 0!==c?c:this.config.esModule,this.config.debug=null!==(d=a.debug)&&void 0!==d?d:this.config.debug,this.config.combine=null!==(e=a.combine)&&void 0!==e?e:this.config.combine,this.config.requestMethod=null!==(f=a.requestMethod)&&void 0!==f?f:this.config.requestMethod,this.config.fetchUndeclaredModule=null!==(g=a.fetchUndeclaredModule)&&void 0!==g?g:this.config.fetchUndeclaredModule,this.config.aggregateFetch=null!==(h=a.aggregateFetch)&&void 0!==h?h:this.config.aggregateFetch,this.config.fetchMethod=a.fetchMethod||fetch,this.config.onCodeError=a.onCodeError,this.state.inited=!0;for(let b,c=0;c{if(!a)throw new Error('Cube.use(moduleName) moduleName is undefined!');let f,h='string'===typeof a?[a]:'number'===typeof a?[a.toString()]:[...a],i=e;'string'===typeof c?f=d:(f=c,i=d),f=f||b,h=i?h:g(h,this.config.remoteSeparator);const j={callback:f,loadSource:{},targets:[...h]};if(this.config.aggregateFetch);else h.forEach((a)=>{j.loadSource[a]=!1});this.state.entrances.set(h,j),h.forEach((a)=>this._load(a,h))},this.execute=(a,b,c)=>{var d;'number'===typeof a&&(a=a.toString());const e=this._calibrateName(a);(null===(d=this.state.installedModules[e])||void 0===d?void 0:d.loaded)||(this._store(e,b,c),this._initiate(e))},this.css=(a,b,c)=>{if(a){var d=c+'@'+b;if(!this.state.cssModule[d])return this.state.cssModule[d]=!0,h(a,b,c)}},this._store=(a,b,c)=>{const d=this.state.installedModules[a];d?(d.dep.push(...b),d.sourceCode=c,d.loaded=!0):this.state.installedModules[a]={exports:{},sourceCode:c,dep:b,refer:{entryDep:[]},loaded:!0,firing:!1,fired:!1}},this._load=(a,b)=>{if('number'===typeof a&&(a=a.toString()),!this.config.aggregateFetch){const c=this.state.entrances.get(b);c&&!c.loadSource.hasOwnProperty(a)&&(c.loadSource[a]=!1)}if(!this.state.inited||this.state.fileExecuting)return void this.state.pendingQueue.push([a,b]);const c=this._getModule(a);if(c)return this._addReferToDependency(a,c,b),void(c.loaded&&this._triggerCallback(a,c));const[g]=a.split('?');this.state.requireMap[g]=a,this.state.installedModules[a]={exports:{},sourceCode:void 0,dep:[],refer:{entryDep:[]},loaded:!1,firing:!1,fired:!1},this._addReferToDependency(a,this.state.installedModules[a],b);const h=this._generatePath(a);'fetch'===this.config.requestMethod?e({url:h,fetch:this.config.fetchMethod,onCodeError:this.config.onCodeError},d):f(h)},this._initiate=(a)=>{const b=this.state.installedModules[a];this._triggerCallback(a,b)},this._triggerCallback=(a,b)=>{if(!b.loaded)return;if(this.config.aggregateFetch)return b.dep.forEach((a)=>{var b;(null===(b=this._getModule(a))||void 0===b?void 0:b.loaded)||this._load(a,[])}),void(this.state.aggregateLoading[a]&&(delete this.state.aggregateLoading[a],this._triggerAllCallback()));const c=b.refer;let d=[];c.entryDep.forEach((c)=>{const e=this.state.entrances.get(c);if(e){e.loadSource[a]=!0;let d=!0;b.fired||b.dep.forEach((a)=>{if(!e.loadSource[a]){const b=this._getModule(a);(null===b||void 0===b?void 0:b.fired)||(d=!1,this._load(a,c))}}),d&&Object.values(e.loadSource).every((a)=>a)&&this._triggerEntryCallback(c,e)}else d.push(c)}),d.length&&(b.refer.entryDep=c.entryDep.filter((a)=>!d.includes(a)))},this._triggerEntryCallback=(a,b)=>{let c=!0;b.targets.forEach((a)=>{const b=this._getModule(a);if(!b.fired){if(b.firing)return void(c=!1);this._fireModule(a),b.fired||(c=!1)}}),c&&(b.callback(...b.targets.map((a)=>this.state.installedModules[a].exports)),this.state.entrances.delete(a))},this._triggerAllCallback=()=>{this.state.delayTrigger||this.state.pendingQueue.length||Object.keys(this.state.aggregateLoading).length||this.state.entrances.forEach((a,b)=>{this._triggerEntryCallback(b,a)})},this._fireModule=(a)=>{const b=this.state.installedModules[a];if(!b||!b.loaded)return!1;if(b.fired)return!0;if(b.firing)return!0;let c=!0;try{b.firing=!0;const c=b.sourceCode.apply(window,[b,b.exports,this._cubeRequire(a),this._cubeLoad(a),this.config.mockedProcess,this.config.mockedGlobal]);b.exports=this._isEsModule(c)?c.default:c,b.error=!1}catch(d){this.config.fetchUndeclaredModule&&`Cube inner denpendency lost; refetch inited`===d.message?(console.warn('Cube \u68C0\u6D4B\u5230\u6587\u4EF6\u4F9D\u8D56\u7F3A\u5931'),c=!1):(console.error('Cube \u751F\u6210\u5B9E\u4F8B\u5931\u8D25',d),console.error(a,b),b.error=!0)}finally{b.firing=!1,this.config.fetchUndeclaredModule?this.state.lostDepModule[a]&&(this.state.lostDepModule[a].forEach((c)=>{b.dep.includes(c)||(b.dep.push(c),b.refer.entryDep.forEach((a)=>{this._load(c,a)}),console.warn(`Cube module ${a} 缺失声明依赖 ${c}`))}),Reflect.deleteProperty(this.state.lostDepModule,a),c=!1):b.fired=!0}return c},this._cubeRequire=(a)=>(b,c)=>{if(void 0===c){const c=this._getModule(b);if(null===c||void 0===c?void 0:c.fired)return c.exports;const d=this._fireModule(b);if(c&&d)return c.exports;if(this.config.fetchUndeclaredModule)throw this.state.lostDepModule[a]?this.state.lostDepModule[a].push(b):this.state.lostDepModule[a]=[b],new Error(`Cube inner denpendency lost; refetch inited`);else throw new Error(`Cube 获取未声明资源 ${b} 失败`)}else{let a;const d=this._getModule(b);if(!d||!d.loaded)return;d.fired&&(a=d.exports);const e=this._fireModule(b);return e&&(a=d.exports),this.css(a,c,b)}},this._cubeLoad=(a)=>{return(b,c,d)=>{d===void 0&&'function'===typeof c?(d=c,c='',this.use(b,a,d)):this.use(b,a,(a)=>{a=this.css(a,c,b),d&&d(a)})}},this._generatePath=(a)=>{const[b,c]=a.split('?');let d=j(b,this.config);const e=[];if(this.config.version&&e.push(this.config.version),this.config.combine&&e.push('combine=true'),c){const a=i(c);e.push(Object.keys(a).map((b)=>`${b}=${a[b]}`))}return e.includes('m=1')||e.push('m=1'),e.length&&(d=d+'?'+e.join('&')),d},this._addReferToDependency=(a,b,c)=>{if(this.config.aggregateFetch)return void(b.loaded||(this.state.aggregateLoading[a]=!0));const d=b.refer;c&&(d.entryDep.includes(c)||d.entryDep.push(c))},this._calibrateName=(a)=>{const b=this.state.requireMap[a]||a;return this.state.requireMap[a]&&Reflect.deleteProperty(this.state.requireMap,a),b},this._getGlobalRegister=(a)=>{for(const b of this.state.registerModules)if(a&&b.match.test(a))return b.module},this._getModule=(a)=>{const b=this.state.installedModules[a];return b?b:this._getGlobalRegister(a)},this._isEsModule=(a)=>this.config.esModule&&a&&'object'===typeof a&&a.__esModule,this.cStart=()=>{this.state.fileExecuting=!0},this.cStop=()=>{this.state.fileExecuting=!1;for(let a,b=0;b{console.info('modules:',Object.fromEntries(Object.entries(this.state.installedModules))),console.info('unloaded:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].loaded))),console.info('unfired:',Object.fromEntries(Object.entries(this.state.installedModules).filter((a)=>!a[1].fired)))},this.debug=()=>{console.error('debug \u65B9\u6CD5\u4E0D\u518D\u652F\u6301')},this.setRemoteBase=()=>{console.error('\u4E0D\u652F\u6301\u52A8\u6001\u4FEE\u6539 remoteBase')}}}'undefined'===typeof window?module.exports=u(!0):u(!0)})('undefined'===typeof window?globalThis:window); \ No newline at end of file diff --git a/runtime/cube.min.js b/runtime/cube.min.js index ab517e6..1102fe9 100644 --- a/runtime/cube.min.js +++ b/runtime/cube.min.js @@ -1,4 +1,4 @@ /*! - * Cube v5.0.0-beta.27 + * Cube v5.0.0-beta.28 */ - (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C={env:{NODE_ENV:'production'}},D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.27'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file + (function(a,b){function c(){}function d(a,b){if(1===arguments.length)return k(a);var c=k(a);return m.css(c,b,a),a}function e(a){return function(b,c,d){2===arguments.length&&'function'===typeof c?(d=c,c=null,m.use(b,a,d)):m.use(b,a,function(a){a=m.css(a,c,b),d&&d(a)})}}function f(a){var b=a.indexOf?a.indexOf(v):0;if(0>=b)return'';var c=a.substr(0,b);return u[c]?u[c]+a.substr(b+1):''}function g(a){for(var b,c=a.length,d=0;d{m(a,[],()=>{console.error(`load module: ${a} failed.`)})};var d=f(h),e=d||t+h,g=[];if(p&&g.push(p),y&&(g.push('m'),g.push('ref='+b)),i){const a=n(i);Array.prototype.push.apply(g,Object.keys(a).map((b)=>`${b}=${a[b]}`))}c.src=g.length?e+'?'+g.join('&'):e,H.appendChild(c),F[a]={exports:{},loaded:!1,fired:!1},A[h]=a,G[a]=!0}}),h()):void J.push([a,b])}function j(a){for(const b of B)if(a&&b.match.test(a))return b.module;return!1}function k(b){var c=j(b)||F[b];if(!c){const a=new Error('Cube Error: Cannot find module \''+b+'\'');if(x)throw a;else return s.error(a),{}}if(!c.fired)if(c.fired=!0,x)c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D]);else try{c.exports=c.fn.apply(a,[c,c.exports,d,e(b),C,D])}catch(a){s.error(a),c.exports={}}return o(c.exports)?c.exports.default:c.exports}function l(){y&&console.time('cube exec');for(let[a,b]of z)a.length&&a.forEach(function(c){if(G[c])return;var d=0;const e=k(c);b.length&&b.forEach(function(a){var b=a(e);b&&d++}),b.length===d&&z.delete(a)});y&&console.timeEnd('cube exec')}function m(a,b,c){const d=a+'';a=A[a]||a;var e=F[a];e||(e=F[a]={exports:{},fired:!1}),e.loaded=!0,e.fn=c,A[d]&&delete A[d],G[a]?(delete G[a],i(b,a)):b.length&&i(b,a)}function n(a){let b=a.split('&'),c={};return b.forEach((a)=>{let b=a.split('=');c[b[0]]=b[1]}),c}function o(a){return E&&a&&'object'===typeof a&&a.__esModule}var p,q=window,r=document,s=console,t='',u={},v=':',w='utf-8',x=!0,y=!0,z=new Map,A={},B=[],C=Object.assign(a.process||{},{env:{NODE_ENV:'production'}}),D=void 0,E=!1,F={},G={},H=r.querySelector('head'),I=!1,J=[];y&&console.time('cube load'),m.setRemoteBase=function(a){Object.assign(u,a)},m.toString=function(){return'Cube:v5.0.0-beta.28'},m.init=function(a){if(a.base&&'/'!==a.base&&(t=a.base.replace(/\/$/,'')),a.remoteBase)for(var b in a.remoteBase)a.remoteBase.hasOwnProperty(b)&&(u[b]=a.remoteBase[b].replace(/\/$/,''));for(a.charset&&(w=a.charset),a.version&&(p=a.version),void 0!==a.debug&&(y=a.debug),void 0!==a.strict&&(x=a.strict),a.env&&(C.env.NODE_ENV=a.env),a.global&&(D=a.global),void 0!==a.esModule&&(E=a.esModule),I=!0;J.length;){var c=J.shift();i(c[0],c[1])}return this},m.use=function(b,d,e,f){if(!b)throw new Error('Cube.use(moduleName) moduleName is undefined!');return'function'===typeof d&&(f=e,e=d,d=void 0),d||(d='Cube.use'),e=e||c,'string'===typeof b&&(b=[b]),f||(b=g(b)),z.has(b)||z.set(b,[]),z.get(b).push(function(){var c=[],d=b.length,f=!1;return function(b){if(!f)return(c.push(b),c.length===d)?(f=!0,e.apply(a,c),!0):void 0}}()),i(b,d),this},m.register=function(a,b,{matchType:d='version'}={}){return F[a]?s.warn('Cube Warning: Module \''+a+'\' already registered'):(F[a]={exports:b,fn:c,loaded:!0,fired:!0},'module'===d&&B.push({require:a,matchType:d,match:new RegExp(`^datav:\/npm\/${a}\/([^\/]+)?$`),module:F[a]}),this)};var K=/([^};]+)(\{[^}]+\})/g,L={};m.css=function(a,b,c){if(a){var d=c+'@'+b;if(!L[d]){L[d]=!0,b&&(a=a.replace(K,function(a,c,d){var e=c.split(',').map(function(a){return b+' '+a.trim()});return e.join(',')+d}));var e=r.createElement('style');return e.setAttribute('type','text/css'),e.setAttribute('mod',c),b&&e.setAttribute('ns',b),H.appendChild(e),e.innerHTML=a,a}}},m.debug=function(){q.localStorage&&q.addEventListener?(localStorage.cube='debug',location.reload()):s.error('Cube Error: Cannot debug, your browser does not support localStorage or addEventListener')},m.cache=function(){var a,b,c={},d={};for(a in F)F.hasOwnProperty(a)&&(b=F[a],b.loaded||(c[a]=b),b.fired||(d[a]=b));s.info('modules:',F),s.info('unloaded:',c),s.info('unfired:',d)},q.localStorage&&'debug'===localStorage.cube&&(y=!0,q.addEventListener('load',m.cache)),b=b||'Cube',a[b]?s.error('Cube Error: window.'+b+' already in using, replace the last "null" param in cube.js'):a[b]=m;var M=r.currentScript;if(M){var N=M.dataset;N.base&&(m.init(N),m.use(N.main||'index.js',function(a){a.run&&a.run()}))}})(window,null); \ No newline at end of file