├── .babelrc
├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── lib
├── index.js
└── src
│ ├── ApiInstances.js
│ ├── ChainConfig.js
│ ├── ChainWebSocket.js
│ ├── ConnectionManager.js
│ └── GXChainApi.js
├── package-lock.json
├── package.json
├── test
├── connect.js
└── manager.js
└── tools
└── es2015Preset.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@babel/env"
5 | ]
6 | ],
7 | "plugins": [
8 | [
9 | "@babel/plugin-transform-runtime"
10 | ]
11 | ]
12 | }
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 |
5 | ---
6 |
7 | **Describe the bug**
8 | A clear and concise description of what the bug is.
9 |
10 | **To Reproduce**
11 | Steps to reproduce the behavior:
12 | 1. Go to '...'
13 | 2. Click on '....'
14 | 3. Scroll down to '....'
15 | 4. See error
16 |
17 | **Expected behavior**
18 | A clear and concise description of what you expected to happen.
19 |
20 | **Screenshots**
21 | If applicable, add screenshots to help explain your problem.
22 |
23 | **Desktop (please complete the following information):**
24 | - OS: [e.g. iOS]
25 | - Browser [e.g. chrome, safari]
26 | - Version [e.g. 22]
27 |
28 | **Smartphone (please complete the following information):**
29 | - Device: [e.g. iPhone6]
30 | - OS: [e.g. iOS8.1]
31 | - Browser [e.g. stock browser, safari]
32 | - Version [e.g. 22]
33 |
34 | **Additional context**
35 | Add any other context about the problem here.
36 |
37 | **Your GXChain Account**
38 | You will be rewarded for you contributions
39 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
19 | **Your GXChain Account**
20 | You will be rewarded for you contributions
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .npmrc
2 | npm-debug.log
3 | node_modules
4 | cjs
5 | es
6 | .idea
7 | build/*
8 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | lib
2 | test
3 | examples
4 | build
5 | .idea
6 | node_modules
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 BitShares
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GXChain websocket interface (gxbjs-ws)
2 |
3 | Pure JavaScript GXChain websocket library for node.js and browsers. Can be used to easily connect to and obtain data from the GXB blockchain via public apis or local nodes.
4 |
5 | Credit for the original implementation goes to [jcalfee](https://github.com/jcalfee).
6 |
7 | [](https://www.npmjs.com/package/gxbjs-ws)
8 | [](https://www.npmjs.com/package/gxbjs-ws)
9 |
10 |
11 | ## Setup
12 |
13 | This library can be obtained through npm:
14 | ```
15 | npm install gxbjs-ws
16 | ```
17 |
18 | ## Usage
19 |
20 | Browser bundles are provided in /build/, for testing purposes you can access this from rawgit:
21 |
22 | ```
23 |
24 | ```
25 |
26 | A variable gxbjs_ws will be available in window.
27 |
28 | For use in a webpack/browserify context, see the example below for how to open a websocket connection to the Openledger API and subscribe to any object updates:
29 |
30 | ```
31 | var {Apis} = require("gxbjs-ws");
32 | Apis.instance("wss://node1.gxb.io",true).init_promise.then((res) => {
33 | console.log("connected to:", res[0].network);
34 | Apis.instance().db_api().exec( "set_subscribe_callback", [ updateListener, true ] )
35 | });
36 |
37 | function updateListener(object) {
38 | console.log("set_subscribe_callback:\n", object);
39 | }
40 | ```
41 | The `set_subscribe_callback` callback (updateListener) will be called whenever an object on the blockchain changes or is removed. This is very powerful and can be used to listen to updates for specific accounts, assets or most anything else, as all state changes happen through object updates. Be aware though that you will receive quite a lot of data this way.
42 |
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | import Apis from "./src/ApiInstances";
2 | import Manager from "./src/ConnectionManager";
3 | import ChainConfig from "./src/ChainConfig";
4 |
5 | export {Apis, ChainConfig, Manager};
6 |
--------------------------------------------------------------------------------
/lib/src/ApiInstances.js:
--------------------------------------------------------------------------------
1 | // var { List } = require("immutable");
2 | import ChainWebSocket from "./ChainWebSocket";
3 | import GrapheneApi from "./GXChainApi";
4 | import ChainConfig from "./ChainConfig";
5 |
6 | if (global) {
7 | global.inst = "";
8 | } else {
9 | var inst;
10 | }
11 | ;
12 | let autoReconnect = false; // by default don't use reconnecting-websocket
13 | /**
14 | Configure: configure as follows `Apis.instance("ws://localhost:8090").init_promise`. This returns a promise, once resolved the connection is ready.
15 | Import: import { Apis } from "@graphene/chain"
16 | Short-hand: Apis.db.method("parm1", 2, 3, ...). Returns a promise with results.
17 | Additional usage: Apis.instance().db_api().exec("method", ["method", "parm1", 2, 3, ...]). Returns a promise with results.
18 | */
19 | class Apis {
20 | static setRpcConnectionStatusCallback(callback) {
21 | this.statusCb = callback;
22 | if (inst) inst.setRpcConnectionStatusCallback(callback);
23 | }
24 |
25 | /**
26 | @arg {boolean} auto means automatic reconnect if possible( browser case), default true
27 | */
28 | static setAutoReconnect(auto) {
29 | autoReconnect = auto;
30 | }
31 |
32 | /**
33 | @arg {string} cs is only provided in the first call
34 | @return {Apis} singleton .. Check Apis.instance().init_promise to know when the connection is established
35 | */
36 | static reset(cs = "ws://localhost:8090", connect, connectTimeout = 4000, optionalApis, closeCb) {
37 | return this.close().then(() => {
38 | inst = new Apis();
39 | inst.setRpcConnectionStatusCallback(this.statusCb);
40 |
41 | if (inst && connect) {
42 | inst.connect(cs, connectTimeout, optionalApis, closeCb);
43 | }
44 |
45 | return inst;
46 | });
47 |
48 | }
49 |
50 | static instance(cs = "ws://localhost:8090", connect, connectTimeout = 4000, optionalApis, closeCb) {
51 | if (!inst) {
52 | inst = new Apis();
53 | inst.setRpcConnectionStatusCallback(this.statusCb);
54 | }
55 |
56 | if (inst && connect) {
57 | inst.connect(cs, connectTimeout, optionalApis);
58 | }
59 | if (closeCb) inst.closeCb = closeCb;
60 | return inst;
61 | }
62 |
63 | static chainId() {
64 | return this.instance().chain_id;
65 | }
66 |
67 | static close() {
68 | if (inst) {
69 | return new Promise((res) => {
70 | inst.close().then(() => {
71 | inst = null;
72 | res();
73 | });
74 | });
75 | }
76 |
77 | return Promise.resolve();
78 | }
79 |
80 | /** @arg {string} connection .. */
81 | connect(cs, connectTimeout, optionalApis = {enableCrypto: false}) {
82 | // console.log("INFO\tApiInstances\tconnect\t", cs);
83 | this.url = cs;
84 | let rpc_user = "", rpc_password = "";
85 | if (typeof window !== "undefined" && window.location && window.location.protocol === "https:" && cs.indexOf("wss://") < 0) {
86 | throw new Error("Secure domains require wss connection");
87 | }
88 |
89 | if (this.ws_rpc) {
90 | this.ws_rpc.statusCb = null;
91 | this.ws_rpc.keepAliveCb = null;
92 | this.ws_rpc.on_close = null;
93 | this.ws_rpc.on_reconnect = null;
94 | }
95 | this.ws_rpc = new ChainWebSocket(cs, this.statusCb, connectTimeout, autoReconnect, (closed) => {
96 | if (this._db && !closed) {
97 | this._db.exec('get_objects', [['2.1.0']])
98 | .catch((e) => {
99 |
100 | });
101 | }
102 | });
103 |
104 | this.init_promise = this.ws_rpc.login(rpc_user, rpc_password).then(() => {
105 | //console.log("Connected to API node:", cs);
106 | this._db = new GrapheneApi(this.ws_rpc, "database");
107 | this._net = new GrapheneApi(this.ws_rpc, "network_broadcast");
108 | this._hist = new GrapheneApi(this.ws_rpc, "history");
109 | if (optionalApis.enableCrypto) this._crypt = new GrapheneApi(this.ws_rpc, "crypto");
110 | var db_promise = this._db.init().then(() => {
111 | //https://github.com/cryptonomex/graphene/wiki/chain-locked-tx
112 | return this._db.exec("get_chain_id", []).then(_chain_id => {
113 | this.chain_id = _chain_id;
114 | return ChainConfig.setChainId(_chain_id);
115 | //DEBUG console.log("chain_id1",this.chain_id)
116 | });
117 | });
118 | this.ws_rpc.on_reconnect = () => {
119 | if (!this.ws_rpc) return;
120 | this.ws_rpc.login("", "").then(() => {
121 | this._db.init().then(() => {
122 | if (this.statusCb)
123 | this.statusCb("reconnect");
124 | });
125 | this._net.init();
126 | this._hist.init();
127 | if (optionalApis.enableCrypto) this._crypt.init();
128 | });
129 | };
130 | this.ws_rpc.on_close = () => {
131 | Apis.close().then(() => {
132 | if (this.closeCb) this.closeCb();
133 | });
134 | };
135 | let initPromises = [
136 | db_promise,
137 | this._net.init(),
138 | this._hist.init(),
139 | ];
140 |
141 | if (optionalApis.enableCrypto) initPromises.push(this._crypt.init());
142 | return Promise.all(initPromises);
143 | }).catch(err => {
144 | console.error(cs, "Failed to initialize with error", err && err.message);
145 | return Apis.close().then(() => {
146 | throw err;
147 | });
148 | });
149 | }
150 |
151 | close() {
152 | if (this.ws_rpc && this.ws_rpc.ws.readyState === 1) {
153 | return this.ws_rpc.close()
154 | .then(() => {
155 | this.ws_rpc = null;
156 | });
157 | }
158 | this.ws_rpc = null;
159 | return Promise.resolve();
160 | }
161 |
162 | db_api() {
163 | return this._db;
164 | }
165 |
166 | network_api() {
167 | return this._net;
168 | }
169 |
170 | history_api() {
171 | return this._hist;
172 | }
173 |
174 | crypto_api() {
175 | return this._crypt;
176 | }
177 |
178 | setRpcConnectionStatusCallback(callback) {
179 | this.statusCb = callback;
180 | }
181 |
182 | }
183 |
184 | export default Apis;
185 |
--------------------------------------------------------------------------------
/lib/src/ChainConfig.js:
--------------------------------------------------------------------------------
1 | let _this;
2 |
3 | let ecc_config = {
4 | address_prefix: "GXC"
5 | };
6 |
7 | _this = {
8 | core_asset: "GXC",
9 | address_prefix: "GXC",
10 | expire_in_secs: 15,
11 | expire_in_secs_proposal: 24 * 60 * 60,
12 | review_in_secs_committee: 24 * 60 * 60,
13 | networks: {
14 | GXC: {
15 | core_asset: "GXC",
16 | address_prefix: "GXC",
17 | chain_id: "4f7d07969c446f8342033acb3ab2ae5044cbe0fde93db02de75bd17fa8fd84b8"
18 | }
19 | },
20 |
21 | /** Set a few properties for known chain IDs. */
22 | setChainId: function(chain_id) {
23 |
24 | let i, len, network, network_name, ref;
25 | ref = Object.keys(_this.networks);
26 |
27 | for (i = 0, len = ref.length; i < len; i++) {
28 |
29 | network_name = ref[i];
30 | network = _this.networks[network_name];
31 |
32 | if (network.chain_id === chain_id) {
33 |
34 | _this.network_name = network_name;
35 |
36 | if (network.address_prefix) {
37 | _this.address_prefix = network.address_prefix;
38 | ecc_config.address_prefix = network.address_prefix;
39 | }
40 |
41 | // console.log("INFO Configured for", network_name, ":", network.core_asset, "\n");
42 |
43 | return {
44 | network_name: network_name,
45 | network: network
46 | }
47 | }
48 | }
49 |
50 | if (!_this.network_name) {
51 | console.log("Unknown chain id (this may be a testnet)", chain_id);
52 | }
53 |
54 | },
55 |
56 | reset: function() {
57 | _this.core_asset = "GXC";
58 | _this.address_prefix = "GXC";
59 | ecc_config.address_prefix = "GXC";
60 | _this.expire_in_secs = 15;
61 | _this.expire_in_secs_proposal = 24 * 60 * 60;
62 |
63 | console.log("Chain config reset");
64 | },
65 |
66 | setPrefix: function(prefix = "GXC") {
67 | _this.address_prefix = prefix;
68 | ecc_config.address_prefix = prefix;
69 | }
70 | }
71 |
72 | export default _this;
73 |
--------------------------------------------------------------------------------
/lib/src/ChainWebSocket.js:
--------------------------------------------------------------------------------
1 | let WebSocketClient;
2 | if (typeof WebSocket === "undefined" && !process.env.browser) {
3 | WebSocketClient = require("ws");
4 | } else {
5 | WebSocketClient = WebSocket;
6 | }
7 |
8 | var SOCKET_DEBUG = false;
9 |
10 | function getWebSocketClient(autoReconnect){
11 | if( !autoReconnect && (typeof(WebSocket) !== "undefined" && typeof document !== "undefined") ) {
12 | return WebSocket;
13 | }
14 | return WebSocketClient;
15 | }
16 |
17 | let keep_alive_interval = 5000;
18 | let max_send_life = 5;
19 | let max_recv_life = max_send_life * 2;
20 |
21 | class ChainWebSocket {
22 |
23 | constructor(ws_server, statusCb, connectTimeout = 5000, autoReconnect=true, keepAliveCb=null) {
24 | this.url = ws_server;
25 | this.statusCb = statusCb;
26 | this.connectionTimeout = setTimeout(() => {
27 | if (this.current_reject) {
28 | var reject = this.current_reject;
29 | this.current_reject = null;
30 | this.close();
31 | reject(new Error("Connection attempt timed out after " + connectTimeout / 1000 + "s"));
32 | }
33 | }, connectTimeout);
34 |
35 | this.current_reject = null;
36 | this.on_reconnect = null;
37 | this.closed = false;
38 | this.send_life = max_send_life;
39 | this.recv_life = max_recv_life;
40 | this.keepAliveCb = keepAliveCb;
41 | this.connect_promise = new Promise((resolve, reject) => {
42 | this.current_reject = reject;
43 | let WsClient = getWebSocketClient(autoReconnect);
44 | try {
45 | this.ws = new WsClient(ws_server);
46 | } catch (error) {
47 | this.ws = {readyState: 3, close: () => {}}; // DISCONNECTED
48 | reject(new Error("Invalid url", ws_server, " closed"))
49 | // return this.close().then(() => {
50 | // console.log("Invalid url", ws_server, " closed");
51 | // // throw new Error("Invalid url", ws_server, " closed")
52 | // // return this.current_reject(Error("Invalid websocket url: " + ws_server));
53 | // })
54 | }
55 |
56 | this.ws.onopen = () => {
57 | clearTimeout(this.connectionTimeout);
58 | if(this.statusCb) this.statusCb("open");
59 | if(this.on_reconnect) this.on_reconnect();
60 | this.keepalive_timer = setInterval(()=>{
61 |
62 | this.recv_life --;
63 | if( this.recv_life == 0){
64 | console.error(this.url + ' connection is dead, terminating ws');
65 | this.close();
66 | // clearInterval(this.keepalive_timer);
67 | // this.keepalive_timer = undefined;
68 | return;
69 | }
70 | this.send_life --;
71 | if( this.send_life == 0) {
72 | // this.ws.ping('', false, true);
73 | if ( this.keepAliveCb ){
74 | this.keepAliveCb(this.closed);
75 | }
76 | this.send_life = max_send_life;
77 | }
78 | }, 5000);
79 | this.current_reject = null;
80 | resolve();
81 | }
82 | this.ws.onerror = (error) => {
83 | if( this.keepalive_timer ){
84 | clearInterval(this.keepalive_timer);
85 | this.keepalive_timer = undefined;
86 | }
87 | clearTimeout(this.connectionTimeout);
88 | if(this.statusCb) this.statusCb("error");
89 |
90 | if (this.current_reject) {
91 | this.current_reject(error);
92 | }
93 | };
94 | this.ws.onmessage = (message) => {
95 | this.recv_life = max_recv_life;
96 | this.listener(JSON.parse(message.data));
97 | }
98 | this.ws.onclose = () => {
99 | this.closed = true;
100 | if( this.keepalive_timer ){
101 | clearInterval(this.keepalive_timer);
102 | this.keepalive_timer = undefined;
103 | }
104 | var err = new Error('connection closed');
105 | for(var cbId = this.responseCbId + 1; cbId <= this.cbId; cbId +=1 ){
106 | this.cbs[cbId].reject(err);
107 | }
108 | if(this.statusCb) this.statusCb("closed");
109 | if (this._closeCb) this._closeCb();
110 | if (this.on_close) this.on_close();
111 | };
112 | });
113 | this.cbId = 0;
114 | this.responseCbId = 0;
115 | this.cbs = {};
116 | this.subs = {};
117 | this.unsub = {};
118 | }
119 |
120 | call(params) {
121 | let method = params[1];
122 | if (SOCKET_DEBUG)
123 | console.log("[ChainWebSocket] >---- call -----> \"id\":" + (this.cbId + 1), JSON.stringify(params));
124 |
125 | this.cbId += 1;
126 |
127 | if (method === "set_subscribe_callback" || method === "subscribe_to_market" ||
128 | method === "broadcast_transaction_with_callback" || method === "set_pending_transaction_callback" ||
129 | method === 'set_data_transaction_subscribe_callback'
130 | ) {
131 | // Store callback in subs map
132 | this.subs[this.cbId] = {
133 | callback: params[2][0]
134 | };
135 |
136 | // Replace callback with the callback id
137 | params[2][0] = this.cbId;
138 | }
139 |
140 | if (method === "unsubscribe_from_market" || method === "unsubscribe_from_accounts" || method ==='unsubscribe_from_data_transaction') {
141 | if (typeof params[2][0] !== "function") {
142 | throw new Error("First parameter of unsub must be the original callback");
143 | }
144 |
145 | let unSubCb = params[2].splice(0, 1)[0];
146 |
147 | // Find the corresponding subscription
148 | for (let id in this.subs) {
149 | if (this.subs[id].callback === unSubCb) {
150 | this.unsub[this.cbId] = id;
151 | break;
152 | }
153 | }
154 | }
155 |
156 | var request = {
157 | method: "call",
158 | params: params
159 | };
160 | request.id = this.cbId;
161 |
162 | return new Promise((resolve, reject) => {
163 | this.cbs[this.cbId] = {
164 | time: new Date(),
165 | resolve: resolve,
166 | reject: reject
167 | };
168 | this.ws.onerror = (error) => {
169 | console.log("!!! ChainWebSocket Error ", error);
170 | reject(error);
171 | };
172 | this.ws.send(JSON.stringify(request));
173 | });
174 |
175 | }
176 |
177 | listener(response) {
178 | if (SOCKET_DEBUG)
179 | console.log("[ChainWebSocket] <---- reply ----<", JSON.stringify(response));
180 |
181 | let sub = false,
182 | callback = null;
183 |
184 | if (response.method === "notice") {
185 | sub = true;
186 | response.id = response.params[0];
187 | }
188 |
189 | if (!sub) {
190 | callback = this.cbs[response.id];
191 | this.responseCbId = response.id;
192 | } else {
193 | callback = this.subs[response.id].callback;
194 | }
195 |
196 | if (callback && !sub) {
197 | if (response.error) {
198 | callback.reject(response.error);
199 | } else {
200 | callback.resolve(response.result);
201 | }
202 | delete this.cbs[response.id];
203 |
204 | if (this.unsub[response.id]) {
205 | delete this.subs[this.unsub[response.id]];
206 | delete this.unsub[response.id];
207 | }
208 |
209 | } else if (callback && sub) {
210 | callback(response.params[1]);
211 | } else {
212 | console.log("Warning: unknown websocket response: ", response);
213 | }
214 | }
215 |
216 | login(user, password) {
217 | return this.connect_promise.then(() => {
218 | return this.call([1, "login", [user, password]]);
219 | });
220 | }
221 |
222 | close() {
223 | return new Promise((res) => {
224 | clearInterval(this.keepalive_timer);
225 | this.keepalive_timer = undefined;
226 | this._closeCb = () => {
227 | res();
228 | this._closeCb = null;
229 | };
230 | if (!this.ws) {
231 | console.log("Websocket already cleared", this);
232 | return res();
233 | }
234 | if( this.ws.terminate ) {
235 | this.ws.terminate();
236 | }
237 | else{
238 | this.ws.close();
239 | }
240 | if (this.ws.readyState === 3) res();
241 | })
242 | }
243 | }
244 |
245 | export default ChainWebSocket;
246 |
--------------------------------------------------------------------------------
/lib/src/ConnectionManager.js:
--------------------------------------------------------------------------------
1 | import Apis from "./ApiInstances";
2 | import ChainWebSocket from "./ChainWebSocket";
3 |
4 | class Manager {
5 | constructor({url, urls,autoFallback, closeCb, optionalApis, urlChangeCallback}) {
6 | this.url = url;
7 | this.urls = urls.filter(a => a !== url);
8 | this.autoFallback = autoFallback;
9 | this.closeCb = closeCb;
10 | this.optionalApis = optionalApis || {};
11 | this.isConnected = false;
12 | this.urlChangeCallback = urlChangeCallback;
13 | }
14 |
15 | setCloseCb(cb) {
16 | this.closeCb = cb;
17 | }
18 |
19 | static close() {
20 | return Apis.close();
21 | }
22 |
23 | logFailure(method, url, err) {
24 | let message = err && err.message ? err.message : "";
25 | console.error(method, "Failed to connect to " + url + (message ? (" Error: " + JSON.stringify(message)) : ""));
26 | }
27 |
28 | _onClose() {
29 | this.isConnected = false;
30 | if (this.closeCb) {
31 | this.closeCb();
32 | this.setCloseCb(null);
33 | }
34 | if (this.autoFallback) {
35 | this.connectWithFallback()
36 | };
37 | }
38 |
39 | connect(connect = true, url = this.url) {
40 | return new Promise((resolve, reject) => {
41 | console.log('Close current instance before create new connection');
42 | Apis.close().then(()=>{
43 | Apis.instance(url, connect, 10000, this.optionalApis, this._onClose.bind(this)).init_promise
44 | .then((res) => {
45 | this.url = url;
46 | this.isConnected = true;
47 | resolve(res);
48 | }).catch((err) => {
49 | Apis.close().then(() => {
50 | reject(err);
51 | });
52 | });
53 | });
54 | });
55 | }
56 |
57 | connectWithFallback(connect = true, url = this.url, index = 0, resolve = null, reject = null) {
58 | if (reject && (index > this.urls.length)) return reject(new Error("Tried "+ (index) +" connections, none of which worked: " + JSON.stringify(this.urls.concat(this.url))));
59 | const fallback = (err, resolve, reject) => {
60 | if (this.urlChangeCallback) this.urlChangeCallback(this.urls[index]);
61 | return this.connectWithFallback(connect, this.urls[index], index + 1, resolve, reject);
62 | }
63 | if (resolve && reject) {
64 | return this.connect(connect, url)
65 | .then(resolve)
66 | .catch((err) => {
67 | fallback(err, resolve, reject);
68 | })
69 | } else {
70 | return new Promise((resolve, reject) => {
71 | this.connect(connect, undefined)
72 | .then(resolve)
73 | .catch((err) => {
74 | fallback(err, resolve, reject);
75 | })
76 | })
77 | }
78 | }
79 |
80 | checkConnections(rpc_user = "", rpc_password = "", resolve, reject) {
81 | let connectionStartTimes = {};
82 | const checkFunction = (resolve, reject) => {
83 | let fullList = this.urls.concat(this.url);
84 | let connectionPromises = [];
85 |
86 | fullList.forEach(url => {
87 | /* Use default timeout and no reconnecting-websocket */
88 | let conn = new ChainWebSocket(url, () => {}, undefined, false);
89 | connectionStartTimes[url] = new Date().getTime();
90 | connectionPromises.push(() => {
91 | return conn.login(rpc_user, rpc_password).then((data) => {
92 | let result = {[url]: new Date().getTime() - connectionStartTimes[url]};
93 | return conn.close().then(() => result);
94 | }).catch(err => {
95 | this.logFailure("checkConnections", url, err);
96 | if (url === this.url) {
97 | this.url = this.urls[0];
98 | } else {
99 | this.urls = this.urls.filter(a => a !== url);
100 | }
101 | return conn.close().then(() => null);
102 | })
103 | });
104 | });
105 |
106 | Promise.all(
107 | connectionPromises.map(a => a())
108 | ).then((res) => {
109 | let final = res
110 | .filter(a => !!a)
111 | .sort((a, b) => {
112 | return Object.values(a)[0] - Object.values(b)[0];
113 | }).reduce((f, a) => {
114 | let key = Object.keys(a)[0];
115 | f[key] = a[key];
116 | return f;
117 | }, {});
118 |
119 | console.log(`Checked ${res.length} connections, ${res.length - Object.keys(final).length} failed`);
120 | return resolve(final);
121 | }).catch(() => {
122 | return this.checkConnections(rpc_user, rpc_password, resolve, reject);
123 | });
124 | };
125 |
126 | if (resolve && reject) {
127 | checkFunction(resolve, reject);
128 | } else {
129 | return new Promise(checkFunction)
130 | }
131 |
132 | }
133 | }
134 |
135 | export default Manager;
136 |
--------------------------------------------------------------------------------
/lib/src/GXChainApi.js:
--------------------------------------------------------------------------------
1 | class GXChainApi {
2 |
3 | constructor(ws_rpc, api_name) {
4 | this.ws_rpc = ws_rpc;
5 | this.api_name = api_name;
6 | }
7 |
8 | init() {
9 | var self = this
10 | return this.ws_rpc.call([1, this.api_name, []]).then( response => {
11 | //console.log("[GXChainApi.js:11] ----- GXChainApi.init ----->", this.api_name, response);
12 | self.api_id = response;
13 | return self;
14 | });
15 | }
16 |
17 | exec(method, params) {
18 | return this.ws_rpc.call([this.api_id, method, params]).catch(error => {
19 | console.log("!!! GXChainApi error: ", method, params, error, JSON.stringify(error));
20 | throw error;
21 | });
22 | }
23 | }
24 |
25 | export default GXChainApi;
26 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gxbjs-ws",
3 | "version": "1.2.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/cli": {
8 | "version": "7.10.1",
9 | "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.10.1.tgz",
10 | "integrity": "sha512-cVB+dXeGhMOqViIaZs3A9OUAe4pKw4SBNdMw6yHJMYR7s4TB+Cei7ThquV/84O19PdIFWuwe03vxxES0BHUm5g==",
11 | "dev": true,
12 | "requires": {
13 | "chokidar": "^2.1.8",
14 | "commander": "^4.0.1",
15 | "convert-source-map": "^1.1.0",
16 | "fs-readdir-recursive": "^1.1.0",
17 | "glob": "^7.0.0",
18 | "lodash": "^4.17.13",
19 | "make-dir": "^2.1.0",
20 | "slash": "^2.0.0",
21 | "source-map": "^0.5.0"
22 | }
23 | },
24 | "@babel/code-frame": {
25 | "version": "7.10.1",
26 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz",
27 | "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==",
28 | "dev": true,
29 | "requires": {
30 | "@babel/highlight": "^7.10.1"
31 | }
32 | },
33 | "@babel/compat-data": {
34 | "version": "7.10.1",
35 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz",
36 | "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==",
37 | "dev": true,
38 | "requires": {
39 | "browserslist": "^4.12.0",
40 | "invariant": "^2.2.4",
41 | "semver": "^5.5.0"
42 | }
43 | },
44 | "@babel/core": {
45 | "version": "7.10.2",
46 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.2.tgz",
47 | "integrity": "sha512-KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==",
48 | "dev": true,
49 | "requires": {
50 | "@babel/code-frame": "^7.10.1",
51 | "@babel/generator": "^7.10.2",
52 | "@babel/helper-module-transforms": "^7.10.1",
53 | "@babel/helpers": "^7.10.1",
54 | "@babel/parser": "^7.10.2",
55 | "@babel/template": "^7.10.1",
56 | "@babel/traverse": "^7.10.1",
57 | "@babel/types": "^7.10.2",
58 | "convert-source-map": "^1.7.0",
59 | "debug": "^4.1.0",
60 | "gensync": "^1.0.0-beta.1",
61 | "json5": "^2.1.2",
62 | "lodash": "^4.17.13",
63 | "resolve": "^1.3.2",
64 | "semver": "^5.4.1",
65 | "source-map": "^0.5.0"
66 | },
67 | "dependencies": {
68 | "debug": {
69 | "version": "4.1.1",
70 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
71 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
72 | "dev": true,
73 | "requires": {
74 | "ms": "^2.1.1"
75 | }
76 | },
77 | "ms": {
78 | "version": "2.1.2",
79 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
80 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
81 | "dev": true
82 | }
83 | }
84 | },
85 | "@babel/generator": {
86 | "version": "7.10.2",
87 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz",
88 | "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==",
89 | "dev": true,
90 | "requires": {
91 | "@babel/types": "^7.10.2",
92 | "jsesc": "^2.5.1",
93 | "lodash": "^4.17.13",
94 | "source-map": "^0.5.0"
95 | }
96 | },
97 | "@babel/helper-annotate-as-pure": {
98 | "version": "7.10.1",
99 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz",
100 | "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==",
101 | "dev": true,
102 | "requires": {
103 | "@babel/types": "^7.10.1"
104 | }
105 | },
106 | "@babel/helper-builder-binary-assignment-operator-visitor": {
107 | "version": "7.10.1",
108 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz",
109 | "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==",
110 | "dev": true,
111 | "requires": {
112 | "@babel/helper-explode-assignable-expression": "^7.10.1",
113 | "@babel/types": "^7.10.1"
114 | }
115 | },
116 | "@babel/helper-compilation-targets": {
117 | "version": "7.10.2",
118 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz",
119 | "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==",
120 | "dev": true,
121 | "requires": {
122 | "@babel/compat-data": "^7.10.1",
123 | "browserslist": "^4.12.0",
124 | "invariant": "^2.2.4",
125 | "levenary": "^1.1.1",
126 | "semver": "^5.5.0"
127 | }
128 | },
129 | "@babel/helper-create-class-features-plugin": {
130 | "version": "7.10.2",
131 | "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz",
132 | "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==",
133 | "dev": true,
134 | "requires": {
135 | "@babel/helper-function-name": "^7.10.1",
136 | "@babel/helper-member-expression-to-functions": "^7.10.1",
137 | "@babel/helper-optimise-call-expression": "^7.10.1",
138 | "@babel/helper-plugin-utils": "^7.10.1",
139 | "@babel/helper-replace-supers": "^7.10.1",
140 | "@babel/helper-split-export-declaration": "^7.10.1"
141 | }
142 | },
143 | "@babel/helper-create-regexp-features-plugin": {
144 | "version": "7.10.1",
145 | "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz",
146 | "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==",
147 | "dev": true,
148 | "requires": {
149 | "@babel/helper-annotate-as-pure": "^7.10.1",
150 | "@babel/helper-regex": "^7.10.1",
151 | "regexpu-core": "^4.7.0"
152 | }
153 | },
154 | "@babel/helper-define-map": {
155 | "version": "7.10.1",
156 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz",
157 | "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==",
158 | "dev": true,
159 | "requires": {
160 | "@babel/helper-function-name": "^7.10.1",
161 | "@babel/types": "^7.10.1",
162 | "lodash": "^4.17.13"
163 | }
164 | },
165 | "@babel/helper-explode-assignable-expression": {
166 | "version": "7.10.1",
167 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz",
168 | "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==",
169 | "dev": true,
170 | "requires": {
171 | "@babel/traverse": "^7.10.1",
172 | "@babel/types": "^7.10.1"
173 | }
174 | },
175 | "@babel/helper-function-name": {
176 | "version": "7.10.1",
177 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz",
178 | "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==",
179 | "dev": true,
180 | "requires": {
181 | "@babel/helper-get-function-arity": "^7.10.1",
182 | "@babel/template": "^7.10.1",
183 | "@babel/types": "^7.10.1"
184 | }
185 | },
186 | "@babel/helper-get-function-arity": {
187 | "version": "7.10.1",
188 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz",
189 | "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==",
190 | "dev": true,
191 | "requires": {
192 | "@babel/types": "^7.10.1"
193 | }
194 | },
195 | "@babel/helper-hoist-variables": {
196 | "version": "7.10.1",
197 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz",
198 | "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==",
199 | "dev": true,
200 | "requires": {
201 | "@babel/types": "^7.10.1"
202 | }
203 | },
204 | "@babel/helper-member-expression-to-functions": {
205 | "version": "7.10.1",
206 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz",
207 | "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==",
208 | "dev": true,
209 | "requires": {
210 | "@babel/types": "^7.10.1"
211 | }
212 | },
213 | "@babel/helper-module-imports": {
214 | "version": "7.10.1",
215 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz",
216 | "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==",
217 | "dev": true,
218 | "requires": {
219 | "@babel/types": "^7.10.1"
220 | }
221 | },
222 | "@babel/helper-module-transforms": {
223 | "version": "7.10.1",
224 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz",
225 | "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==",
226 | "dev": true,
227 | "requires": {
228 | "@babel/helper-module-imports": "^7.10.1",
229 | "@babel/helper-replace-supers": "^7.10.1",
230 | "@babel/helper-simple-access": "^7.10.1",
231 | "@babel/helper-split-export-declaration": "^7.10.1",
232 | "@babel/template": "^7.10.1",
233 | "@babel/types": "^7.10.1",
234 | "lodash": "^4.17.13"
235 | }
236 | },
237 | "@babel/helper-optimise-call-expression": {
238 | "version": "7.10.1",
239 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz",
240 | "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==",
241 | "dev": true,
242 | "requires": {
243 | "@babel/types": "^7.10.1"
244 | }
245 | },
246 | "@babel/helper-plugin-utils": {
247 | "version": "7.10.1",
248 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz",
249 | "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==",
250 | "dev": true
251 | },
252 | "@babel/helper-regex": {
253 | "version": "7.10.1",
254 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz",
255 | "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==",
256 | "dev": true,
257 | "requires": {
258 | "lodash": "^4.17.13"
259 | }
260 | },
261 | "@babel/helper-remap-async-to-generator": {
262 | "version": "7.10.1",
263 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz",
264 | "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==",
265 | "dev": true,
266 | "requires": {
267 | "@babel/helper-annotate-as-pure": "^7.10.1",
268 | "@babel/helper-wrap-function": "^7.10.1",
269 | "@babel/template": "^7.10.1",
270 | "@babel/traverse": "^7.10.1",
271 | "@babel/types": "^7.10.1"
272 | }
273 | },
274 | "@babel/helper-replace-supers": {
275 | "version": "7.10.1",
276 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz",
277 | "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==",
278 | "dev": true,
279 | "requires": {
280 | "@babel/helper-member-expression-to-functions": "^7.10.1",
281 | "@babel/helper-optimise-call-expression": "^7.10.1",
282 | "@babel/traverse": "^7.10.1",
283 | "@babel/types": "^7.10.1"
284 | }
285 | },
286 | "@babel/helper-simple-access": {
287 | "version": "7.10.1",
288 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz",
289 | "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==",
290 | "dev": true,
291 | "requires": {
292 | "@babel/template": "^7.10.1",
293 | "@babel/types": "^7.10.1"
294 | }
295 | },
296 | "@babel/helper-split-export-declaration": {
297 | "version": "7.10.1",
298 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz",
299 | "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==",
300 | "dev": true,
301 | "requires": {
302 | "@babel/types": "^7.10.1"
303 | }
304 | },
305 | "@babel/helper-validator-identifier": {
306 | "version": "7.10.1",
307 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz",
308 | "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==",
309 | "dev": true
310 | },
311 | "@babel/helper-wrap-function": {
312 | "version": "7.10.1",
313 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz",
314 | "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==",
315 | "dev": true,
316 | "requires": {
317 | "@babel/helper-function-name": "^7.10.1",
318 | "@babel/template": "^7.10.1",
319 | "@babel/traverse": "^7.10.1",
320 | "@babel/types": "^7.10.1"
321 | }
322 | },
323 | "@babel/helpers": {
324 | "version": "7.10.1",
325 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz",
326 | "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==",
327 | "dev": true,
328 | "requires": {
329 | "@babel/template": "^7.10.1",
330 | "@babel/traverse": "^7.10.1",
331 | "@babel/types": "^7.10.1"
332 | }
333 | },
334 | "@babel/highlight": {
335 | "version": "7.10.1",
336 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz",
337 | "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==",
338 | "dev": true,
339 | "requires": {
340 | "@babel/helper-validator-identifier": "^7.10.1",
341 | "chalk": "^2.0.0",
342 | "js-tokens": "^4.0.0"
343 | }
344 | },
345 | "@babel/parser": {
346 | "version": "7.10.2",
347 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz",
348 | "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==",
349 | "dev": true
350 | },
351 | "@babel/plugin-proposal-async-generator-functions": {
352 | "version": "7.10.1",
353 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz",
354 | "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==",
355 | "dev": true,
356 | "requires": {
357 | "@babel/helper-plugin-utils": "^7.10.1",
358 | "@babel/helper-remap-async-to-generator": "^7.10.1",
359 | "@babel/plugin-syntax-async-generators": "^7.8.0"
360 | }
361 | },
362 | "@babel/plugin-proposal-class-properties": {
363 | "version": "7.10.1",
364 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz",
365 | "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==",
366 | "dev": true,
367 | "requires": {
368 | "@babel/helper-create-class-features-plugin": "^7.10.1",
369 | "@babel/helper-plugin-utils": "^7.10.1"
370 | }
371 | },
372 | "@babel/plugin-proposal-dynamic-import": {
373 | "version": "7.10.1",
374 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz",
375 | "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==",
376 | "dev": true,
377 | "requires": {
378 | "@babel/helper-plugin-utils": "^7.10.1",
379 | "@babel/plugin-syntax-dynamic-import": "^7.8.0"
380 | }
381 | },
382 | "@babel/plugin-proposal-json-strings": {
383 | "version": "7.10.1",
384 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz",
385 | "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==",
386 | "dev": true,
387 | "requires": {
388 | "@babel/helper-plugin-utils": "^7.10.1",
389 | "@babel/plugin-syntax-json-strings": "^7.8.0"
390 | }
391 | },
392 | "@babel/plugin-proposal-nullish-coalescing-operator": {
393 | "version": "7.10.1",
394 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz",
395 | "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==",
396 | "dev": true,
397 | "requires": {
398 | "@babel/helper-plugin-utils": "^7.10.1",
399 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
400 | }
401 | },
402 | "@babel/plugin-proposal-numeric-separator": {
403 | "version": "7.10.1",
404 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz",
405 | "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==",
406 | "dev": true,
407 | "requires": {
408 | "@babel/helper-plugin-utils": "^7.10.1",
409 | "@babel/plugin-syntax-numeric-separator": "^7.10.1"
410 | }
411 | },
412 | "@babel/plugin-proposal-object-rest-spread": {
413 | "version": "7.10.1",
414 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz",
415 | "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==",
416 | "dev": true,
417 | "requires": {
418 | "@babel/helper-plugin-utils": "^7.10.1",
419 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
420 | "@babel/plugin-transform-parameters": "^7.10.1"
421 | }
422 | },
423 | "@babel/plugin-proposal-optional-catch-binding": {
424 | "version": "7.10.1",
425 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz",
426 | "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==",
427 | "dev": true,
428 | "requires": {
429 | "@babel/helper-plugin-utils": "^7.10.1",
430 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
431 | }
432 | },
433 | "@babel/plugin-proposal-optional-chaining": {
434 | "version": "7.10.1",
435 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz",
436 | "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==",
437 | "dev": true,
438 | "requires": {
439 | "@babel/helper-plugin-utils": "^7.10.1",
440 | "@babel/plugin-syntax-optional-chaining": "^7.8.0"
441 | }
442 | },
443 | "@babel/plugin-proposal-private-methods": {
444 | "version": "7.10.1",
445 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz",
446 | "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==",
447 | "dev": true,
448 | "requires": {
449 | "@babel/helper-create-class-features-plugin": "^7.10.1",
450 | "@babel/helper-plugin-utils": "^7.10.1"
451 | }
452 | },
453 | "@babel/plugin-proposal-unicode-property-regex": {
454 | "version": "7.10.1",
455 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz",
456 | "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==",
457 | "dev": true,
458 | "requires": {
459 | "@babel/helper-create-regexp-features-plugin": "^7.10.1",
460 | "@babel/helper-plugin-utils": "^7.10.1"
461 | }
462 | },
463 | "@babel/plugin-syntax-async-generators": {
464 | "version": "7.8.4",
465 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
466 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
467 | "dev": true,
468 | "requires": {
469 | "@babel/helper-plugin-utils": "^7.8.0"
470 | }
471 | },
472 | "@babel/plugin-syntax-class-properties": {
473 | "version": "7.10.1",
474 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz",
475 | "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==",
476 | "dev": true,
477 | "requires": {
478 | "@babel/helper-plugin-utils": "^7.10.1"
479 | }
480 | },
481 | "@babel/plugin-syntax-dynamic-import": {
482 | "version": "7.8.3",
483 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
484 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
485 | "dev": true,
486 | "requires": {
487 | "@babel/helper-plugin-utils": "^7.8.0"
488 | }
489 | },
490 | "@babel/plugin-syntax-json-strings": {
491 | "version": "7.8.3",
492 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
493 | "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
494 | "dev": true,
495 | "requires": {
496 | "@babel/helper-plugin-utils": "^7.8.0"
497 | }
498 | },
499 | "@babel/plugin-syntax-nullish-coalescing-operator": {
500 | "version": "7.8.3",
501 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
502 | "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
503 | "dev": true,
504 | "requires": {
505 | "@babel/helper-plugin-utils": "^7.8.0"
506 | }
507 | },
508 | "@babel/plugin-syntax-numeric-separator": {
509 | "version": "7.10.1",
510 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz",
511 | "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==",
512 | "dev": true,
513 | "requires": {
514 | "@babel/helper-plugin-utils": "^7.10.1"
515 | }
516 | },
517 | "@babel/plugin-syntax-object-rest-spread": {
518 | "version": "7.8.3",
519 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
520 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
521 | "dev": true,
522 | "requires": {
523 | "@babel/helper-plugin-utils": "^7.8.0"
524 | }
525 | },
526 | "@babel/plugin-syntax-optional-catch-binding": {
527 | "version": "7.8.3",
528 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
529 | "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
530 | "dev": true,
531 | "requires": {
532 | "@babel/helper-plugin-utils": "^7.8.0"
533 | }
534 | },
535 | "@babel/plugin-syntax-optional-chaining": {
536 | "version": "7.8.3",
537 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
538 | "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
539 | "dev": true,
540 | "requires": {
541 | "@babel/helper-plugin-utils": "^7.8.0"
542 | }
543 | },
544 | "@babel/plugin-syntax-top-level-await": {
545 | "version": "7.10.1",
546 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz",
547 | "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==",
548 | "dev": true,
549 | "requires": {
550 | "@babel/helper-plugin-utils": "^7.10.1"
551 | }
552 | },
553 | "@babel/plugin-transform-arrow-functions": {
554 | "version": "7.10.1",
555 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz",
556 | "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==",
557 | "dev": true,
558 | "requires": {
559 | "@babel/helper-plugin-utils": "^7.10.1"
560 | }
561 | },
562 | "@babel/plugin-transform-async-to-generator": {
563 | "version": "7.10.1",
564 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz",
565 | "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==",
566 | "dev": true,
567 | "requires": {
568 | "@babel/helper-module-imports": "^7.10.1",
569 | "@babel/helper-plugin-utils": "^7.10.1",
570 | "@babel/helper-remap-async-to-generator": "^7.10.1"
571 | }
572 | },
573 | "@babel/plugin-transform-block-scoped-functions": {
574 | "version": "7.10.1",
575 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz",
576 | "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==",
577 | "dev": true,
578 | "requires": {
579 | "@babel/helper-plugin-utils": "^7.10.1"
580 | }
581 | },
582 | "@babel/plugin-transform-block-scoping": {
583 | "version": "7.10.1",
584 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz",
585 | "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==",
586 | "dev": true,
587 | "requires": {
588 | "@babel/helper-plugin-utils": "^7.10.1",
589 | "lodash": "^4.17.13"
590 | }
591 | },
592 | "@babel/plugin-transform-classes": {
593 | "version": "7.10.1",
594 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz",
595 | "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==",
596 | "dev": true,
597 | "requires": {
598 | "@babel/helper-annotate-as-pure": "^7.10.1",
599 | "@babel/helper-define-map": "^7.10.1",
600 | "@babel/helper-function-name": "^7.10.1",
601 | "@babel/helper-optimise-call-expression": "^7.10.1",
602 | "@babel/helper-plugin-utils": "^7.10.1",
603 | "@babel/helper-replace-supers": "^7.10.1",
604 | "@babel/helper-split-export-declaration": "^7.10.1",
605 | "globals": "^11.1.0"
606 | }
607 | },
608 | "@babel/plugin-transform-computed-properties": {
609 | "version": "7.10.1",
610 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz",
611 | "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==",
612 | "dev": true,
613 | "requires": {
614 | "@babel/helper-plugin-utils": "^7.10.1"
615 | }
616 | },
617 | "@babel/plugin-transform-destructuring": {
618 | "version": "7.10.1",
619 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz",
620 | "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==",
621 | "dev": true,
622 | "requires": {
623 | "@babel/helper-plugin-utils": "^7.10.1"
624 | }
625 | },
626 | "@babel/plugin-transform-dotall-regex": {
627 | "version": "7.10.1",
628 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz",
629 | "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==",
630 | "dev": true,
631 | "requires": {
632 | "@babel/helper-create-regexp-features-plugin": "^7.10.1",
633 | "@babel/helper-plugin-utils": "^7.10.1"
634 | }
635 | },
636 | "@babel/plugin-transform-duplicate-keys": {
637 | "version": "7.10.1",
638 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz",
639 | "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==",
640 | "dev": true,
641 | "requires": {
642 | "@babel/helper-plugin-utils": "^7.10.1"
643 | }
644 | },
645 | "@babel/plugin-transform-exponentiation-operator": {
646 | "version": "7.10.1",
647 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz",
648 | "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==",
649 | "dev": true,
650 | "requires": {
651 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1",
652 | "@babel/helper-plugin-utils": "^7.10.1"
653 | }
654 | },
655 | "@babel/plugin-transform-for-of": {
656 | "version": "7.10.1",
657 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz",
658 | "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==",
659 | "dev": true,
660 | "requires": {
661 | "@babel/helper-plugin-utils": "^7.10.1"
662 | }
663 | },
664 | "@babel/plugin-transform-function-name": {
665 | "version": "7.10.1",
666 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz",
667 | "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==",
668 | "dev": true,
669 | "requires": {
670 | "@babel/helper-function-name": "^7.10.1",
671 | "@babel/helper-plugin-utils": "^7.10.1"
672 | }
673 | },
674 | "@babel/plugin-transform-literals": {
675 | "version": "7.10.1",
676 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz",
677 | "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==",
678 | "dev": true,
679 | "requires": {
680 | "@babel/helper-plugin-utils": "^7.10.1"
681 | }
682 | },
683 | "@babel/plugin-transform-member-expression-literals": {
684 | "version": "7.10.1",
685 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz",
686 | "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==",
687 | "dev": true,
688 | "requires": {
689 | "@babel/helper-plugin-utils": "^7.10.1"
690 | }
691 | },
692 | "@babel/plugin-transform-modules-amd": {
693 | "version": "7.10.1",
694 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz",
695 | "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==",
696 | "dev": true,
697 | "requires": {
698 | "@babel/helper-module-transforms": "^7.10.1",
699 | "@babel/helper-plugin-utils": "^7.10.1",
700 | "babel-plugin-dynamic-import-node": "^2.3.3"
701 | }
702 | },
703 | "@babel/plugin-transform-modules-commonjs": {
704 | "version": "7.10.1",
705 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz",
706 | "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==",
707 | "dev": true,
708 | "requires": {
709 | "@babel/helper-module-transforms": "^7.10.1",
710 | "@babel/helper-plugin-utils": "^7.10.1",
711 | "@babel/helper-simple-access": "^7.10.1",
712 | "babel-plugin-dynamic-import-node": "^2.3.3"
713 | }
714 | },
715 | "@babel/plugin-transform-modules-systemjs": {
716 | "version": "7.10.1",
717 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz",
718 | "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==",
719 | "dev": true,
720 | "requires": {
721 | "@babel/helper-hoist-variables": "^7.10.1",
722 | "@babel/helper-module-transforms": "^7.10.1",
723 | "@babel/helper-plugin-utils": "^7.10.1",
724 | "babel-plugin-dynamic-import-node": "^2.3.3"
725 | }
726 | },
727 | "@babel/plugin-transform-modules-umd": {
728 | "version": "7.10.1",
729 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz",
730 | "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==",
731 | "dev": true,
732 | "requires": {
733 | "@babel/helper-module-transforms": "^7.10.1",
734 | "@babel/helper-plugin-utils": "^7.10.1"
735 | }
736 | },
737 | "@babel/plugin-transform-named-capturing-groups-regex": {
738 | "version": "7.8.3",
739 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz",
740 | "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==",
741 | "dev": true,
742 | "requires": {
743 | "@babel/helper-create-regexp-features-plugin": "^7.8.3"
744 | }
745 | },
746 | "@babel/plugin-transform-new-target": {
747 | "version": "7.10.1",
748 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz",
749 | "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==",
750 | "dev": true,
751 | "requires": {
752 | "@babel/helper-plugin-utils": "^7.10.1"
753 | }
754 | },
755 | "@babel/plugin-transform-object-super": {
756 | "version": "7.10.1",
757 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz",
758 | "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==",
759 | "dev": true,
760 | "requires": {
761 | "@babel/helper-plugin-utils": "^7.10.1",
762 | "@babel/helper-replace-supers": "^7.10.1"
763 | }
764 | },
765 | "@babel/plugin-transform-parameters": {
766 | "version": "7.10.1",
767 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz",
768 | "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==",
769 | "dev": true,
770 | "requires": {
771 | "@babel/helper-get-function-arity": "^7.10.1",
772 | "@babel/helper-plugin-utils": "^7.10.1"
773 | }
774 | },
775 | "@babel/plugin-transform-property-literals": {
776 | "version": "7.10.1",
777 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz",
778 | "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==",
779 | "dev": true,
780 | "requires": {
781 | "@babel/helper-plugin-utils": "^7.10.1"
782 | }
783 | },
784 | "@babel/plugin-transform-regenerator": {
785 | "version": "7.10.1",
786 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz",
787 | "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==",
788 | "dev": true,
789 | "requires": {
790 | "regenerator-transform": "^0.14.2"
791 | }
792 | },
793 | "@babel/plugin-transform-reserved-words": {
794 | "version": "7.10.1",
795 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz",
796 | "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==",
797 | "dev": true,
798 | "requires": {
799 | "@babel/helper-plugin-utils": "^7.10.1"
800 | }
801 | },
802 | "@babel/plugin-transform-runtime": {
803 | "version": "7.10.1",
804 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.1.tgz",
805 | "integrity": "sha512-4w2tcglDVEwXJ5qxsY++DgWQdNJcCCsPxfT34wCUwIf2E7dI7pMpH8JczkMBbgBTNzBX62SZlNJ9H+De6Zebaw==",
806 | "dev": true,
807 | "requires": {
808 | "@babel/helper-module-imports": "^7.10.1",
809 | "@babel/helper-plugin-utils": "^7.10.1",
810 | "resolve": "^1.8.1",
811 | "semver": "^5.5.1"
812 | },
813 | "dependencies": {
814 | "path-parse": {
815 | "version": "1.0.6",
816 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
817 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
818 | "dev": true
819 | },
820 | "resolve": {
821 | "version": "1.17.0",
822 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
823 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
824 | "dev": true,
825 | "requires": {
826 | "path-parse": "^1.0.6"
827 | }
828 | }
829 | }
830 | },
831 | "@babel/plugin-transform-shorthand-properties": {
832 | "version": "7.10.1",
833 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz",
834 | "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==",
835 | "dev": true,
836 | "requires": {
837 | "@babel/helper-plugin-utils": "^7.10.1"
838 | }
839 | },
840 | "@babel/plugin-transform-spread": {
841 | "version": "7.10.1",
842 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz",
843 | "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==",
844 | "dev": true,
845 | "requires": {
846 | "@babel/helper-plugin-utils": "^7.10.1"
847 | }
848 | },
849 | "@babel/plugin-transform-sticky-regex": {
850 | "version": "7.10.1",
851 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz",
852 | "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==",
853 | "dev": true,
854 | "requires": {
855 | "@babel/helper-plugin-utils": "^7.10.1",
856 | "@babel/helper-regex": "^7.10.1"
857 | }
858 | },
859 | "@babel/plugin-transform-template-literals": {
860 | "version": "7.10.1",
861 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz",
862 | "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==",
863 | "dev": true,
864 | "requires": {
865 | "@babel/helper-annotate-as-pure": "^7.10.1",
866 | "@babel/helper-plugin-utils": "^7.10.1"
867 | }
868 | },
869 | "@babel/plugin-transform-typeof-symbol": {
870 | "version": "7.10.1",
871 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz",
872 | "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==",
873 | "dev": true,
874 | "requires": {
875 | "@babel/helper-plugin-utils": "^7.10.1"
876 | }
877 | },
878 | "@babel/plugin-transform-unicode-escapes": {
879 | "version": "7.10.1",
880 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz",
881 | "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==",
882 | "dev": true,
883 | "requires": {
884 | "@babel/helper-plugin-utils": "^7.10.1"
885 | }
886 | },
887 | "@babel/plugin-transform-unicode-regex": {
888 | "version": "7.10.1",
889 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz",
890 | "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==",
891 | "dev": true,
892 | "requires": {
893 | "@babel/helper-create-regexp-features-plugin": "^7.10.1",
894 | "@babel/helper-plugin-utils": "^7.10.1"
895 | }
896 | },
897 | "@babel/preset-env": {
898 | "version": "7.10.2",
899 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz",
900 | "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==",
901 | "dev": true,
902 | "requires": {
903 | "@babel/compat-data": "^7.10.1",
904 | "@babel/helper-compilation-targets": "^7.10.2",
905 | "@babel/helper-module-imports": "^7.10.1",
906 | "@babel/helper-plugin-utils": "^7.10.1",
907 | "@babel/plugin-proposal-async-generator-functions": "^7.10.1",
908 | "@babel/plugin-proposal-class-properties": "^7.10.1",
909 | "@babel/plugin-proposal-dynamic-import": "^7.10.1",
910 | "@babel/plugin-proposal-json-strings": "^7.10.1",
911 | "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1",
912 | "@babel/plugin-proposal-numeric-separator": "^7.10.1",
913 | "@babel/plugin-proposal-object-rest-spread": "^7.10.1",
914 | "@babel/plugin-proposal-optional-catch-binding": "^7.10.1",
915 | "@babel/plugin-proposal-optional-chaining": "^7.10.1",
916 | "@babel/plugin-proposal-private-methods": "^7.10.1",
917 | "@babel/plugin-proposal-unicode-property-regex": "^7.10.1",
918 | "@babel/plugin-syntax-async-generators": "^7.8.0",
919 | "@babel/plugin-syntax-class-properties": "^7.10.1",
920 | "@babel/plugin-syntax-dynamic-import": "^7.8.0",
921 | "@babel/plugin-syntax-json-strings": "^7.8.0",
922 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
923 | "@babel/plugin-syntax-numeric-separator": "^7.10.1",
924 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
925 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
926 | "@babel/plugin-syntax-optional-chaining": "^7.8.0",
927 | "@babel/plugin-syntax-top-level-await": "^7.10.1",
928 | "@babel/plugin-transform-arrow-functions": "^7.10.1",
929 | "@babel/plugin-transform-async-to-generator": "^7.10.1",
930 | "@babel/plugin-transform-block-scoped-functions": "^7.10.1",
931 | "@babel/plugin-transform-block-scoping": "^7.10.1",
932 | "@babel/plugin-transform-classes": "^7.10.1",
933 | "@babel/plugin-transform-computed-properties": "^7.10.1",
934 | "@babel/plugin-transform-destructuring": "^7.10.1",
935 | "@babel/plugin-transform-dotall-regex": "^7.10.1",
936 | "@babel/plugin-transform-duplicate-keys": "^7.10.1",
937 | "@babel/plugin-transform-exponentiation-operator": "^7.10.1",
938 | "@babel/plugin-transform-for-of": "^7.10.1",
939 | "@babel/plugin-transform-function-name": "^7.10.1",
940 | "@babel/plugin-transform-literals": "^7.10.1",
941 | "@babel/plugin-transform-member-expression-literals": "^7.10.1",
942 | "@babel/plugin-transform-modules-amd": "^7.10.1",
943 | "@babel/plugin-transform-modules-commonjs": "^7.10.1",
944 | "@babel/plugin-transform-modules-systemjs": "^7.10.1",
945 | "@babel/plugin-transform-modules-umd": "^7.10.1",
946 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
947 | "@babel/plugin-transform-new-target": "^7.10.1",
948 | "@babel/plugin-transform-object-super": "^7.10.1",
949 | "@babel/plugin-transform-parameters": "^7.10.1",
950 | "@babel/plugin-transform-property-literals": "^7.10.1",
951 | "@babel/plugin-transform-regenerator": "^7.10.1",
952 | "@babel/plugin-transform-reserved-words": "^7.10.1",
953 | "@babel/plugin-transform-shorthand-properties": "^7.10.1",
954 | "@babel/plugin-transform-spread": "^7.10.1",
955 | "@babel/plugin-transform-sticky-regex": "^7.10.1",
956 | "@babel/plugin-transform-template-literals": "^7.10.1",
957 | "@babel/plugin-transform-typeof-symbol": "^7.10.1",
958 | "@babel/plugin-transform-unicode-escapes": "^7.10.1",
959 | "@babel/plugin-transform-unicode-regex": "^7.10.1",
960 | "@babel/preset-modules": "^0.1.3",
961 | "@babel/types": "^7.10.2",
962 | "browserslist": "^4.12.0",
963 | "core-js-compat": "^3.6.2",
964 | "invariant": "^2.2.2",
965 | "levenary": "^1.1.1",
966 | "semver": "^5.5.0"
967 | }
968 | },
969 | "@babel/preset-modules": {
970 | "version": "0.1.3",
971 | "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
972 | "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
973 | "dev": true,
974 | "requires": {
975 | "@babel/helper-plugin-utils": "^7.0.0",
976 | "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
977 | "@babel/plugin-transform-dotall-regex": "^7.4.4",
978 | "@babel/types": "^7.4.4",
979 | "esutils": "^2.0.2"
980 | }
981 | },
982 | "@babel/register": {
983 | "version": "7.10.1",
984 | "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.1.tgz",
985 | "integrity": "sha512-sl96+kB3IA2B9EzpwwBmYadOT14vw3KaXOknGDbJaZCOj52GDA4Tivudq9doCJcB+bEIKCEARZYwRgBBsCGXyg==",
986 | "dev": true,
987 | "requires": {
988 | "find-cache-dir": "^2.0.0",
989 | "lodash": "^4.17.13",
990 | "make-dir": "^2.1.0",
991 | "pirates": "^4.0.0",
992 | "source-map-support": "^0.5.16"
993 | }
994 | },
995 | "@babel/runtime": {
996 | "version": "7.10.2",
997 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz",
998 | "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==",
999 | "dev": true,
1000 | "requires": {
1001 | "regenerator-runtime": "^0.13.4"
1002 | }
1003 | },
1004 | "@babel/template": {
1005 | "version": "7.10.1",
1006 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz",
1007 | "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==",
1008 | "dev": true,
1009 | "requires": {
1010 | "@babel/code-frame": "^7.10.1",
1011 | "@babel/parser": "^7.10.1",
1012 | "@babel/types": "^7.10.1"
1013 | }
1014 | },
1015 | "@babel/traverse": {
1016 | "version": "7.10.1",
1017 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz",
1018 | "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==",
1019 | "dev": true,
1020 | "requires": {
1021 | "@babel/code-frame": "^7.10.1",
1022 | "@babel/generator": "^7.10.1",
1023 | "@babel/helper-function-name": "^7.10.1",
1024 | "@babel/helper-split-export-declaration": "^7.10.1",
1025 | "@babel/parser": "^7.10.1",
1026 | "@babel/types": "^7.10.1",
1027 | "debug": "^4.1.0",
1028 | "globals": "^11.1.0",
1029 | "lodash": "^4.17.13"
1030 | },
1031 | "dependencies": {
1032 | "debug": {
1033 | "version": "4.1.1",
1034 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1035 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1036 | "dev": true,
1037 | "requires": {
1038 | "ms": "^2.1.1"
1039 | }
1040 | },
1041 | "ms": {
1042 | "version": "2.1.2",
1043 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1044 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1045 | "dev": true
1046 | }
1047 | }
1048 | },
1049 | "@babel/types": {
1050 | "version": "7.10.2",
1051 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz",
1052 | "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==",
1053 | "dev": true,
1054 | "requires": {
1055 | "@babel/helper-validator-identifier": "^7.10.1",
1056 | "lodash": "^4.17.13",
1057 | "to-fast-properties": "^2.0.0"
1058 | }
1059 | },
1060 | "JSONStream": {
1061 | "version": "1.3.1",
1062 | "resolved": "https://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.1.tgz",
1063 | "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
1064 | "dev": true,
1065 | "requires": {
1066 | "jsonparse": "^1.2.0",
1067 | "through": ">=2.2.7 <3"
1068 | }
1069 | },
1070 | "acorn": {
1071 | "version": "4.0.11",
1072 | "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-4.0.11.tgz",
1073 | "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA=",
1074 | "dev": true
1075 | },
1076 | "ansi-styles": {
1077 | "version": "3.2.1",
1078 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1079 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1080 | "dev": true,
1081 | "requires": {
1082 | "color-convert": "^1.9.0"
1083 | }
1084 | },
1085 | "anymatch": {
1086 | "version": "2.0.0",
1087 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
1088 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
1089 | "dev": true,
1090 | "optional": true,
1091 | "requires": {
1092 | "micromatch": "^3.1.4",
1093 | "normalize-path": "^2.1.1"
1094 | },
1095 | "dependencies": {
1096 | "normalize-path": {
1097 | "version": "2.1.1",
1098 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1099 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1100 | "dev": true,
1101 | "optional": true,
1102 | "requires": {
1103 | "remove-trailing-separator": "^1.0.1"
1104 | }
1105 | }
1106 | }
1107 | },
1108 | "arr-diff": {
1109 | "version": "4.0.0",
1110 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
1111 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
1112 | "dev": true,
1113 | "optional": true
1114 | },
1115 | "arr-flatten": {
1116 | "version": "1.1.0",
1117 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
1118 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
1119 | "dev": true,
1120 | "optional": true
1121 | },
1122 | "arr-union": {
1123 | "version": "3.1.0",
1124 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
1125 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
1126 | "dev": true,
1127 | "optional": true
1128 | },
1129 | "array-filter": {
1130 | "version": "0.0.1",
1131 | "resolved": "https://registry.npm.taobao.org/array-filter/download/array-filter-0.0.1.tgz",
1132 | "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
1133 | "dev": true
1134 | },
1135 | "array-map": {
1136 | "version": "0.0.0",
1137 | "resolved": "https://registry.npm.taobao.org/array-map/download/array-map-0.0.0.tgz",
1138 | "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
1139 | "dev": true
1140 | },
1141 | "array-reduce": {
1142 | "version": "0.0.0",
1143 | "resolved": "https://registry.npm.taobao.org/array-reduce/download/array-reduce-0.0.0.tgz",
1144 | "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
1145 | "dev": true
1146 | },
1147 | "array-unique": {
1148 | "version": "0.3.2",
1149 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
1150 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
1151 | "dev": true,
1152 | "optional": true
1153 | },
1154 | "asn1.js": {
1155 | "version": "4.9.1",
1156 | "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.9.1.tgz",
1157 | "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
1158 | "dev": true,
1159 | "requires": {
1160 | "bn.js": "^4.0.0",
1161 | "inherits": "^2.0.1",
1162 | "minimalistic-assert": "^1.0.0"
1163 | }
1164 | },
1165 | "assert": {
1166 | "version": "1.4.1",
1167 | "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz",
1168 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
1169 | "dev": true,
1170 | "requires": {
1171 | "util": "0.10.3"
1172 | }
1173 | },
1174 | "assign-symbols": {
1175 | "version": "1.0.0",
1176 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
1177 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
1178 | "dev": true,
1179 | "optional": true
1180 | },
1181 | "astw": {
1182 | "version": "2.2.0",
1183 | "resolved": "https://registry.npm.taobao.org/astw/download/astw-2.2.0.tgz",
1184 | "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
1185 | "dev": true,
1186 | "requires": {
1187 | "acorn": "^4.0.3"
1188 | }
1189 | },
1190 | "async-each": {
1191 | "version": "1.0.3",
1192 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
1193 | "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
1194 | "dev": true,
1195 | "optional": true
1196 | },
1197 | "async-limiter": {
1198 | "version": "1.0.0",
1199 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
1200 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
1201 | },
1202 | "atob": {
1203 | "version": "2.1.2",
1204 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
1205 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
1206 | "dev": true,
1207 | "optional": true
1208 | },
1209 | "babel-plugin-dynamic-import-node": {
1210 | "version": "2.3.3",
1211 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
1212 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
1213 | "dev": true,
1214 | "requires": {
1215 | "object.assign": "^4.1.0"
1216 | }
1217 | },
1218 | "base": {
1219 | "version": "0.11.2",
1220 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1221 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1222 | "dev": true,
1223 | "optional": true,
1224 | "requires": {
1225 | "cache-base": "^1.0.1",
1226 | "class-utils": "^0.3.5",
1227 | "component-emitter": "^1.2.1",
1228 | "define-property": "^1.0.0",
1229 | "isobject": "^3.0.1",
1230 | "mixin-deep": "^1.2.0",
1231 | "pascalcase": "^0.1.1"
1232 | },
1233 | "dependencies": {
1234 | "define-property": {
1235 | "version": "1.0.0",
1236 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1237 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1238 | "dev": true,
1239 | "optional": true,
1240 | "requires": {
1241 | "is-descriptor": "^1.0.0"
1242 | }
1243 | },
1244 | "is-accessor-descriptor": {
1245 | "version": "1.0.0",
1246 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1247 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1248 | "dev": true,
1249 | "optional": true,
1250 | "requires": {
1251 | "kind-of": "^6.0.0"
1252 | }
1253 | },
1254 | "is-data-descriptor": {
1255 | "version": "1.0.0",
1256 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1257 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1258 | "dev": true,
1259 | "optional": true,
1260 | "requires": {
1261 | "kind-of": "^6.0.0"
1262 | }
1263 | },
1264 | "is-descriptor": {
1265 | "version": "1.0.2",
1266 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1267 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1268 | "dev": true,
1269 | "optional": true,
1270 | "requires": {
1271 | "is-accessor-descriptor": "^1.0.0",
1272 | "is-data-descriptor": "^1.0.0",
1273 | "kind-of": "^6.0.2"
1274 | }
1275 | }
1276 | }
1277 | },
1278 | "base64-js": {
1279 | "version": "1.2.0",
1280 | "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.2.0.tgz",
1281 | "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=",
1282 | "dev": true
1283 | },
1284 | "binary-extensions": {
1285 | "version": "1.13.1",
1286 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
1287 | "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
1288 | "dev": true,
1289 | "optional": true
1290 | },
1291 | "bindings": {
1292 | "version": "1.5.0",
1293 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
1294 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
1295 | "dev": true,
1296 | "optional": true,
1297 | "requires": {
1298 | "file-uri-to-path": "1.0.0"
1299 | }
1300 | },
1301 | "bn.js": {
1302 | "version": "4.11.6",
1303 | "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.6.tgz",
1304 | "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=",
1305 | "dev": true
1306 | },
1307 | "brace-expansion": {
1308 | "version": "1.1.11",
1309 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1310 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1311 | "dev": true,
1312 | "requires": {
1313 | "balanced-match": "^1.0.0",
1314 | "concat-map": "0.0.1"
1315 | },
1316 | "dependencies": {
1317 | "balanced-match": {
1318 | "version": "1.0.0",
1319 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1320 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1321 | "dev": true
1322 | }
1323 | }
1324 | },
1325 | "braces": {
1326 | "version": "2.3.2",
1327 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
1328 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
1329 | "dev": true,
1330 | "optional": true,
1331 | "requires": {
1332 | "arr-flatten": "^1.1.0",
1333 | "array-unique": "^0.3.2",
1334 | "extend-shallow": "^2.0.1",
1335 | "fill-range": "^4.0.0",
1336 | "isobject": "^3.0.1",
1337 | "repeat-element": "^1.1.2",
1338 | "snapdragon": "^0.8.1",
1339 | "snapdragon-node": "^2.0.1",
1340 | "split-string": "^3.0.2",
1341 | "to-regex": "^3.0.1"
1342 | },
1343 | "dependencies": {
1344 | "extend-shallow": {
1345 | "version": "2.0.1",
1346 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1347 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1348 | "dev": true,
1349 | "optional": true,
1350 | "requires": {
1351 | "is-extendable": "^0.1.0"
1352 | }
1353 | }
1354 | }
1355 | },
1356 | "brorand": {
1357 | "version": "1.1.0",
1358 | "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
1359 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
1360 | "dev": true
1361 | },
1362 | "browser-pack": {
1363 | "version": "6.0.2",
1364 | "resolved": "https://registry.npm.taobao.org/browser-pack/download/browser-pack-6.0.2.tgz",
1365 | "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
1366 | "dev": true,
1367 | "requires": {
1368 | "JSONStream": "^1.0.3",
1369 | "combine-source-map": "~0.7.1",
1370 | "defined": "^1.0.0",
1371 | "through2": "^2.0.0",
1372 | "umd": "^3.0.0"
1373 | }
1374 | },
1375 | "browser-resolve": {
1376 | "version": "1.11.2",
1377 | "resolved": "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.2.tgz",
1378 | "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
1379 | "dev": true,
1380 | "requires": {
1381 | "resolve": "1.1.7"
1382 | },
1383 | "dependencies": {
1384 | "resolve": {
1385 | "version": "1.1.7",
1386 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
1387 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
1388 | "dev": true
1389 | }
1390 | }
1391 | },
1392 | "browser-stdout": {
1393 | "version": "1.3.1",
1394 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
1395 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
1396 | "dev": true
1397 | },
1398 | "browserify": {
1399 | "version": "13.3.0",
1400 | "resolved": "https://registry.npm.taobao.org/browserify/download/browserify-13.3.0.tgz",
1401 | "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=",
1402 | "dev": true,
1403 | "requires": {
1404 | "JSONStream": "^1.0.3",
1405 | "assert": "^1.4.0",
1406 | "browser-pack": "^6.0.1",
1407 | "browser-resolve": "^1.11.0",
1408 | "browserify-zlib": "~0.1.2",
1409 | "buffer": "^4.1.0",
1410 | "cached-path-relative": "^1.0.0",
1411 | "concat-stream": "~1.5.1",
1412 | "console-browserify": "^1.1.0",
1413 | "constants-browserify": "~1.0.0",
1414 | "crypto-browserify": "^3.0.0",
1415 | "defined": "^1.0.0",
1416 | "deps-sort": "^2.0.0",
1417 | "domain-browser": "~1.1.0",
1418 | "duplexer2": "~0.1.2",
1419 | "events": "~1.1.0",
1420 | "glob": "^7.1.0",
1421 | "has": "^1.0.0",
1422 | "htmlescape": "^1.1.0",
1423 | "https-browserify": "~0.0.0",
1424 | "inherits": "~2.0.1",
1425 | "insert-module-globals": "^7.0.0",
1426 | "labeled-stream-splicer": "^2.0.0",
1427 | "module-deps": "^4.0.8",
1428 | "os-browserify": "~0.1.1",
1429 | "parents": "^1.0.1",
1430 | "path-browserify": "~0.0.0",
1431 | "process": "~0.11.0",
1432 | "punycode": "^1.3.2",
1433 | "querystring-es3": "~0.2.0",
1434 | "read-only-stream": "^2.0.0",
1435 | "readable-stream": "^2.0.2",
1436 | "resolve": "^1.1.4",
1437 | "shasum": "^1.0.0",
1438 | "shell-quote": "^1.6.1",
1439 | "stream-browserify": "^2.0.0",
1440 | "stream-http": "^2.0.0",
1441 | "string_decoder": "~0.10.0",
1442 | "subarg": "^1.0.0",
1443 | "syntax-error": "^1.1.1",
1444 | "through2": "^2.0.0",
1445 | "timers-browserify": "^1.0.1",
1446 | "tty-browserify": "~0.0.0",
1447 | "url": "~0.11.0",
1448 | "util": "~0.10.1",
1449 | "vm-browserify": "~0.0.1",
1450 | "xtend": "^4.0.0"
1451 | }
1452 | },
1453 | "browserify-aes": {
1454 | "version": "1.0.6",
1455 | "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.0.6.tgz",
1456 | "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
1457 | "dev": true,
1458 | "requires": {
1459 | "buffer-xor": "^1.0.2",
1460 | "cipher-base": "^1.0.0",
1461 | "create-hash": "^1.1.0",
1462 | "evp_bytestokey": "^1.0.0",
1463 | "inherits": "^2.0.1"
1464 | }
1465 | },
1466 | "browserify-cipher": {
1467 | "version": "1.0.0",
1468 | "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.0.tgz",
1469 | "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
1470 | "dev": true,
1471 | "requires": {
1472 | "browserify-aes": "^1.0.4",
1473 | "browserify-des": "^1.0.0",
1474 | "evp_bytestokey": "^1.0.0"
1475 | }
1476 | },
1477 | "browserify-des": {
1478 | "version": "1.0.0",
1479 | "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.0.tgz",
1480 | "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
1481 | "dev": true,
1482 | "requires": {
1483 | "cipher-base": "^1.0.1",
1484 | "des.js": "^1.0.0",
1485 | "inherits": "^2.0.1"
1486 | }
1487 | },
1488 | "browserify-rsa": {
1489 | "version": "4.0.1",
1490 | "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz",
1491 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
1492 | "dev": true,
1493 | "requires": {
1494 | "bn.js": "^4.1.0",
1495 | "randombytes": "^2.0.1"
1496 | }
1497 | },
1498 | "browserify-sign": {
1499 | "version": "4.0.4",
1500 | "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz",
1501 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
1502 | "dev": true,
1503 | "requires": {
1504 | "bn.js": "^4.1.1",
1505 | "browserify-rsa": "^4.0.0",
1506 | "create-hash": "^1.1.0",
1507 | "create-hmac": "^1.1.2",
1508 | "elliptic": "^6.0.0",
1509 | "inherits": "^2.0.1",
1510 | "parse-asn1": "^5.0.0"
1511 | }
1512 | },
1513 | "browserify-zlib": {
1514 | "version": "0.1.4",
1515 | "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.1.4.tgz",
1516 | "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
1517 | "dev": true,
1518 | "requires": {
1519 | "pako": "~0.2.0"
1520 | }
1521 | },
1522 | "browserslist": {
1523 | "version": "4.12.0",
1524 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
1525 | "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
1526 | "dev": true,
1527 | "requires": {
1528 | "caniuse-lite": "^1.0.30001043",
1529 | "electron-to-chromium": "^1.3.413",
1530 | "node-releases": "^1.1.53",
1531 | "pkg-up": "^2.0.0"
1532 | }
1533 | },
1534 | "buffer": {
1535 | "version": "4.9.1",
1536 | "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz",
1537 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
1538 | "dev": true,
1539 | "requires": {
1540 | "base64-js": "^1.0.2",
1541 | "ieee754": "^1.1.4",
1542 | "isarray": "^1.0.0"
1543 | }
1544 | },
1545 | "buffer-from": {
1546 | "version": "1.1.1",
1547 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
1548 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
1549 | "dev": true
1550 | },
1551 | "buffer-shims": {
1552 | "version": "1.0.0",
1553 | "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
1554 | "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
1555 | "dev": true
1556 | },
1557 | "buffer-xor": {
1558 | "version": "1.0.3",
1559 | "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
1560 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
1561 | "dev": true
1562 | },
1563 | "builtin-status-codes": {
1564 | "version": "3.0.0",
1565 | "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
1566 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
1567 | "dev": true
1568 | },
1569 | "cache-base": {
1570 | "version": "1.0.1",
1571 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
1572 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
1573 | "dev": true,
1574 | "optional": true,
1575 | "requires": {
1576 | "collection-visit": "^1.0.0",
1577 | "component-emitter": "^1.2.1",
1578 | "get-value": "^2.0.6",
1579 | "has-value": "^1.0.0",
1580 | "isobject": "^3.0.1",
1581 | "set-value": "^2.0.0",
1582 | "to-object-path": "^0.3.0",
1583 | "union-value": "^1.0.0",
1584 | "unset-value": "^1.0.0"
1585 | }
1586 | },
1587 | "cached-path-relative": {
1588 | "version": "1.0.2",
1589 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz",
1590 | "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==",
1591 | "dev": true
1592 | },
1593 | "caniuse-lite": {
1594 | "version": "1.0.30001081",
1595 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz",
1596 | "integrity": "sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ==",
1597 | "dev": true
1598 | },
1599 | "chalk": {
1600 | "version": "2.4.2",
1601 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1602 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1603 | "dev": true,
1604 | "requires": {
1605 | "ansi-styles": "^3.2.1",
1606 | "escape-string-regexp": "^1.0.5",
1607 | "supports-color": "^5.3.0"
1608 | }
1609 | },
1610 | "chokidar": {
1611 | "version": "2.1.8",
1612 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
1613 | "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
1614 | "dev": true,
1615 | "optional": true,
1616 | "requires": {
1617 | "anymatch": "^2.0.0",
1618 | "async-each": "^1.0.1",
1619 | "braces": "^2.3.2",
1620 | "fsevents": "^1.2.7",
1621 | "glob-parent": "^3.1.0",
1622 | "inherits": "^2.0.3",
1623 | "is-binary-path": "^1.0.0",
1624 | "is-glob": "^4.0.0",
1625 | "normalize-path": "^3.0.0",
1626 | "path-is-absolute": "^1.0.0",
1627 | "readdirp": "^2.2.1",
1628 | "upath": "^1.1.1"
1629 | },
1630 | "dependencies": {
1631 | "inherits": {
1632 | "version": "2.0.4",
1633 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1634 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1635 | "dev": true,
1636 | "optional": true
1637 | }
1638 | }
1639 | },
1640 | "cipher-base": {
1641 | "version": "1.0.3",
1642 | "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.3.tgz",
1643 | "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
1644 | "dev": true,
1645 | "requires": {
1646 | "inherits": "^2.0.1"
1647 | }
1648 | },
1649 | "class-utils": {
1650 | "version": "0.3.6",
1651 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
1652 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
1653 | "dev": true,
1654 | "optional": true,
1655 | "requires": {
1656 | "arr-union": "^3.1.0",
1657 | "define-property": "^0.2.5",
1658 | "isobject": "^3.0.0",
1659 | "static-extend": "^0.1.1"
1660 | },
1661 | "dependencies": {
1662 | "define-property": {
1663 | "version": "0.2.5",
1664 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1665 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1666 | "dev": true,
1667 | "optional": true,
1668 | "requires": {
1669 | "is-descriptor": "^0.1.0"
1670 | }
1671 | }
1672 | }
1673 | },
1674 | "collection-visit": {
1675 | "version": "1.0.0",
1676 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
1677 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
1678 | "dev": true,
1679 | "optional": true,
1680 | "requires": {
1681 | "map-visit": "^1.0.0",
1682 | "object-visit": "^1.0.0"
1683 | }
1684 | },
1685 | "color-convert": {
1686 | "version": "1.9.3",
1687 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1688 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1689 | "dev": true,
1690 | "requires": {
1691 | "color-name": "1.1.3"
1692 | }
1693 | },
1694 | "color-name": {
1695 | "version": "1.1.3",
1696 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1697 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1698 | "dev": true
1699 | },
1700 | "combine-source-map": {
1701 | "version": "0.7.2",
1702 | "resolved": "https://registry.npm.taobao.org/combine-source-map/download/combine-source-map-0.7.2.tgz",
1703 | "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
1704 | "dev": true,
1705 | "requires": {
1706 | "convert-source-map": "~1.1.0",
1707 | "inline-source-map": "~0.6.0",
1708 | "lodash.memoize": "~3.0.3",
1709 | "source-map": "~0.5.3"
1710 | },
1711 | "dependencies": {
1712 | "convert-source-map": {
1713 | "version": "1.1.3",
1714 | "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.1.3.tgz",
1715 | "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=",
1716 | "dev": true
1717 | }
1718 | }
1719 | },
1720 | "commander": {
1721 | "version": "4.1.1",
1722 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
1723 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
1724 | "dev": true
1725 | },
1726 | "commondir": {
1727 | "version": "1.0.1",
1728 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1729 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
1730 | "dev": true
1731 | },
1732 | "component-emitter": {
1733 | "version": "1.3.0",
1734 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
1735 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
1736 | "dev": true,
1737 | "optional": true
1738 | },
1739 | "concat-map": {
1740 | "version": "0.0.1",
1741 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1742 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1743 | "dev": true
1744 | },
1745 | "concat-stream": {
1746 | "version": "1.5.2",
1747 | "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.5.2.tgz",
1748 | "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
1749 | "dev": true,
1750 | "requires": {
1751 | "inherits": "~2.0.1",
1752 | "readable-stream": "~2.0.0",
1753 | "typedarray": "~0.0.5"
1754 | },
1755 | "dependencies": {
1756 | "readable-stream": {
1757 | "version": "2.0.6",
1758 | "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.0.6.tgz",
1759 | "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
1760 | "dev": true,
1761 | "requires": {
1762 | "core-util-is": "~1.0.0",
1763 | "inherits": "~2.0.1",
1764 | "isarray": "~1.0.0",
1765 | "process-nextick-args": "~1.0.6",
1766 | "string_decoder": "~0.10.x",
1767 | "util-deprecate": "~1.0.1"
1768 | }
1769 | }
1770 | }
1771 | },
1772 | "console-browserify": {
1773 | "version": "1.1.0",
1774 | "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz",
1775 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
1776 | "dev": true,
1777 | "requires": {
1778 | "date-now": "^0.1.4"
1779 | }
1780 | },
1781 | "constants-browserify": {
1782 | "version": "1.0.0",
1783 | "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
1784 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
1785 | "dev": true
1786 | },
1787 | "convert-source-map": {
1788 | "version": "1.7.0",
1789 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
1790 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
1791 | "dev": true,
1792 | "requires": {
1793 | "safe-buffer": "~5.1.1"
1794 | }
1795 | },
1796 | "copy-descriptor": {
1797 | "version": "0.1.1",
1798 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
1799 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
1800 | "dev": true,
1801 | "optional": true
1802 | },
1803 | "core-js-compat": {
1804 | "version": "3.6.5",
1805 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
1806 | "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
1807 | "dev": true,
1808 | "requires": {
1809 | "browserslist": "^4.8.5",
1810 | "semver": "7.0.0"
1811 | },
1812 | "dependencies": {
1813 | "semver": {
1814 | "version": "7.0.0",
1815 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
1816 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
1817 | "dev": true
1818 | }
1819 | }
1820 | },
1821 | "core-util-is": {
1822 | "version": "1.0.2",
1823 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1824 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
1825 | "dev": true
1826 | },
1827 | "create-ecdh": {
1828 | "version": "4.0.0",
1829 | "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.0.tgz",
1830 | "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
1831 | "dev": true,
1832 | "requires": {
1833 | "bn.js": "^4.1.0",
1834 | "elliptic": "^6.0.0"
1835 | }
1836 | },
1837 | "create-hash": {
1838 | "version": "1.1.2",
1839 | "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.1.2.tgz",
1840 | "integrity": "sha1-USEAYte7dHn2xlu0GpIgix1hq60=",
1841 | "dev": true,
1842 | "requires": {
1843 | "cipher-base": "^1.0.1",
1844 | "inherits": "^2.0.1",
1845 | "ripemd160": "^1.0.0",
1846 | "sha.js": "^2.3.6"
1847 | }
1848 | },
1849 | "create-hmac": {
1850 | "version": "1.1.4",
1851 | "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.4.tgz",
1852 | "integrity": "sha1-0/tLolPriz9W456i+8uK90e9MXA=",
1853 | "dev": true,
1854 | "requires": {
1855 | "create-hash": "^1.1.0",
1856 | "inherits": "^2.0.1"
1857 | }
1858 | },
1859 | "crypto-browserify": {
1860 | "version": "3.11.0",
1861 | "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.11.0.tgz",
1862 | "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
1863 | "dev": true,
1864 | "requires": {
1865 | "browserify-cipher": "^1.0.0",
1866 | "browserify-sign": "^4.0.0",
1867 | "create-ecdh": "^4.0.0",
1868 | "create-hash": "^1.1.0",
1869 | "create-hmac": "^1.1.0",
1870 | "diffie-hellman": "^5.0.0",
1871 | "inherits": "^2.0.1",
1872 | "pbkdf2": "^3.0.3",
1873 | "public-encrypt": "^4.0.0",
1874 | "randombytes": "^2.0.0"
1875 | }
1876 | },
1877 | "date-now": {
1878 | "version": "0.1.4",
1879 | "resolved": "https://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz",
1880 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
1881 | "dev": true
1882 | },
1883 | "debug": {
1884 | "version": "2.6.9",
1885 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1886 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1887 | "dev": true,
1888 | "optional": true,
1889 | "requires": {
1890 | "ms": "2.0.0"
1891 | }
1892 | },
1893 | "decode-uri-component": {
1894 | "version": "0.2.0",
1895 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
1896 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
1897 | "dev": true,
1898 | "optional": true
1899 | },
1900 | "define-properties": {
1901 | "version": "1.1.3",
1902 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1903 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1904 | "dev": true,
1905 | "requires": {
1906 | "object-keys": "^1.0.12"
1907 | }
1908 | },
1909 | "define-property": {
1910 | "version": "2.0.2",
1911 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
1912 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
1913 | "dev": true,
1914 | "optional": true,
1915 | "requires": {
1916 | "is-descriptor": "^1.0.2",
1917 | "isobject": "^3.0.1"
1918 | },
1919 | "dependencies": {
1920 | "is-accessor-descriptor": {
1921 | "version": "1.0.0",
1922 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1923 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1924 | "dev": true,
1925 | "optional": true,
1926 | "requires": {
1927 | "kind-of": "^6.0.0"
1928 | }
1929 | },
1930 | "is-data-descriptor": {
1931 | "version": "1.0.0",
1932 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1933 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1934 | "dev": true,
1935 | "optional": true,
1936 | "requires": {
1937 | "kind-of": "^6.0.0"
1938 | }
1939 | },
1940 | "is-descriptor": {
1941 | "version": "1.0.2",
1942 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1943 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1944 | "dev": true,
1945 | "optional": true,
1946 | "requires": {
1947 | "is-accessor-descriptor": "^1.0.0",
1948 | "is-data-descriptor": "^1.0.0",
1949 | "kind-of": "^6.0.2"
1950 | }
1951 | }
1952 | }
1953 | },
1954 | "defined": {
1955 | "version": "1.0.0",
1956 | "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz",
1957 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
1958 | "dev": true
1959 | },
1960 | "deps-sort": {
1961 | "version": "2.0.0",
1962 | "resolved": "https://registry.npm.taobao.org/deps-sort/download/deps-sort-2.0.0.tgz",
1963 | "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
1964 | "dev": true,
1965 | "requires": {
1966 | "JSONStream": "^1.0.3",
1967 | "shasum": "^1.0.0",
1968 | "subarg": "^1.0.0",
1969 | "through2": "^2.0.0"
1970 | }
1971 | },
1972 | "des.js": {
1973 | "version": "1.0.0",
1974 | "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz",
1975 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
1976 | "dev": true,
1977 | "requires": {
1978 | "inherits": "^2.0.1",
1979 | "minimalistic-assert": "^1.0.0"
1980 | }
1981 | },
1982 | "detective": {
1983 | "version": "4.5.0",
1984 | "resolved": "https://registry.npm.taobao.org/detective/download/detective-4.5.0.tgz",
1985 | "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=",
1986 | "dev": true,
1987 | "requires": {
1988 | "acorn": "^4.0.3",
1989 | "defined": "^1.0.0"
1990 | }
1991 | },
1992 | "diff": {
1993 | "version": "3.5.0",
1994 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
1995 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
1996 | "dev": true
1997 | },
1998 | "diffie-hellman": {
1999 | "version": "5.0.2",
2000 | "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.2.tgz",
2001 | "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
2002 | "dev": true,
2003 | "requires": {
2004 | "bn.js": "^4.1.0",
2005 | "miller-rabin": "^4.0.0",
2006 | "randombytes": "^2.0.0"
2007 | }
2008 | },
2009 | "domain-browser": {
2010 | "version": "1.1.7",
2011 | "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.1.7.tgz",
2012 | "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
2013 | "dev": true
2014 | },
2015 | "duplexer2": {
2016 | "version": "0.1.4",
2017 | "resolved": "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz",
2018 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
2019 | "dev": true,
2020 | "requires": {
2021 | "readable-stream": "^2.0.2"
2022 | }
2023 | },
2024 | "electron-to-chromium": {
2025 | "version": "1.3.466",
2026 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz",
2027 | "integrity": "sha512-eieqkoM2hCkZZRhETKyCouMziDV3l4XEKHRLuzcHG+HV+P7PeODU/z9HAmBgMQkzvHg2DoyQhfIDmmeguLZT/Q==",
2028 | "dev": true
2029 | },
2030 | "elliptic": {
2031 | "version": "6.4.0",
2032 | "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.4.0.tgz",
2033 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
2034 | "dev": true,
2035 | "requires": {
2036 | "bn.js": "^4.4.0",
2037 | "brorand": "^1.0.1",
2038 | "hash.js": "^1.0.0",
2039 | "hmac-drbg": "^1.0.0",
2040 | "inherits": "^2.0.1",
2041 | "minimalistic-assert": "^1.0.0",
2042 | "minimalistic-crypto-utils": "^1.0.0"
2043 | }
2044 | },
2045 | "escape-string-regexp": {
2046 | "version": "1.0.5",
2047 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2048 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
2049 | "dev": true
2050 | },
2051 | "esutils": {
2052 | "version": "2.0.3",
2053 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
2054 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
2055 | "dev": true
2056 | },
2057 | "events": {
2058 | "version": "1.1.1",
2059 | "resolved": "https://registry.npm.taobao.org/events/download/events-1.1.1.tgz",
2060 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
2061 | "dev": true
2062 | },
2063 | "evp_bytestokey": {
2064 | "version": "1.0.0",
2065 | "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.0.tgz",
2066 | "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
2067 | "dev": true,
2068 | "requires": {
2069 | "create-hash": "^1.1.1"
2070 | }
2071 | },
2072 | "expand-brackets": {
2073 | "version": "2.1.4",
2074 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
2075 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
2076 | "dev": true,
2077 | "optional": true,
2078 | "requires": {
2079 | "debug": "^2.3.3",
2080 | "define-property": "^0.2.5",
2081 | "extend-shallow": "^2.0.1",
2082 | "posix-character-classes": "^0.1.0",
2083 | "regex-not": "^1.0.0",
2084 | "snapdragon": "^0.8.1",
2085 | "to-regex": "^3.0.1"
2086 | },
2087 | "dependencies": {
2088 | "define-property": {
2089 | "version": "0.2.5",
2090 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2091 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2092 | "dev": true,
2093 | "optional": true,
2094 | "requires": {
2095 | "is-descriptor": "^0.1.0"
2096 | }
2097 | },
2098 | "extend-shallow": {
2099 | "version": "2.0.1",
2100 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2101 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2102 | "dev": true,
2103 | "optional": true,
2104 | "requires": {
2105 | "is-extendable": "^0.1.0"
2106 | }
2107 | }
2108 | }
2109 | },
2110 | "extend-shallow": {
2111 | "version": "3.0.2",
2112 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
2113 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
2114 | "dev": true,
2115 | "optional": true,
2116 | "requires": {
2117 | "assign-symbols": "^1.0.0",
2118 | "is-extendable": "^1.0.1"
2119 | },
2120 | "dependencies": {
2121 | "is-extendable": {
2122 | "version": "1.0.1",
2123 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2124 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2125 | "dev": true,
2126 | "optional": true,
2127 | "requires": {
2128 | "is-plain-object": "^2.0.4"
2129 | }
2130 | }
2131 | }
2132 | },
2133 | "extglob": {
2134 | "version": "2.0.4",
2135 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
2136 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
2137 | "dev": true,
2138 | "optional": true,
2139 | "requires": {
2140 | "array-unique": "^0.3.2",
2141 | "define-property": "^1.0.0",
2142 | "expand-brackets": "^2.1.4",
2143 | "extend-shallow": "^2.0.1",
2144 | "fragment-cache": "^0.2.1",
2145 | "regex-not": "^1.0.0",
2146 | "snapdragon": "^0.8.1",
2147 | "to-regex": "^3.0.1"
2148 | },
2149 | "dependencies": {
2150 | "define-property": {
2151 | "version": "1.0.0",
2152 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
2153 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
2154 | "dev": true,
2155 | "optional": true,
2156 | "requires": {
2157 | "is-descriptor": "^1.0.0"
2158 | }
2159 | },
2160 | "extend-shallow": {
2161 | "version": "2.0.1",
2162 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2163 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2164 | "dev": true,
2165 | "optional": true,
2166 | "requires": {
2167 | "is-extendable": "^0.1.0"
2168 | }
2169 | },
2170 | "is-accessor-descriptor": {
2171 | "version": "1.0.0",
2172 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2173 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2174 | "dev": true,
2175 | "optional": true,
2176 | "requires": {
2177 | "kind-of": "^6.0.0"
2178 | }
2179 | },
2180 | "is-data-descriptor": {
2181 | "version": "1.0.0",
2182 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2183 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2184 | "dev": true,
2185 | "optional": true,
2186 | "requires": {
2187 | "kind-of": "^6.0.0"
2188 | }
2189 | },
2190 | "is-descriptor": {
2191 | "version": "1.0.2",
2192 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2193 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2194 | "dev": true,
2195 | "optional": true,
2196 | "requires": {
2197 | "is-accessor-descriptor": "^1.0.0",
2198 | "is-data-descriptor": "^1.0.0",
2199 | "kind-of": "^6.0.2"
2200 | }
2201 | }
2202 | }
2203 | },
2204 | "file-uri-to-path": {
2205 | "version": "1.0.0",
2206 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
2207 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
2208 | "dev": true,
2209 | "optional": true
2210 | },
2211 | "fill-range": {
2212 | "version": "4.0.0",
2213 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
2214 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
2215 | "dev": true,
2216 | "optional": true,
2217 | "requires": {
2218 | "extend-shallow": "^2.0.1",
2219 | "is-number": "^3.0.0",
2220 | "repeat-string": "^1.6.1",
2221 | "to-regex-range": "^2.1.0"
2222 | },
2223 | "dependencies": {
2224 | "extend-shallow": {
2225 | "version": "2.0.1",
2226 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2227 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2228 | "dev": true,
2229 | "optional": true,
2230 | "requires": {
2231 | "is-extendable": "^0.1.0"
2232 | }
2233 | }
2234 | }
2235 | },
2236 | "find-cache-dir": {
2237 | "version": "2.1.0",
2238 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
2239 | "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
2240 | "dev": true,
2241 | "requires": {
2242 | "commondir": "^1.0.1",
2243 | "make-dir": "^2.0.0",
2244 | "pkg-dir": "^3.0.0"
2245 | }
2246 | },
2247 | "find-up": {
2248 | "version": "2.1.0",
2249 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2250 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2251 | "dev": true,
2252 | "requires": {
2253 | "locate-path": "^2.0.0"
2254 | }
2255 | },
2256 | "for-in": {
2257 | "version": "1.0.2",
2258 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
2259 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
2260 | "dev": true,
2261 | "optional": true
2262 | },
2263 | "fragment-cache": {
2264 | "version": "0.2.1",
2265 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
2266 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
2267 | "dev": true,
2268 | "optional": true,
2269 | "requires": {
2270 | "map-cache": "^0.2.2"
2271 | }
2272 | },
2273 | "fs-readdir-recursive": {
2274 | "version": "1.1.0",
2275 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
2276 | "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
2277 | "dev": true
2278 | },
2279 | "fs.realpath": {
2280 | "version": "1.0.0",
2281 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2282 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2283 | "dev": true
2284 | },
2285 | "fsevents": {
2286 | "version": "1.2.13",
2287 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
2288 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
2289 | "dev": true,
2290 | "optional": true,
2291 | "requires": {
2292 | "bindings": "^1.5.0",
2293 | "nan": "^2.12.1"
2294 | }
2295 | },
2296 | "function-bind": {
2297 | "version": "1.1.0",
2298 | "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.0.tgz",
2299 | "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
2300 | "dev": true
2301 | },
2302 | "gensync": {
2303 | "version": "1.0.0-beta.1",
2304 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
2305 | "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
2306 | "dev": true
2307 | },
2308 | "get-value": {
2309 | "version": "2.0.6",
2310 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2311 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
2312 | "dev": true,
2313 | "optional": true
2314 | },
2315 | "glob": {
2316 | "version": "7.1.1",
2317 | "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.1.tgz",
2318 | "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
2319 | "dev": true,
2320 | "requires": {
2321 | "fs.realpath": "^1.0.0",
2322 | "inflight": "^1.0.4",
2323 | "inherits": "2",
2324 | "minimatch": "^3.0.2",
2325 | "once": "^1.3.0",
2326 | "path-is-absolute": "^1.0.0"
2327 | }
2328 | },
2329 | "glob-parent": {
2330 | "version": "3.1.0",
2331 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
2332 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
2333 | "dev": true,
2334 | "optional": true,
2335 | "requires": {
2336 | "is-glob": "^3.1.0",
2337 | "path-dirname": "^1.0.0"
2338 | },
2339 | "dependencies": {
2340 | "is-glob": {
2341 | "version": "3.1.0",
2342 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
2343 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
2344 | "dev": true,
2345 | "optional": true,
2346 | "requires": {
2347 | "is-extglob": "^2.1.0"
2348 | }
2349 | }
2350 | }
2351 | },
2352 | "globals": {
2353 | "version": "11.12.0",
2354 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2355 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2356 | "dev": true
2357 | },
2358 | "graceful-fs": {
2359 | "version": "4.2.4",
2360 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
2361 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
2362 | "dev": true,
2363 | "optional": true
2364 | },
2365 | "growl": {
2366 | "version": "1.10.5",
2367 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
2368 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
2369 | "dev": true
2370 | },
2371 | "has": {
2372 | "version": "1.0.1",
2373 | "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.1.tgz",
2374 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
2375 | "dev": true,
2376 | "requires": {
2377 | "function-bind": "^1.0.2"
2378 | }
2379 | },
2380 | "has-flag": {
2381 | "version": "3.0.0",
2382 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2383 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2384 | "dev": true
2385 | },
2386 | "has-symbols": {
2387 | "version": "1.0.1",
2388 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
2389 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
2390 | "dev": true
2391 | },
2392 | "has-value": {
2393 | "version": "1.0.0",
2394 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2395 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2396 | "dev": true,
2397 | "optional": true,
2398 | "requires": {
2399 | "get-value": "^2.0.6",
2400 | "has-values": "^1.0.0",
2401 | "isobject": "^3.0.0"
2402 | }
2403 | },
2404 | "has-values": {
2405 | "version": "1.0.0",
2406 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2407 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2408 | "dev": true,
2409 | "optional": true,
2410 | "requires": {
2411 | "is-number": "^3.0.0",
2412 | "kind-of": "^4.0.0"
2413 | },
2414 | "dependencies": {
2415 | "kind-of": {
2416 | "version": "4.0.0",
2417 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2418 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2419 | "dev": true,
2420 | "optional": true,
2421 | "requires": {
2422 | "is-buffer": "^1.1.5"
2423 | }
2424 | }
2425 | }
2426 | },
2427 | "hash.js": {
2428 | "version": "1.0.3",
2429 | "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.0.3.tgz",
2430 | "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
2431 | "dev": true,
2432 | "requires": {
2433 | "inherits": "^2.0.1"
2434 | }
2435 | },
2436 | "he": {
2437 | "version": "1.1.1",
2438 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
2439 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
2440 | "dev": true
2441 | },
2442 | "hmac-drbg": {
2443 | "version": "1.0.0",
2444 | "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.0.tgz",
2445 | "integrity": "sha1-PbRx9FquSplKBogyIXH1G4uRvuU=",
2446 | "dev": true,
2447 | "requires": {
2448 | "hash.js": "^1.0.3",
2449 | "minimalistic-assert": "^1.0.0",
2450 | "minimalistic-crypto-utils": "^1.0.1"
2451 | }
2452 | },
2453 | "htmlescape": {
2454 | "version": "1.1.1",
2455 | "resolved": "https://registry.npm.taobao.org/htmlescape/download/htmlescape-1.1.1.tgz",
2456 | "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=",
2457 | "dev": true
2458 | },
2459 | "https-browserify": {
2460 | "version": "0.0.1",
2461 | "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-0.0.1.tgz",
2462 | "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
2463 | "dev": true
2464 | },
2465 | "ieee754": {
2466 | "version": "1.1.8",
2467 | "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.8.tgz",
2468 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
2469 | "dev": true
2470 | },
2471 | "indexof": {
2472 | "version": "0.0.1",
2473 | "resolved": "https://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
2474 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
2475 | "dev": true
2476 | },
2477 | "inflight": {
2478 | "version": "1.0.6",
2479 | "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
2480 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2481 | "dev": true,
2482 | "requires": {
2483 | "once": "^1.3.0",
2484 | "wrappy": "1"
2485 | }
2486 | },
2487 | "inherits": {
2488 | "version": "2.0.1",
2489 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
2490 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
2491 | "dev": true
2492 | },
2493 | "inline-source-map": {
2494 | "version": "0.6.2",
2495 | "resolved": "https://registry.npm.taobao.org/inline-source-map/download/inline-source-map-0.6.2.tgz",
2496 | "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
2497 | "dev": true,
2498 | "requires": {
2499 | "source-map": "~0.5.3"
2500 | }
2501 | },
2502 | "insert-module-globals": {
2503 | "version": "7.0.1",
2504 | "resolved": "https://registry.npm.taobao.org/insert-module-globals/download/insert-module-globals-7.0.1.tgz",
2505 | "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
2506 | "dev": true,
2507 | "requires": {
2508 | "JSONStream": "^1.0.3",
2509 | "combine-source-map": "~0.7.1",
2510 | "concat-stream": "~1.5.1",
2511 | "is-buffer": "^1.1.0",
2512 | "lexical-scope": "^1.2.0",
2513 | "process": "~0.11.0",
2514 | "through2": "^2.0.0",
2515 | "xtend": "^4.0.0"
2516 | }
2517 | },
2518 | "invariant": {
2519 | "version": "2.2.4",
2520 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
2521 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
2522 | "dev": true,
2523 | "requires": {
2524 | "loose-envify": "^1.0.0"
2525 | }
2526 | },
2527 | "is-accessor-descriptor": {
2528 | "version": "0.1.6",
2529 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2530 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2531 | "dev": true,
2532 | "optional": true,
2533 | "requires": {
2534 | "kind-of": "^3.0.2"
2535 | },
2536 | "dependencies": {
2537 | "kind-of": {
2538 | "version": "3.2.2",
2539 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2540 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2541 | "dev": true,
2542 | "optional": true,
2543 | "requires": {
2544 | "is-buffer": "^1.1.5"
2545 | }
2546 | }
2547 | }
2548 | },
2549 | "is-binary-path": {
2550 | "version": "1.0.1",
2551 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2552 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2553 | "dev": true,
2554 | "optional": true,
2555 | "requires": {
2556 | "binary-extensions": "^1.0.0"
2557 | }
2558 | },
2559 | "is-buffer": {
2560 | "version": "1.1.5",
2561 | "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.5.tgz",
2562 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
2563 | "dev": true
2564 | },
2565 | "is-data-descriptor": {
2566 | "version": "0.1.4",
2567 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2568 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2569 | "dev": true,
2570 | "optional": true,
2571 | "requires": {
2572 | "kind-of": "^3.0.2"
2573 | },
2574 | "dependencies": {
2575 | "kind-of": {
2576 | "version": "3.2.2",
2577 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2578 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2579 | "dev": true,
2580 | "optional": true,
2581 | "requires": {
2582 | "is-buffer": "^1.1.5"
2583 | }
2584 | }
2585 | }
2586 | },
2587 | "is-descriptor": {
2588 | "version": "0.1.6",
2589 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2590 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2591 | "dev": true,
2592 | "optional": true,
2593 | "requires": {
2594 | "is-accessor-descriptor": "^0.1.6",
2595 | "is-data-descriptor": "^0.1.4",
2596 | "kind-of": "^5.0.0"
2597 | },
2598 | "dependencies": {
2599 | "kind-of": {
2600 | "version": "5.1.0",
2601 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2602 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2603 | "dev": true,
2604 | "optional": true
2605 | }
2606 | }
2607 | },
2608 | "is-extendable": {
2609 | "version": "0.1.1",
2610 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2611 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2612 | "dev": true,
2613 | "optional": true
2614 | },
2615 | "is-extglob": {
2616 | "version": "2.1.1",
2617 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2618 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2619 | "dev": true,
2620 | "optional": true
2621 | },
2622 | "is-glob": {
2623 | "version": "4.0.1",
2624 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
2625 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
2626 | "dev": true,
2627 | "optional": true,
2628 | "requires": {
2629 | "is-extglob": "^2.1.1"
2630 | }
2631 | },
2632 | "is-number": {
2633 | "version": "3.0.0",
2634 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2635 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2636 | "dev": true,
2637 | "optional": true,
2638 | "requires": {
2639 | "kind-of": "^3.0.2"
2640 | },
2641 | "dependencies": {
2642 | "kind-of": {
2643 | "version": "3.2.2",
2644 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2645 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2646 | "dev": true,
2647 | "optional": true,
2648 | "requires": {
2649 | "is-buffer": "^1.1.5"
2650 | }
2651 | }
2652 | }
2653 | },
2654 | "is-plain-object": {
2655 | "version": "2.0.4",
2656 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2657 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2658 | "dev": true,
2659 | "optional": true,
2660 | "requires": {
2661 | "isobject": "^3.0.1"
2662 | }
2663 | },
2664 | "is-windows": {
2665 | "version": "1.0.2",
2666 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2667 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2668 | "dev": true,
2669 | "optional": true
2670 | },
2671 | "isarray": {
2672 | "version": "1.0.0",
2673 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2674 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2675 | "dev": true
2676 | },
2677 | "isobject": {
2678 | "version": "3.0.1",
2679 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2680 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2681 | "dev": true,
2682 | "optional": true
2683 | },
2684 | "js-tokens": {
2685 | "version": "4.0.0",
2686 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2687 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2688 | "dev": true
2689 | },
2690 | "jsesc": {
2691 | "version": "2.5.2",
2692 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2693 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2694 | "dev": true
2695 | },
2696 | "json-stable-stringify": {
2697 | "version": "0.0.1",
2698 | "resolved": "https://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-0.0.1.tgz",
2699 | "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
2700 | "dev": true,
2701 | "requires": {
2702 | "jsonify": "~0.0.0"
2703 | }
2704 | },
2705 | "json5": {
2706 | "version": "2.1.3",
2707 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
2708 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
2709 | "dev": true,
2710 | "requires": {
2711 | "minimist": "^1.2.5"
2712 | }
2713 | },
2714 | "jsonify": {
2715 | "version": "0.0.0",
2716 | "resolved": "https://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz",
2717 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
2718 | "dev": true
2719 | },
2720 | "jsonparse": {
2721 | "version": "1.3.0",
2722 | "resolved": "https://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.0.tgz",
2723 | "integrity": "sha1-hfwkWx2SWazGlBlguQWt9k594Og=",
2724 | "dev": true
2725 | },
2726 | "kind-of": {
2727 | "version": "6.0.3",
2728 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
2729 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
2730 | "dev": true,
2731 | "optional": true
2732 | },
2733 | "labeled-stream-splicer": {
2734 | "version": "2.0.0",
2735 | "resolved": "https://registry.npm.taobao.org/labeled-stream-splicer/download/labeled-stream-splicer-2.0.0.tgz",
2736 | "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
2737 | "dev": true,
2738 | "requires": {
2739 | "inherits": "^2.0.1",
2740 | "isarray": "~0.0.1",
2741 | "stream-splicer": "^2.0.0"
2742 | },
2743 | "dependencies": {
2744 | "isarray": {
2745 | "version": "0.0.1",
2746 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2747 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
2748 | "dev": true
2749 | }
2750 | }
2751 | },
2752 | "leven": {
2753 | "version": "3.1.0",
2754 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
2755 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
2756 | "dev": true
2757 | },
2758 | "levenary": {
2759 | "version": "1.1.1",
2760 | "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
2761 | "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
2762 | "dev": true,
2763 | "requires": {
2764 | "leven": "^3.1.0"
2765 | }
2766 | },
2767 | "lexical-scope": {
2768 | "version": "1.2.0",
2769 | "resolved": "https://registry.npm.taobao.org/lexical-scope/download/lexical-scope-1.2.0.tgz",
2770 | "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
2771 | "dev": true,
2772 | "requires": {
2773 | "astw": "^2.0.0"
2774 | }
2775 | },
2776 | "locate-path": {
2777 | "version": "2.0.0",
2778 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2779 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2780 | "dev": true,
2781 | "requires": {
2782 | "p-locate": "^2.0.0",
2783 | "path-exists": "^3.0.0"
2784 | }
2785 | },
2786 | "lodash": {
2787 | "version": "4.17.15",
2788 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2789 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
2790 | "dev": true
2791 | },
2792 | "lodash.memoize": {
2793 | "version": "3.0.4",
2794 | "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-3.0.4.tgz",
2795 | "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",
2796 | "dev": true
2797 | },
2798 | "loose-envify": {
2799 | "version": "1.4.0",
2800 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2801 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2802 | "dev": true,
2803 | "requires": {
2804 | "js-tokens": "^3.0.0 || ^4.0.0"
2805 | }
2806 | },
2807 | "make-dir": {
2808 | "version": "2.1.0",
2809 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
2810 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
2811 | "dev": true,
2812 | "requires": {
2813 | "pify": "^4.0.1",
2814 | "semver": "^5.6.0"
2815 | }
2816 | },
2817 | "map-cache": {
2818 | "version": "0.2.2",
2819 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2820 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2821 | "dev": true,
2822 | "optional": true
2823 | },
2824 | "map-visit": {
2825 | "version": "1.0.0",
2826 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2827 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2828 | "dev": true,
2829 | "optional": true,
2830 | "requires": {
2831 | "object-visit": "^1.0.0"
2832 | }
2833 | },
2834 | "micromatch": {
2835 | "version": "3.1.10",
2836 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2837 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2838 | "dev": true,
2839 | "optional": true,
2840 | "requires": {
2841 | "arr-diff": "^4.0.0",
2842 | "array-unique": "^0.3.2",
2843 | "braces": "^2.3.1",
2844 | "define-property": "^2.0.2",
2845 | "extend-shallow": "^3.0.2",
2846 | "extglob": "^2.0.4",
2847 | "fragment-cache": "^0.2.1",
2848 | "kind-of": "^6.0.2",
2849 | "nanomatch": "^1.2.9",
2850 | "object.pick": "^1.3.0",
2851 | "regex-not": "^1.0.0",
2852 | "snapdragon": "^0.8.1",
2853 | "to-regex": "^3.0.2"
2854 | }
2855 | },
2856 | "miller-rabin": {
2857 | "version": "4.0.0",
2858 | "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.0.tgz",
2859 | "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
2860 | "dev": true,
2861 | "requires": {
2862 | "bn.js": "^4.0.0",
2863 | "brorand": "^1.0.1"
2864 | }
2865 | },
2866 | "minimalistic-assert": {
2867 | "version": "1.0.0",
2868 | "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.0.tgz",
2869 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
2870 | "dev": true
2871 | },
2872 | "minimalistic-crypto-utils": {
2873 | "version": "1.0.1",
2874 | "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
2875 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
2876 | "dev": true
2877 | },
2878 | "minimatch": {
2879 | "version": "3.0.3",
2880 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2881 | "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2882 | "dev": true,
2883 | "requires": {
2884 | "brace-expansion": "^1.0.0"
2885 | }
2886 | },
2887 | "minimist": {
2888 | "version": "1.2.5",
2889 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2890 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
2891 | "dev": true
2892 | },
2893 | "mixin-deep": {
2894 | "version": "1.3.2",
2895 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
2896 | "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
2897 | "dev": true,
2898 | "optional": true,
2899 | "requires": {
2900 | "for-in": "^1.0.2",
2901 | "is-extendable": "^1.0.1"
2902 | },
2903 | "dependencies": {
2904 | "is-extendable": {
2905 | "version": "1.0.1",
2906 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2907 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2908 | "dev": true,
2909 | "optional": true,
2910 | "requires": {
2911 | "is-plain-object": "^2.0.4"
2912 | }
2913 | }
2914 | }
2915 | },
2916 | "mocha": {
2917 | "version": "5.2.0",
2918 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
2919 | "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
2920 | "dev": true,
2921 | "requires": {
2922 | "browser-stdout": "1.3.1",
2923 | "commander": "2.15.1",
2924 | "debug": "3.1.0",
2925 | "diff": "3.5.0",
2926 | "escape-string-regexp": "1.0.5",
2927 | "glob": "7.1.2",
2928 | "growl": "1.10.5",
2929 | "he": "1.1.1",
2930 | "minimatch": "3.0.4",
2931 | "mkdirp": "0.5.1",
2932 | "supports-color": "5.4.0"
2933 | },
2934 | "dependencies": {
2935 | "commander": {
2936 | "version": "2.15.1",
2937 | "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
2938 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
2939 | "dev": true
2940 | },
2941 | "debug": {
2942 | "version": "3.1.0",
2943 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
2944 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
2945 | "dev": true,
2946 | "requires": {
2947 | "ms": "2.0.0"
2948 | }
2949 | },
2950 | "glob": {
2951 | "version": "7.1.2",
2952 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
2953 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
2954 | "dev": true,
2955 | "requires": {
2956 | "fs.realpath": "^1.0.0",
2957 | "inflight": "^1.0.4",
2958 | "inherits": "2",
2959 | "minimatch": "^3.0.4",
2960 | "once": "^1.3.0",
2961 | "path-is-absolute": "^1.0.0"
2962 | }
2963 | },
2964 | "minimatch": {
2965 | "version": "3.0.4",
2966 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2967 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2968 | "dev": true,
2969 | "requires": {
2970 | "brace-expansion": "^1.1.7"
2971 | }
2972 | },
2973 | "minimist": {
2974 | "version": "0.0.8",
2975 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2976 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2977 | "dev": true
2978 | },
2979 | "mkdirp": {
2980 | "version": "0.5.1",
2981 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2982 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2983 | "dev": true,
2984 | "requires": {
2985 | "minimist": "0.0.8"
2986 | }
2987 | },
2988 | "supports-color": {
2989 | "version": "5.4.0",
2990 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
2991 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
2992 | "dev": true,
2993 | "requires": {
2994 | "has-flag": "^3.0.0"
2995 | }
2996 | }
2997 | }
2998 | },
2999 | "module-deps": {
3000 | "version": "4.1.1",
3001 | "resolved": "https://registry.npm.taobao.org/module-deps/download/module-deps-4.1.1.tgz",
3002 | "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
3003 | "dev": true,
3004 | "requires": {
3005 | "JSONStream": "^1.0.3",
3006 | "browser-resolve": "^1.7.0",
3007 | "cached-path-relative": "^1.0.0",
3008 | "concat-stream": "~1.5.0",
3009 | "defined": "^1.0.0",
3010 | "detective": "^4.0.0",
3011 | "duplexer2": "^0.1.2",
3012 | "inherits": "^2.0.1",
3013 | "parents": "^1.0.0",
3014 | "readable-stream": "^2.0.2",
3015 | "resolve": "^1.1.3",
3016 | "stream-combiner2": "^1.1.1",
3017 | "subarg": "^1.0.0",
3018 | "through2": "^2.0.0",
3019 | "xtend": "^4.0.0"
3020 | }
3021 | },
3022 | "ms": {
3023 | "version": "2.0.0",
3024 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3025 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3026 | "dev": true
3027 | },
3028 | "nan": {
3029 | "version": "2.14.1",
3030 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
3031 | "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
3032 | "dev": true,
3033 | "optional": true
3034 | },
3035 | "nanomatch": {
3036 | "version": "1.2.13",
3037 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3038 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3039 | "dev": true,
3040 | "optional": true,
3041 | "requires": {
3042 | "arr-diff": "^4.0.0",
3043 | "array-unique": "^0.3.2",
3044 | "define-property": "^2.0.2",
3045 | "extend-shallow": "^3.0.2",
3046 | "fragment-cache": "^0.2.1",
3047 | "is-windows": "^1.0.2",
3048 | "kind-of": "^6.0.2",
3049 | "object.pick": "^1.3.0",
3050 | "regex-not": "^1.0.0",
3051 | "snapdragon": "^0.8.1",
3052 | "to-regex": "^3.0.1"
3053 | }
3054 | },
3055 | "node-modules-regexp": {
3056 | "version": "1.0.0",
3057 | "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
3058 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
3059 | "dev": true
3060 | },
3061 | "node-releases": {
3062 | "version": "1.1.58",
3063 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz",
3064 | "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==",
3065 | "dev": true
3066 | },
3067 | "normalize-path": {
3068 | "version": "3.0.0",
3069 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
3070 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
3071 | "dev": true,
3072 | "optional": true
3073 | },
3074 | "object-copy": {
3075 | "version": "0.1.0",
3076 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3077 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3078 | "dev": true,
3079 | "optional": true,
3080 | "requires": {
3081 | "copy-descriptor": "^0.1.0",
3082 | "define-property": "^0.2.5",
3083 | "kind-of": "^3.0.3"
3084 | },
3085 | "dependencies": {
3086 | "define-property": {
3087 | "version": "0.2.5",
3088 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3089 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3090 | "dev": true,
3091 | "optional": true,
3092 | "requires": {
3093 | "is-descriptor": "^0.1.0"
3094 | }
3095 | },
3096 | "kind-of": {
3097 | "version": "3.2.2",
3098 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3099 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3100 | "dev": true,
3101 | "optional": true,
3102 | "requires": {
3103 | "is-buffer": "^1.1.5"
3104 | }
3105 | }
3106 | }
3107 | },
3108 | "object-keys": {
3109 | "version": "1.1.1",
3110 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
3111 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
3112 | "dev": true
3113 | },
3114 | "object-visit": {
3115 | "version": "1.0.1",
3116 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3117 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3118 | "dev": true,
3119 | "optional": true,
3120 | "requires": {
3121 | "isobject": "^3.0.0"
3122 | }
3123 | },
3124 | "object.assign": {
3125 | "version": "4.1.0",
3126 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
3127 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
3128 | "dev": true,
3129 | "requires": {
3130 | "define-properties": "^1.1.2",
3131 | "function-bind": "^1.1.1",
3132 | "has-symbols": "^1.0.0",
3133 | "object-keys": "^1.0.11"
3134 | },
3135 | "dependencies": {
3136 | "function-bind": {
3137 | "version": "1.1.1",
3138 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
3139 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
3140 | "dev": true
3141 | }
3142 | }
3143 | },
3144 | "object.pick": {
3145 | "version": "1.3.0",
3146 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3147 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3148 | "dev": true,
3149 | "optional": true,
3150 | "requires": {
3151 | "isobject": "^3.0.1"
3152 | }
3153 | },
3154 | "once": {
3155 | "version": "1.4.0",
3156 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3157 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3158 | "dev": true,
3159 | "requires": {
3160 | "wrappy": "1"
3161 | }
3162 | },
3163 | "os-browserify": {
3164 | "version": "0.1.2",
3165 | "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.1.2.tgz",
3166 | "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=",
3167 | "dev": true
3168 | },
3169 | "p-limit": {
3170 | "version": "1.3.0",
3171 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
3172 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
3173 | "dev": true,
3174 | "requires": {
3175 | "p-try": "^1.0.0"
3176 | }
3177 | },
3178 | "p-locate": {
3179 | "version": "2.0.0",
3180 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
3181 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
3182 | "dev": true,
3183 | "requires": {
3184 | "p-limit": "^1.1.0"
3185 | }
3186 | },
3187 | "p-try": {
3188 | "version": "1.0.0",
3189 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
3190 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
3191 | "dev": true
3192 | },
3193 | "pako": {
3194 | "version": "0.2.9",
3195 | "resolved": "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz",
3196 | "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
3197 | "dev": true
3198 | },
3199 | "parents": {
3200 | "version": "1.0.1",
3201 | "resolved": "https://registry.npm.taobao.org/parents/download/parents-1.0.1.tgz",
3202 | "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
3203 | "dev": true,
3204 | "requires": {
3205 | "path-platform": "~0.11.15"
3206 | }
3207 | },
3208 | "parse-asn1": {
3209 | "version": "5.1.0",
3210 | "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.0.tgz",
3211 | "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
3212 | "dev": true,
3213 | "requires": {
3214 | "asn1.js": "^4.0.0",
3215 | "browserify-aes": "^1.0.0",
3216 | "create-hash": "^1.1.0",
3217 | "evp_bytestokey": "^1.0.0",
3218 | "pbkdf2": "^3.0.3"
3219 | }
3220 | },
3221 | "pascalcase": {
3222 | "version": "0.1.1",
3223 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3224 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3225 | "dev": true,
3226 | "optional": true
3227 | },
3228 | "path-browserify": {
3229 | "version": "0.0.0",
3230 | "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz",
3231 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
3232 | "dev": true
3233 | },
3234 | "path-dirname": {
3235 | "version": "1.0.2",
3236 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
3237 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
3238 | "dev": true,
3239 | "optional": true
3240 | },
3241 | "path-exists": {
3242 | "version": "3.0.0",
3243 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
3244 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
3245 | "dev": true
3246 | },
3247 | "path-is-absolute": {
3248 | "version": "1.0.1",
3249 | "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
3250 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3251 | "dev": true
3252 | },
3253 | "path-parse": {
3254 | "version": "1.0.5",
3255 | "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.5.tgz",
3256 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
3257 | "dev": true
3258 | },
3259 | "path-platform": {
3260 | "version": "0.11.15",
3261 | "resolved": "https://registry.npm.taobao.org/path-platform/download/path-platform-0.11.15.tgz",
3262 | "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",
3263 | "dev": true
3264 | },
3265 | "pbkdf2": {
3266 | "version": "3.0.9",
3267 | "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.9.tgz",
3268 | "integrity": "sha1-8sSyWmAAWLPDdzwIbDfbvuH/5pM=",
3269 | "dev": true,
3270 | "requires": {
3271 | "create-hmac": "^1.1.2"
3272 | }
3273 | },
3274 | "pify": {
3275 | "version": "4.0.1",
3276 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
3277 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
3278 | "dev": true
3279 | },
3280 | "pirates": {
3281 | "version": "4.0.1",
3282 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
3283 | "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
3284 | "dev": true,
3285 | "requires": {
3286 | "node-modules-regexp": "^1.0.0"
3287 | }
3288 | },
3289 | "pkg-dir": {
3290 | "version": "3.0.0",
3291 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
3292 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
3293 | "dev": true,
3294 | "requires": {
3295 | "find-up": "^3.0.0"
3296 | },
3297 | "dependencies": {
3298 | "find-up": {
3299 | "version": "3.0.0",
3300 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
3301 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
3302 | "dev": true,
3303 | "requires": {
3304 | "locate-path": "^3.0.0"
3305 | }
3306 | },
3307 | "locate-path": {
3308 | "version": "3.0.0",
3309 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
3310 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
3311 | "dev": true,
3312 | "requires": {
3313 | "p-locate": "^3.0.0",
3314 | "path-exists": "^3.0.0"
3315 | }
3316 | },
3317 | "p-limit": {
3318 | "version": "2.3.0",
3319 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
3320 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
3321 | "dev": true,
3322 | "requires": {
3323 | "p-try": "^2.0.0"
3324 | }
3325 | },
3326 | "p-locate": {
3327 | "version": "3.0.0",
3328 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
3329 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
3330 | "dev": true,
3331 | "requires": {
3332 | "p-limit": "^2.0.0"
3333 | }
3334 | },
3335 | "p-try": {
3336 | "version": "2.2.0",
3337 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
3338 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
3339 | "dev": true
3340 | }
3341 | }
3342 | },
3343 | "pkg-up": {
3344 | "version": "2.0.0",
3345 | "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
3346 | "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
3347 | "dev": true,
3348 | "requires": {
3349 | "find-up": "^2.1.0"
3350 | }
3351 | },
3352 | "posix-character-classes": {
3353 | "version": "0.1.1",
3354 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3355 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3356 | "dev": true,
3357 | "optional": true
3358 | },
3359 | "private": {
3360 | "version": "0.1.8",
3361 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
3362 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
3363 | "dev": true
3364 | },
3365 | "process": {
3366 | "version": "0.11.9",
3367 | "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.9.tgz",
3368 | "integrity": "sha1-e9WtIapiU+fahoImTx4R0RwDGME=",
3369 | "dev": true
3370 | },
3371 | "process-nextick-args": {
3372 | "version": "1.0.7",
3373 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
3374 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
3375 | "dev": true
3376 | },
3377 | "public-encrypt": {
3378 | "version": "4.0.0",
3379 | "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.0.tgz",
3380 | "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
3381 | "dev": true,
3382 | "requires": {
3383 | "bn.js": "^4.1.0",
3384 | "browserify-rsa": "^4.0.0",
3385 | "create-hash": "^1.1.0",
3386 | "parse-asn1": "^5.0.0",
3387 | "randombytes": "^2.0.1"
3388 | }
3389 | },
3390 | "punycode": {
3391 | "version": "1.4.1",
3392 | "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
3393 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
3394 | "dev": true
3395 | },
3396 | "querystring": {
3397 | "version": "0.2.0",
3398 | "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz",
3399 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
3400 | "dev": true
3401 | },
3402 | "querystring-es3": {
3403 | "version": "0.2.1",
3404 | "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
3405 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
3406 | "dev": true
3407 | },
3408 | "randombytes": {
3409 | "version": "2.0.3",
3410 | "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.0.3.tgz",
3411 | "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=",
3412 | "dev": true
3413 | },
3414 | "read-only-stream": {
3415 | "version": "2.0.0",
3416 | "resolved": "https://registry.npm.taobao.org/read-only-stream/download/read-only-stream-2.0.0.tgz",
3417 | "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
3418 | "dev": true,
3419 | "requires": {
3420 | "readable-stream": "^2.0.2"
3421 | }
3422 | },
3423 | "readable-stream": {
3424 | "version": "2.2.6",
3425 | "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.2.6.tgz",
3426 | "integrity": "sha1-i0Ou125xSDk40SqNRsbPGgCx+BY=",
3427 | "dev": true,
3428 | "requires": {
3429 | "buffer-shims": "^1.0.0",
3430 | "core-util-is": "~1.0.0",
3431 | "inherits": "~2.0.1",
3432 | "isarray": "~1.0.0",
3433 | "process-nextick-args": "~1.0.6",
3434 | "string_decoder": "~0.10.x",
3435 | "util-deprecate": "~1.0.1"
3436 | }
3437 | },
3438 | "readdirp": {
3439 | "version": "2.2.1",
3440 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
3441 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
3442 | "dev": true,
3443 | "optional": true,
3444 | "requires": {
3445 | "graceful-fs": "^4.1.11",
3446 | "micromatch": "^3.1.10",
3447 | "readable-stream": "^2.0.2"
3448 | }
3449 | },
3450 | "regenerate": {
3451 | "version": "1.4.1",
3452 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
3453 | "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==",
3454 | "dev": true
3455 | },
3456 | "regenerate-unicode-properties": {
3457 | "version": "8.2.0",
3458 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
3459 | "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
3460 | "dev": true,
3461 | "requires": {
3462 | "regenerate": "^1.4.0"
3463 | }
3464 | },
3465 | "regenerator-runtime": {
3466 | "version": "0.13.5",
3467 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
3468 | "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
3469 | "dev": true
3470 | },
3471 | "regenerator-transform": {
3472 | "version": "0.14.4",
3473 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
3474 | "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==",
3475 | "dev": true,
3476 | "requires": {
3477 | "@babel/runtime": "^7.8.4",
3478 | "private": "^0.1.8"
3479 | }
3480 | },
3481 | "regex-not": {
3482 | "version": "1.0.2",
3483 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3484 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3485 | "dev": true,
3486 | "optional": true,
3487 | "requires": {
3488 | "extend-shallow": "^3.0.2",
3489 | "safe-regex": "^1.1.0"
3490 | }
3491 | },
3492 | "regexpu-core": {
3493 | "version": "4.7.0",
3494 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
3495 | "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
3496 | "dev": true,
3497 | "requires": {
3498 | "regenerate": "^1.4.0",
3499 | "regenerate-unicode-properties": "^8.2.0",
3500 | "regjsgen": "^0.5.1",
3501 | "regjsparser": "^0.6.4",
3502 | "unicode-match-property-ecmascript": "^1.0.4",
3503 | "unicode-match-property-value-ecmascript": "^1.2.0"
3504 | }
3505 | },
3506 | "regjsgen": {
3507 | "version": "0.5.2",
3508 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
3509 | "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==",
3510 | "dev": true
3511 | },
3512 | "regjsparser": {
3513 | "version": "0.6.4",
3514 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
3515 | "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
3516 | "dev": true,
3517 | "requires": {
3518 | "jsesc": "~0.5.0"
3519 | },
3520 | "dependencies": {
3521 | "jsesc": {
3522 | "version": "0.5.0",
3523 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
3524 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
3525 | "dev": true
3526 | }
3527 | }
3528 | },
3529 | "remove-trailing-separator": {
3530 | "version": "1.1.0",
3531 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3532 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3533 | "dev": true,
3534 | "optional": true
3535 | },
3536 | "repeat-element": {
3537 | "version": "1.1.3",
3538 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3539 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3540 | "dev": true,
3541 | "optional": true
3542 | },
3543 | "repeat-string": {
3544 | "version": "1.6.1",
3545 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3546 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3547 | "dev": true,
3548 | "optional": true
3549 | },
3550 | "resolve": {
3551 | "version": "1.3.2",
3552 | "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.3.2.tgz",
3553 | "integrity": "sha1-HwRCyeDLuBNuh7kwX5MvRsfygjU=",
3554 | "dev": true,
3555 | "requires": {
3556 | "path-parse": "^1.0.5"
3557 | }
3558 | },
3559 | "resolve-url": {
3560 | "version": "0.2.1",
3561 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
3562 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
3563 | "dev": true,
3564 | "optional": true
3565 | },
3566 | "ret": {
3567 | "version": "0.1.15",
3568 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
3569 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
3570 | "dev": true,
3571 | "optional": true
3572 | },
3573 | "ripemd160": {
3574 | "version": "1.0.1",
3575 | "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-1.0.1.tgz",
3576 | "integrity": "sha1-k6S71JQrxXS2mo+lfHHeEOzKfW4=",
3577 | "dev": true
3578 | },
3579 | "safe-buffer": {
3580 | "version": "5.1.2",
3581 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3582 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
3583 | },
3584 | "safe-regex": {
3585 | "version": "1.1.0",
3586 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
3587 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
3588 | "dev": true,
3589 | "optional": true,
3590 | "requires": {
3591 | "ret": "~0.1.10"
3592 | }
3593 | },
3594 | "semver": {
3595 | "version": "5.7.1",
3596 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3597 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
3598 | "dev": true
3599 | },
3600 | "set-value": {
3601 | "version": "2.0.1",
3602 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
3603 | "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
3604 | "dev": true,
3605 | "optional": true,
3606 | "requires": {
3607 | "extend-shallow": "^2.0.1",
3608 | "is-extendable": "^0.1.1",
3609 | "is-plain-object": "^2.0.3",
3610 | "split-string": "^3.0.1"
3611 | },
3612 | "dependencies": {
3613 | "extend-shallow": {
3614 | "version": "2.0.1",
3615 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3616 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3617 | "dev": true,
3618 | "optional": true,
3619 | "requires": {
3620 | "is-extendable": "^0.1.0"
3621 | }
3622 | }
3623 | }
3624 | },
3625 | "sha.js": {
3626 | "version": "2.4.8",
3627 | "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.8.tgz",
3628 | "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
3629 | "dev": true,
3630 | "requires": {
3631 | "inherits": "^2.0.1"
3632 | }
3633 | },
3634 | "shasum": {
3635 | "version": "1.0.2",
3636 | "resolved": "https://registry.npm.taobao.org/shasum/download/shasum-1.0.2.tgz",
3637 | "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
3638 | "dev": true,
3639 | "requires": {
3640 | "json-stable-stringify": "~0.0.0",
3641 | "sha.js": "~2.4.4"
3642 | }
3643 | },
3644 | "shell-quote": {
3645 | "version": "1.6.1",
3646 | "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.6.1.tgz",
3647 | "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
3648 | "dev": true,
3649 | "requires": {
3650 | "array-filter": "~0.0.0",
3651 | "array-map": "~0.0.0",
3652 | "array-reduce": "~0.0.0",
3653 | "jsonify": "~0.0.0"
3654 | }
3655 | },
3656 | "slash": {
3657 | "version": "2.0.0",
3658 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
3659 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
3660 | "dev": true
3661 | },
3662 | "snapdragon": {
3663 | "version": "0.8.2",
3664 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
3665 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
3666 | "dev": true,
3667 | "optional": true,
3668 | "requires": {
3669 | "base": "^0.11.1",
3670 | "debug": "^2.2.0",
3671 | "define-property": "^0.2.5",
3672 | "extend-shallow": "^2.0.1",
3673 | "map-cache": "^0.2.2",
3674 | "source-map": "^0.5.6",
3675 | "source-map-resolve": "^0.5.0",
3676 | "use": "^3.1.0"
3677 | },
3678 | "dependencies": {
3679 | "define-property": {
3680 | "version": "0.2.5",
3681 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3682 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3683 | "dev": true,
3684 | "optional": true,
3685 | "requires": {
3686 | "is-descriptor": "^0.1.0"
3687 | }
3688 | },
3689 | "extend-shallow": {
3690 | "version": "2.0.1",
3691 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
3692 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
3693 | "dev": true,
3694 | "optional": true,
3695 | "requires": {
3696 | "is-extendable": "^0.1.0"
3697 | }
3698 | }
3699 | }
3700 | },
3701 | "snapdragon-node": {
3702 | "version": "2.1.1",
3703 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
3704 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
3705 | "dev": true,
3706 | "optional": true,
3707 | "requires": {
3708 | "define-property": "^1.0.0",
3709 | "isobject": "^3.0.0",
3710 | "snapdragon-util": "^3.0.1"
3711 | },
3712 | "dependencies": {
3713 | "define-property": {
3714 | "version": "1.0.0",
3715 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
3716 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
3717 | "dev": true,
3718 | "optional": true,
3719 | "requires": {
3720 | "is-descriptor": "^1.0.0"
3721 | }
3722 | },
3723 | "is-accessor-descriptor": {
3724 | "version": "1.0.0",
3725 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3726 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3727 | "dev": true,
3728 | "optional": true,
3729 | "requires": {
3730 | "kind-of": "^6.0.0"
3731 | }
3732 | },
3733 | "is-data-descriptor": {
3734 | "version": "1.0.0",
3735 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3736 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3737 | "dev": true,
3738 | "optional": true,
3739 | "requires": {
3740 | "kind-of": "^6.0.0"
3741 | }
3742 | },
3743 | "is-descriptor": {
3744 | "version": "1.0.2",
3745 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3746 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3747 | "dev": true,
3748 | "optional": true,
3749 | "requires": {
3750 | "is-accessor-descriptor": "^1.0.0",
3751 | "is-data-descriptor": "^1.0.0",
3752 | "kind-of": "^6.0.2"
3753 | }
3754 | }
3755 | }
3756 | },
3757 | "snapdragon-util": {
3758 | "version": "3.0.1",
3759 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
3760 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
3761 | "dev": true,
3762 | "optional": true,
3763 | "requires": {
3764 | "kind-of": "^3.2.0"
3765 | },
3766 | "dependencies": {
3767 | "kind-of": {
3768 | "version": "3.2.2",
3769 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3770 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3771 | "dev": true,
3772 | "optional": true,
3773 | "requires": {
3774 | "is-buffer": "^1.1.5"
3775 | }
3776 | }
3777 | }
3778 | },
3779 | "source-map": {
3780 | "version": "0.5.6",
3781 | "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.6.tgz",
3782 | "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
3783 | "dev": true
3784 | },
3785 | "source-map-resolve": {
3786 | "version": "0.5.3",
3787 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
3788 | "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
3789 | "dev": true,
3790 | "optional": true,
3791 | "requires": {
3792 | "atob": "^2.1.2",
3793 | "decode-uri-component": "^0.2.0",
3794 | "resolve-url": "^0.2.1",
3795 | "source-map-url": "^0.4.0",
3796 | "urix": "^0.1.0"
3797 | }
3798 | },
3799 | "source-map-support": {
3800 | "version": "0.5.19",
3801 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
3802 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
3803 | "dev": true,
3804 | "requires": {
3805 | "buffer-from": "^1.0.0",
3806 | "source-map": "^0.6.0"
3807 | },
3808 | "dependencies": {
3809 | "source-map": {
3810 | "version": "0.6.1",
3811 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3812 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3813 | "dev": true
3814 | }
3815 | }
3816 | },
3817 | "source-map-url": {
3818 | "version": "0.4.0",
3819 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
3820 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
3821 | "dev": true,
3822 | "optional": true
3823 | },
3824 | "split-string": {
3825 | "version": "3.1.0",
3826 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
3827 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
3828 | "dev": true,
3829 | "optional": true,
3830 | "requires": {
3831 | "extend-shallow": "^3.0.0"
3832 | }
3833 | },
3834 | "static-extend": {
3835 | "version": "0.1.2",
3836 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
3837 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
3838 | "dev": true,
3839 | "optional": true,
3840 | "requires": {
3841 | "define-property": "^0.2.5",
3842 | "object-copy": "^0.1.0"
3843 | },
3844 | "dependencies": {
3845 | "define-property": {
3846 | "version": "0.2.5",
3847 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3848 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3849 | "dev": true,
3850 | "optional": true,
3851 | "requires": {
3852 | "is-descriptor": "^0.1.0"
3853 | }
3854 | }
3855 | }
3856 | },
3857 | "stream-browserify": {
3858 | "version": "2.0.1",
3859 | "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.1.tgz",
3860 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
3861 | "dev": true,
3862 | "requires": {
3863 | "inherits": "~2.0.1",
3864 | "readable-stream": "^2.0.2"
3865 | }
3866 | },
3867 | "stream-combiner2": {
3868 | "version": "1.1.1",
3869 | "resolved": "https://registry.npm.taobao.org/stream-combiner2/download/stream-combiner2-1.1.1.tgz",
3870 | "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
3871 | "dev": true,
3872 | "requires": {
3873 | "duplexer2": "~0.1.0",
3874 | "readable-stream": "^2.0.2"
3875 | }
3876 | },
3877 | "stream-http": {
3878 | "version": "2.6.3",
3879 | "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.6.3.tgz",
3880 | "integrity": "sha1-TD3b+WNZaOos/U5I1D3l3vJiWsM=",
3881 | "dev": true,
3882 | "requires": {
3883 | "builtin-status-codes": "^3.0.0",
3884 | "inherits": "^2.0.1",
3885 | "readable-stream": "^2.1.0",
3886 | "to-arraybuffer": "^1.0.0",
3887 | "xtend": "^4.0.0"
3888 | }
3889 | },
3890 | "stream-splicer": {
3891 | "version": "2.0.0",
3892 | "resolved": "https://registry.npm.taobao.org/stream-splicer/download/stream-splicer-2.0.0.tgz",
3893 | "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
3894 | "dev": true,
3895 | "requires": {
3896 | "inherits": "^2.0.1",
3897 | "readable-stream": "^2.0.2"
3898 | }
3899 | },
3900 | "string_decoder": {
3901 | "version": "0.10.31",
3902 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3903 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
3904 | "dev": true
3905 | },
3906 | "subarg": {
3907 | "version": "1.0.0",
3908 | "resolved": "https://registry.npm.taobao.org/subarg/download/subarg-1.0.0.tgz",
3909 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
3910 | "dev": true,
3911 | "requires": {
3912 | "minimist": "^1.1.0"
3913 | },
3914 | "dependencies": {
3915 | "minimist": {
3916 | "version": "1.2.5",
3917 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
3918 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
3919 | "dev": true
3920 | }
3921 | }
3922 | },
3923 | "supports-color": {
3924 | "version": "5.5.0",
3925 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3926 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3927 | "dev": true,
3928 | "requires": {
3929 | "has-flag": "^3.0.0"
3930 | }
3931 | },
3932 | "syntax-error": {
3933 | "version": "1.3.0",
3934 | "resolved": "https://registry.npm.taobao.org/syntax-error/download/syntax-error-1.3.0.tgz",
3935 | "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=",
3936 | "dev": true,
3937 | "requires": {
3938 | "acorn": "^4.0.3"
3939 | }
3940 | },
3941 | "through": {
3942 | "version": "2.3.8",
3943 | "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
3944 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
3945 | "dev": true
3946 | },
3947 | "through2": {
3948 | "version": "2.0.3",
3949 | "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.3.tgz",
3950 | "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
3951 | "dev": true,
3952 | "requires": {
3953 | "readable-stream": "^2.1.5",
3954 | "xtend": "~4.0.1"
3955 | }
3956 | },
3957 | "timers-browserify": {
3958 | "version": "1.4.2",
3959 | "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-1.4.2.tgz",
3960 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
3961 | "dev": true,
3962 | "requires": {
3963 | "process": "~0.11.0"
3964 | }
3965 | },
3966 | "to-arraybuffer": {
3967 | "version": "1.0.1",
3968 | "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
3969 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
3970 | "dev": true
3971 | },
3972 | "to-fast-properties": {
3973 | "version": "2.0.0",
3974 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3975 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
3976 | "dev": true
3977 | },
3978 | "to-object-path": {
3979 | "version": "0.3.0",
3980 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
3981 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
3982 | "dev": true,
3983 | "optional": true,
3984 | "requires": {
3985 | "kind-of": "^3.0.2"
3986 | },
3987 | "dependencies": {
3988 | "kind-of": {
3989 | "version": "3.2.2",
3990 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3991 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3992 | "dev": true,
3993 | "optional": true,
3994 | "requires": {
3995 | "is-buffer": "^1.1.5"
3996 | }
3997 | }
3998 | }
3999 | },
4000 | "to-regex": {
4001 | "version": "3.0.2",
4002 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4003 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
4004 | "dev": true,
4005 | "optional": true,
4006 | "requires": {
4007 | "define-property": "^2.0.2",
4008 | "extend-shallow": "^3.0.2",
4009 | "regex-not": "^1.0.2",
4010 | "safe-regex": "^1.1.0"
4011 | }
4012 | },
4013 | "to-regex-range": {
4014 | "version": "2.1.1",
4015 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4016 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4017 | "dev": true,
4018 | "optional": true,
4019 | "requires": {
4020 | "is-number": "^3.0.0",
4021 | "repeat-string": "^1.6.1"
4022 | }
4023 | },
4024 | "tty-browserify": {
4025 | "version": "0.0.0",
4026 | "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
4027 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
4028 | "dev": true
4029 | },
4030 | "typedarray": {
4031 | "version": "0.0.6",
4032 | "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
4033 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
4034 | "dev": true
4035 | },
4036 | "uglify-js": {
4037 | "version": "3.9.4",
4038 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz",
4039 | "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==",
4040 | "dev": true,
4041 | "requires": {
4042 | "commander": "~2.20.3"
4043 | },
4044 | "dependencies": {
4045 | "commander": {
4046 | "version": "2.20.3",
4047 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
4048 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
4049 | "dev": true
4050 | }
4051 | }
4052 | },
4053 | "umd": {
4054 | "version": "3.0.1",
4055 | "resolved": "https://registry.npm.taobao.org/umd/download/umd-3.0.1.tgz",
4056 | "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=",
4057 | "dev": true
4058 | },
4059 | "unicode-canonical-property-names-ecmascript": {
4060 | "version": "1.0.4",
4061 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
4062 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
4063 | "dev": true
4064 | },
4065 | "unicode-match-property-ecmascript": {
4066 | "version": "1.0.4",
4067 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
4068 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
4069 | "dev": true,
4070 | "requires": {
4071 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
4072 | "unicode-property-aliases-ecmascript": "^1.0.4"
4073 | }
4074 | },
4075 | "unicode-match-property-value-ecmascript": {
4076 | "version": "1.2.0",
4077 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
4078 | "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
4079 | "dev": true
4080 | },
4081 | "unicode-property-aliases-ecmascript": {
4082 | "version": "1.1.0",
4083 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
4084 | "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
4085 | "dev": true
4086 | },
4087 | "union-value": {
4088 | "version": "1.0.1",
4089 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
4090 | "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
4091 | "dev": true,
4092 | "optional": true,
4093 | "requires": {
4094 | "arr-union": "^3.1.0",
4095 | "get-value": "^2.0.6",
4096 | "is-extendable": "^0.1.1",
4097 | "set-value": "^2.0.1"
4098 | }
4099 | },
4100 | "unset-value": {
4101 | "version": "1.0.0",
4102 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
4103 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
4104 | "dev": true,
4105 | "optional": true,
4106 | "requires": {
4107 | "has-value": "^0.3.1",
4108 | "isobject": "^3.0.0"
4109 | },
4110 | "dependencies": {
4111 | "has-value": {
4112 | "version": "0.3.1",
4113 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
4114 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
4115 | "dev": true,
4116 | "optional": true,
4117 | "requires": {
4118 | "get-value": "^2.0.3",
4119 | "has-values": "^0.1.4",
4120 | "isobject": "^2.0.0"
4121 | },
4122 | "dependencies": {
4123 | "isobject": {
4124 | "version": "2.1.0",
4125 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4126 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4127 | "dev": true,
4128 | "optional": true,
4129 | "requires": {
4130 | "isarray": "1.0.0"
4131 | }
4132 | }
4133 | }
4134 | },
4135 | "has-values": {
4136 | "version": "0.1.4",
4137 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
4138 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
4139 | "dev": true,
4140 | "optional": true
4141 | }
4142 | }
4143 | },
4144 | "upath": {
4145 | "version": "1.2.0",
4146 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
4147 | "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
4148 | "dev": true,
4149 | "optional": true
4150 | },
4151 | "urix": {
4152 | "version": "0.1.0",
4153 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
4154 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
4155 | "dev": true,
4156 | "optional": true
4157 | },
4158 | "url": {
4159 | "version": "0.11.0",
4160 | "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
4161 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
4162 | "dev": true,
4163 | "requires": {
4164 | "punycode": "1.3.2",
4165 | "querystring": "0.2.0"
4166 | },
4167 | "dependencies": {
4168 | "punycode": {
4169 | "version": "1.3.2",
4170 | "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
4171 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
4172 | "dev": true
4173 | }
4174 | }
4175 | },
4176 | "use": {
4177 | "version": "3.1.1",
4178 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
4179 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
4180 | "dev": true,
4181 | "optional": true
4182 | },
4183 | "util": {
4184 | "version": "0.10.3",
4185 | "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz",
4186 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
4187 | "dev": true,
4188 | "requires": {
4189 | "inherits": "2.0.1"
4190 | }
4191 | },
4192 | "util-deprecate": {
4193 | "version": "1.0.2",
4194 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4195 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
4196 | "dev": true
4197 | },
4198 | "vm-browserify": {
4199 | "version": "0.0.4",
4200 | "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz",
4201 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
4202 | "dev": true,
4203 | "requires": {
4204 | "indexof": "0.0.1"
4205 | }
4206 | },
4207 | "wrappy": {
4208 | "version": "1.0.2",
4209 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4210 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4211 | "dev": true
4212 | },
4213 | "ws": {
4214 | "version": "4.1.0",
4215 | "resolved": "http://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
4216 | "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
4217 | "requires": {
4218 | "async-limiter": "~1.0.0",
4219 | "safe-buffer": "~5.1.0"
4220 | }
4221 | },
4222 | "xtend": {
4223 | "version": "4.0.1",
4224 | "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
4225 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
4226 | "dev": true
4227 | }
4228 | }
4229 | }
4230 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gxbjs-ws",
3 | "version": "1.2.1",
4 | "description": "Pure JavaScript GXChain websocket interface for node.js and browsers.",
5 | "browser": {
6 | "ws": false
7 | },
8 | "scripts": {
9 | "clean": "rm -rf ./cjs/* & rm -rf ./build/* & rm -rf ./es/*",
10 | "prebuild": "npm run clean",
11 | "build": "BABEL_ENV=cjs babel lib --out-dir cjs",
12 | "build-es": "BABEL_ENV=es babel ./lib -d es",
13 | "postbuild": "npm run browserify && npm run build-es",
14 | "prepublish": "npm run build",
15 | "browserify": "NODE_ENV=production browserify cjs/src/ApiInstances.js --standalone gxbjs_ws -o build/gxbjs-ws.js -d",
16 | "postbrowserify": "uglifyjs build/gxbjs-ws.js --compress --mangle --sequences --drop_console --mangle-props --output build/gxbjs-ws.min.js",
17 | "bundle": "npm run browserify && npm run minify"
18 | },
19 | "repository": {
20 | "type": "git",
21 | "url": "git+https://github.com/gxchain/gxbjs-ws.git"
22 | },
23 | "author": "David Lan (https://github.com/lanhaoxiang)",
24 | "contributors": [
25 | "James Calfee (https://github.com/jcalfee/)",
26 | "David Lan (https://github.com/lanhaoxiang/)"
27 | ],
28 | "license": "BSD-2-Clause-FreeBSD",
29 | "bugs": {
30 | "url": "https://github.com/gxchain/gxbjs-ws/issues"
31 | },
32 | "engines": {
33 | "node": ">= 6.0.0"
34 | },
35 | "main": "cjs/index.js",
36 | "jsnext:main": "es/index.js",
37 | "dependencies": {
38 | "ws": "^4.1.0"
39 | },
40 | "devDependencies": {
41 | "@babel/cli": "^7.2.3",
42 | "@babel/core": "^7.3.4",
43 | "@babel/plugin-transform-runtime": "^7.3.4",
44 | "@babel/preset-env": "^7.3.4",
45 | "@babel/register": "^7.0.0",
46 | "assert": "^1.3.0",
47 | "browserify": "^13.0.1",
48 | "mocha": "^5.2.0",
49 | "uglify-js": "^3.9.4"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/test/connect.js:
--------------------------------------------------------------------------------
1 | import {Apis} from '../lib'
2 |
3 | Apis.instance('wss://node5.gxb.io',true).init_promise.then(res=>{
4 | console.log(res);
5 | }).catch(ex=>{
6 | console.error(ex);
7 | });
8 |
--------------------------------------------------------------------------------
/test/manager.js:
--------------------------------------------------------------------------------
1 | import {Manager} from '../lib';
2 |
3 | let manager = new Manager ({url: 'wss://node5.gxb.io', urls: ['wss://node5.gxb.io','wss://node1.gxb.io'], autoFallback: true});
4 |
5 | manager.connectWithFallback (true).then (() => {
6 | setTimeout (() => {
7 | Manager.close ();
8 | }, 3000);
9 | }).catch (ex => {
10 | console.error (ex);
11 | });
12 |
--------------------------------------------------------------------------------
/tools/es2015Preset.js:
--------------------------------------------------------------------------------
1 | const buildPreset = require('babel-preset-es2015').buildPreset
2 |
3 | const BABEL_ENV = process.env.BABEL_ENV
4 |
5 | module.exports = {
6 | presets: [
7 | [ buildPreset, {
8 | loose: true,
9 | modules: BABEL_ENV === 'es' ? false : 'commonjs'
10 | } ]
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------