├── agent ├── src │ ├── ready.js │ ├── path.js │ ├── libc.js │ ├── libarchive.js │ ├── romembuf.js │ └── index.js ├── package.json ├── .gitignore └── package-lock.json ├── LICENSE ├── .gitignore ├── README.md └── dump.py /agent/src/ready.js: -------------------------------------------------------------------------------- 1 | const dlopen = new NativeFunction(Module.findExportByName(null, 'dlopen'), 'pointer', ['pointer', 'int']) 2 | dlopen(Memory.allocUtf8String('/usr/lib/libarchive.dylib'), 0) 3 | dlopen(Memory.allocUtf8String('/System/Library/Frameworks/Foundation.framework/Foundation'), 0) 4 | 5 | Module.ensureInitialized('Foundation') 6 | -------------------------------------------------------------------------------- /agent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frida-ipa-agent", 3 | "version": "0.0.2", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "frida-compile src -o dist.js", 9 | "watch": "frida-compile src -o dist.js --watch" 10 | }, 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "macho": "^1.3.0" 15 | }, 16 | "devDependencies": { 17 | "frida-compile": "^9.0.8" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /agent/src/path.js: -------------------------------------------------------------------------------- 1 | const SEP = '/' 2 | 3 | export function relativeTo(base, full) { 4 | const a = normalize(base).split(SEP) 5 | const b = normalize(full).split(SEP) 6 | 7 | let i = 0; 8 | while (a[i] === b[i]) 9 | i++ 10 | return b.slice(i).join(SEP) 11 | } 12 | 13 | export function normalize(path) { 14 | return ObjC.classes.NSString.stringWithString_(path) 15 | .stringByStandardizingPath().toString() 16 | } 17 | 18 | export function rstrip(path) { 19 | return path.replace(/\/$/, '') 20 | } 21 | 22 | export function join() { 23 | return [].map.call(arguments, rstrip).join(SEP) 24 | } 25 | 26 | export function basename(path) { 27 | return ObjC.classes.NSString.stringWithString_(path) 28 | .lastPathComponent().toString() 29 | } -------------------------------------------------------------------------------- /agent/src/libc.js: -------------------------------------------------------------------------------- 1 | const wrap = (symbol, ret, args) => 2 | new NativeFunction(Module.findExportByName(null, symbol), ret, args) 3 | 4 | export const open = wrap('open', 'int', ['pointer', 'int', 'int']) 5 | export const close = wrap('close', 'int', ['int']) 6 | export const read = wrap('read', 'int', ['int', 'pointer', 'int']) 7 | export const write = wrap('write', 'int', ['int', 'pointer', 'int']) 8 | export const lseek = wrap('lseek', 'int64', ['int', 'int64', 'int']) 9 | export const unlink = wrap('unlink', 'int', ['pointer']) 10 | export const getenv = wrap('getenv', 'pointer', ['pointer']) 11 | 12 | export const O_RDONLY = 0 13 | export const O_RDWR = 2 14 | 15 | export const SEEK_SET = 0 16 | 17 | 18 | // https://github.com/apple/darwin-xnu/blob/master/bsd/sys/mman.h 19 | 20 | export const PROT_READ = 0x1 21 | export const PROT_WRITE = 0x2 22 | 23 | export const MAP_SHARED = 0x1 24 | export const MAP_PRIVATE = 0x2 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 CodeColorist 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 | -------------------------------------------------------------------------------- /agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | 63 | # vuepress build output 64 | .vuepress/dist 65 | -------------------------------------------------------------------------------- /agent/src/libarchive.js: -------------------------------------------------------------------------------- 1 | const specs = { 2 | archive_write_set_format_zip: ['int', ['pointer']], 3 | archive_write_new: ['pointer', []], 4 | archive_write_open_filename: ['int', ['pointer', 'pointer']], 5 | archive_entry_new: ['pointer', []], 6 | archive_entry_set_size: ['int', ['pointer', 'uint']], 7 | archive_entry_set_filetype: ['int', ['pointer', 'int']], 8 | archive_entry_set_perm: ['int', ['pointer', 'int']], 9 | archive_entry_set_pathname: ['int', ['pointer', 'pointer']], 10 | archive_entry_set_ctime: ['int', ['pointer', 'long', 'long']], 11 | archive_entry_set_mtime: ['int', ['pointer', 'long', 'long']], 12 | archive_write_header: ['int', ['pointer', 'pointer']], 13 | archive_write_data: ['int', ['pointer', 'pointer', 'uint']], 14 | archive_write_finish_entry: ['int', ['pointer']], 15 | archive_entry_free: ['int', ['pointer']], 16 | archive_write_finish: ['int', ['pointer']], 17 | } 18 | 19 | /* 20 | archive_write_finish() This is a deprecated synonym for archive_write_free(). 21 | but libarchive on *OS doesn't seem to have archive_write_free() 22 | */ 23 | 24 | const camelCase = name => name.replace(/_([a-z])/g, g => g[1].toUpperCase()); 25 | const libarchive = Process.enumerateModulesSync().filter(mod => 26 | mod.name.startsWith('libarchive.')).pop().name 27 | 28 | for (let [name, signature] of Object.entries(specs)) { 29 | const mangled = camelCase(name.substr('archive_'.length)) 30 | const p = Module.findExportByName(libarchive, name) 31 | const [retType, argTypes] = signature 32 | module.exports[mangled] = new NativeFunction(p, retType, argTypes) 33 | } 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # iOS apps 2 | *.ipa 3 | 4 | # vscode 5 | .vscode/ 6 | 7 | # Byte-compiled / optimized / DLL files 8 | __pycache__/ 9 | *.py[cod] 10 | *$py.class 11 | 12 | # C extensions 13 | *.so 14 | 15 | # Distribution / packaging 16 | .Python 17 | build/ 18 | develop-eggs/ 19 | dist/ 20 | downloads/ 21 | eggs/ 22 | .eggs/ 23 | lib/ 24 | lib64/ 25 | parts/ 26 | sdist/ 27 | var/ 28 | wheels/ 29 | *.egg-info/ 30 | .installed.cfg 31 | *.egg 32 | MANIFEST 33 | 34 | # PyInstaller 35 | # Usually these files are written by a python script from a template 36 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 37 | *.manifest 38 | *.spec 39 | 40 | # Installer logs 41 | pip-log.txt 42 | pip-delete-this-directory.txt 43 | 44 | # Unit test / coverage reports 45 | htmlcov/ 46 | .tox/ 47 | .coverage 48 | .coverage.* 49 | .cache 50 | nosetests.xml 51 | coverage.xml 52 | *.cover 53 | .hypothesis/ 54 | .pytest_cache/ 55 | 56 | # Translations 57 | *.mo 58 | *.pot 59 | 60 | # Django stuff: 61 | *.log 62 | local_settings.py 63 | db.sqlite3 64 | 65 | # Flask stuff: 66 | instance/ 67 | .webassets-cache 68 | 69 | # Scrapy stuff: 70 | .scrapy 71 | 72 | # Sphinx documentation 73 | docs/_build/ 74 | 75 | # PyBuilder 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # pyenv 82 | .python-version 83 | 84 | # celery beat schedule file 85 | celerybeat-schedule 86 | 87 | # SageMath parsed files 88 | *.sage.py 89 | 90 | # Environments 91 | .env 92 | .venv 93 | env/ 94 | venv/ 95 | ENV/ 96 | env.bak/ 97 | venv.bak/ 98 | 99 | # Spyder project settings 100 | .spyderproject 101 | .spyproject 102 | 103 | # Rope project settings 104 | .ropeproject 105 | 106 | # mkdocs documentation 107 | /site 108 | 109 | # mypy 110 | .mypy_cache/ 111 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # frida-ipa-dump 2 | 3 | Currently dumping plugins will cause the app to be terminated by jetsam: https://github.com/ChiChou/frida-ipa-dump/issues/13 4 | 5 | I am working on a completly node.js rewritten version. 6 | 7 | --- 8 | 9 | Yet another frida based iOS dumpdecrypted 10 | 11 | Tested on macOS, supports both Python2 and Python3. 12 | 13 | Recommended frida version: > 12.6 14 | 15 | ## Configuration 16 | 17 | **No SSH required**. Just `pip install frida` 18 | 19 | ## Example 20 | 21 | ``` 22 | ➜ frida-ipa-dump git:(master) ./dump.py hackertracker 23 | [info] attaching to target 24 | [info] decrypting module hackertracker 25 | [info] compressing archive: /private/var/mobile/Containers/Data/Application/0F2B22A7-E2E3-4AAB-A183-F65520E8471F/tmp/ensa8nhyzt6.ipa 26 | [info] done /private/var/mobile/Containers/Data/Application/0F2B22A7-E2E3-4AAB-A183-F65520E8471F/tmp/ensa8nhyzt6.ipa 27 | [info] start transfering 28 | [info] downloaded 4.00MiB of 7.79MiB, 51.33% 29 | [info] downloaded 7.79MiB of 7.79MiB, 100.00% 30 | [info] transfer complete 31 | Output: hackertracker.ipa 32 | ``` 33 | 34 | ## FAQ 35 | 36 | Use `--verbose` to see full logs. 37 | 38 | WatchOS related files may cause reinstallation failure, so we'll skip such files by default. 39 | 40 | To preserve WatchOS binaries, use `--keep-watch` switch. 41 | 42 | ### `frida.NotSupportedError: unexpected error while probing dyld of target process` 43 | 44 | Double click home, swipe up to kill the App, retry 45 | 46 | ### `frida.InvalidOperationError: script is destroyed` 47 | 48 | App unexpectly crashed. This will only happen when App is launched by frida. 49 | 50 | Start the app on device, wait for the initialization, then retry. 51 | 52 | ### `frida.ProtocolError: unable to communicate with remote frida-server; please ensure that major versions match and that the remote Frida has the feature you are trying to use` 53 | 54 | `pip install -U frida` 55 | -------------------------------------------------------------------------------- /agent/src/romembuf.js: -------------------------------------------------------------------------------- 1 | /* eslint prefer-template:0, no-multi-assign:0, no-buffer-constructor:0 */ 2 | 3 | function ReadOnlyMemoryBuffer(address, size) { 4 | this.base = address 5 | this.size = this.length = size || 4096 6 | } 7 | 8 | const mapping = [ 9 | ['Int', 'Int', 4], 10 | ['UInt', 'UInt', 4], 11 | ['Float', 'Float', 4], 12 | ['Double', 'Double', 8], 13 | ['Int8', 'S8', 1], 14 | ['UInt8', 'U8', 1], 15 | ['Int16', 'S16', 2], 16 | ['UInt16', 'U16', 2], 17 | ['Int32', 'S32', 4], 18 | ['UInt32', 'U32', 4], 19 | ] 20 | 21 | const isLE = ((new Uint32Array((new Uint8Array([1, 2, 3, 4])).buffer))[0] === 0x04030201) 22 | const proto = ReadOnlyMemoryBuffer.prototype 23 | 24 | proto.slice = function(begin, end) { 25 | const size = typeof end === 'undefined' ? 26 | this.length : Math.min(end, this.length) - begin 27 | return new ReadOnlyMemoryBuffer(this.base.add(begin), size) 28 | } 29 | 30 | proto.toString = function() { 31 | return Memory.readUtf8String(this.base) 32 | } 33 | 34 | const noImpl = () => { 35 | throw new Error('not implemented') 36 | } 37 | 38 | mapping.forEach((type) => { 39 | const [bufferType, fridaType, size] = type 40 | 41 | proto['read' + bufferType] = function(offset) { 42 | const address = this.base.add(offset) 43 | return Memory['read' + fridaType](address) 44 | } 45 | 46 | proto['write' + bufferType] = noImpl 47 | 48 | const inverse = function(offset) { 49 | const address = this.base.add(offset) 50 | const buf = new Buffer(Memory.readByteArray(address, size)) 51 | return buf['read' + bufferType + (isLE ? 'BE' : 'LE')]() 52 | } 53 | 54 | if (size > 1) { 55 | // le, be 56 | proto['read' + bufferType + 'LE'] = isLE ? proto['read' + bufferType] : inverse 57 | proto['read' + bufferType + 'BE'] = isLE ? inverse : proto['read' + bufferType] 58 | 59 | // readonly 60 | proto['write' + bufferType + 'LE'] = proto['write' + bufferType + 'BE'] = noImpl 61 | } 62 | }) 63 | 64 | export default ReadOnlyMemoryBuffer -------------------------------------------------------------------------------- /dump.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # encoding: utf-8 3 | 4 | from __future__ import print_function 5 | 6 | import codecs 7 | import sys 8 | import tempfile 9 | import os 10 | import shutil 11 | import time 12 | from collections import namedtuple 13 | 14 | import frida 15 | 16 | 17 | def fatal(reason): 18 | print(reason) 19 | sys.exit(-1) 20 | 21 | 22 | def find_app(app_name_or_id, device_id, device_ip): 23 | if device_id is None: 24 | if device_ip is None: 25 | dev = frida.get_usb_device() 26 | else: 27 | frida.get_device_manager().add_remote_device(device_ip) 28 | dev = frida.get_device("tcp@" + device_ip) 29 | else: 30 | try: 31 | dev = next(dev for dev in frida.enumerate_devices() 32 | if dev.id.startswith(device_id)) 33 | except StopIteration: 34 | fatal('device id %s not found' % device_id) 35 | 36 | if dev.type not in ('tether', 'remote', 'usb'): 37 | fatal('unable to find device') 38 | 39 | try: 40 | app = next(app for app in dev.enumerate_applications() if 41 | app_name_or_id == app.identifier or 42 | app_name_or_id == app.name) 43 | except: 44 | print('app "%s" not found' % app_name_or_id) 45 | print('installed app:') 46 | for app in dev.enumerate_applications(): 47 | print('%s (%s)' % (app.name, app.identifier)) 48 | fatal('') 49 | 50 | return dev, app 51 | 52 | 53 | class FileReceiver(object): 54 | def __init__(self, script, filename): 55 | self.script = script 56 | self.session = None 57 | self.filename = filename 58 | self.fp = None 59 | self.size = 0 60 | 61 | def connect(self): 62 | self.script.on('message', self.on_message) 63 | 64 | def on_message(self, msg, data): 65 | if msg.get('type') != 'send': 66 | print('unknown message:', msg) 67 | return 68 | 69 | payload = msg.get('payload', {}) 70 | subject = payload.get('subject') 71 | if subject == 'download': 72 | method_mapping = { 73 | 'start': self.on_download_start, 74 | 'data': self.on_download_data, 75 | 'end': self.on_download_finish, 76 | 'error': self.on_download_error, 77 | } 78 | method = method_mapping[payload.get('event')] 79 | method(data=data, **payload) 80 | elif subject == 'finish': 81 | print('bye') 82 | self.session.detach() 83 | self.device.kill(self.app.pid) 84 | sys.exit(0) 85 | else: 86 | print('unknown message') 87 | print(msg) 88 | 89 | def on_download_start(self, session, size, **kwargs): 90 | self.session = session 91 | self.size = size 92 | self.fp = open(self.filename, 'wb') 93 | 94 | def on_download_data(self, session, data, **kwargs): 95 | assert(self.session == session) 96 | self.fp.write(data) 97 | self.script.post({'type': 'flush', 'payload': {}}) 98 | 99 | def on_download_finish(self, session, **kwargs): 100 | self.close_session(session) 101 | 102 | def on_download_error(self, session, **kwargs): 103 | self.close_session(session) 104 | 105 | def close_session(self, session): 106 | self.fp.close() 107 | self.session = None 108 | 109 | def on_console(level, text): 110 | print('[%s] %s' % (level, text)) 111 | 112 | class IPADump(object): 113 | 114 | def __init__(self, device, app, output=None, verbose=False, keep_watch=False, skip_plugins=False): 115 | self.device = device 116 | self.app = app 117 | self.session = None 118 | self.cwd = None 119 | self.tasks = {} 120 | self.output = output 121 | self.verbose = verbose 122 | self.skip_plugins = skip_plugins 123 | self.opt = { 124 | 'keepWatch': keep_watch, 125 | 'verbose': verbose, 126 | } 127 | self.ipa_name = '' 128 | 129 | def on_detach(self, reason): 130 | if reason != 'application-requested': 131 | print('[fatal] session detached, reason:', reason) 132 | sys.exit(-1) 133 | 134 | def dump(self): 135 | on_console('info', 'attaching to target') 136 | pid = self.app.pid 137 | spawn = not bool(pid) 138 | front = self.device.get_frontmost_application() 139 | if pid and front and front.pid != pid: 140 | self.device.kill(pid) 141 | spawn = True 142 | 143 | if spawn: 144 | pid = self.device.spawn(self.app.identifier) 145 | time.sleep(1) 146 | session = self.device.attach(pid) 147 | self.device.resume(pid) 148 | else: 149 | session = self.device.attach(pid) 150 | 151 | session.on('detached', self.on_detach) 152 | session.enable_jit() 153 | script = session.create_script(self.agent_source) 154 | script.set_log_handler(on_console) 155 | FileReceiver(script, self.ipa_name).connect() 156 | script.load() 157 | 158 | self.plugins = script.exports.plugins() 159 | self.script = script 160 | self.root = self.script.exports.root() 161 | 162 | if len(self.plugins) and self.skip_plugins == False: 163 | self.dump_with_plugins() 164 | else: 165 | decrypted = script.exports.decrypt(self.root) 166 | self.script.exports.archive(self.root, decrypted, self.opt) 167 | 168 | session.detach() 169 | # todo: option 170 | self.device.kill(self.app.pid) 171 | 172 | def dump_with_plugins(self): 173 | # handle plugins 174 | self.script.exports.start_pkd() 175 | pkd = self.device.attach('pkd') 176 | pkd_script = pkd.create_script(self.agent_source) 177 | pkd_script.set_log_handler(on_console) 178 | pkd_script.load() 179 | pkd_script.exports.skip_pkd_validation_for(self.app.pid) 180 | 181 | decrypted = self.script.exports.decrypt(self.root) 182 | for identifier in self.plugins: 183 | pid = self.script.exports.launch(identifier) 184 | print('plugin %s, pid=%d' % (identifier, pid)) 185 | session = self.device.attach(pid) 186 | script = session.create_script(self.agent_source) 187 | script.set_log_handler(on_console) 188 | script.load() 189 | 190 | decrypted += script.exports.decrypt(self.root) 191 | session.detach() 192 | self.device.kill(pid) 193 | 194 | pkd.detach() 195 | 196 | self.fetch_with_new_process(decrypted) 197 | 198 | def fetch_with_new_process(self, decrypted): 199 | pid = self.device.spawn('/bin/ps') 200 | time.sleep(1) 201 | sh = self.device.attach(pid) 202 | script = sh.create_script(self.agent_source) 203 | script.set_log_handler(on_console) 204 | handler = FileReceiver(script, self.ipa_name) 205 | handler.connect() 206 | script.load() 207 | script.exports.archive(self.root, decrypted, self.opt) 208 | sh.detach() 209 | self.device.kill(pid) 210 | 211 | 212 | def load_agent(self): 213 | agent = os.path.join('agent', 'dist.js') 214 | with codecs.open(agent, 'r', 'utf-8') as fp: 215 | self.agent_source = fp.read() 216 | 217 | def run(self): 218 | self.load_agent() 219 | if self.output is None: 220 | ipa_name = '.'.join([self.app.name, 'ipa']) 221 | elif os.path.isdir(self.output): 222 | ipa_name = os.path.join(self.output, '%s.%s' % 223 | (self.app.name, 'ipa')) 224 | else: 225 | ipa_name = self.output 226 | 227 | self.ipa_name = ipa_name 228 | self.dump() 229 | print('Output: %s' % ipa_name) 230 | 231 | 232 | def main(): 233 | import argparse 234 | parser = argparse.ArgumentParser() 235 | parser.add_argument('--device', nargs='?', help='device id (prefix)') 236 | parser.add_argument('--ip', nargs='?', help='ip to connect over network') 237 | parser.add_argument('app', help='application name or bundle id') 238 | parser.add_argument('-o', '--output', help='output filename') 239 | parser.add_argument('-v', '--verbose', help='verbose mode', action='store_true') 240 | parser.add_argument('--keep-watch', action='store_true', 241 | default=False, help='preserve WatchOS app'), 242 | parser.add_argument('--skip-plugins', action='store_true', 243 | default=False, help='skip app plugins') 244 | args = parser.parse_args() 245 | 246 | dev, app = find_app(args.app, args.device, args.ip) 247 | 248 | task = IPADump(dev, app, 249 | keep_watch=args.keep_watch, 250 | output=args.output, 251 | verbose=args.verbose, 252 | skip_plugins=args.skip_plugins) 253 | task.run() 254 | 255 | 256 | if __name__ == '__main__': 257 | main() 258 | -------------------------------------------------------------------------------- /agent/src/index.js: -------------------------------------------------------------------------------- 1 | import fs from 'frida-fs' 2 | import macho from 'macho' 3 | 4 | import './ready' 5 | import { open, close, write, lseek, O_RDONLY, O_RDWR, SEEK_SET } from './libc' 6 | import libarchive from './libarchive' 7 | import * as path from './path' 8 | 9 | import ReadOnlyMemoryBuffer from './romembuf' 10 | 11 | 12 | function dump(module) { 13 | const { name } = module 14 | const buffer = new ReadOnlyMemoryBuffer(module.base, module.size) 15 | const info = macho.parse(buffer) 16 | const matches = info.cmds.filter(cmd => /^encryption_info(_64)?$/.test(cmd.type) && cmd.id === 1) 17 | if (!matches.length) { 18 | if (!name.match(/^libswift\w+\.dylib$/)) 19 | console.warn(`Module ${name} is not encrypted`) 20 | return null 21 | } 22 | 23 | const encryptionInfo = matches.pop() 24 | const fd = open(Memory.allocUtf8String(module.path), O_RDONLY, 0) 25 | if (fd === -1) { 26 | console.error(`unable to read file ${module.path}, dump failed`) 27 | return null 28 | } 29 | close(fd) 30 | 31 | console.log('decrypting module', module.name) 32 | const tmp = path.join(tmpdir(), `${name}.decrypted`) 33 | 34 | // copy encrypted 35 | const err = Memory.alloc(Process.pointerSize) 36 | const fileManager = ObjC.classes.NSFileManager.defaultManager() 37 | if (fileManager.fileExistsAtPath_(tmp)) 38 | fileManager.removeItemAtPath_error_(tmp, err) 39 | fileManager.copyItemAtPath_toPath_error_(module.path, tmp, err) 40 | const desc = Memory.readPointer(err) 41 | if (!desc.isNull()) { 42 | console.error(`failed to copy file: ${new ObjC.Object(desc).toString()}`) 43 | return null 44 | } 45 | 46 | const output = Memory.allocUtf8String(tmp) 47 | const outfd = open(output, O_RDWR, 0) 48 | // skip fat header 49 | const fatOffset = Process.findRangeByAddress(module.base).file.offset 50 | 51 | // dump decrypted 52 | lseek(outfd, fatOffset + encryptionInfo.offset, SEEK_SET) 53 | write(outfd, module.base.add(encryptionInfo.offset), encryptionInfo.size) 54 | 55 | /* 56 | https://developer.apple.com/documentation/kernel/encryption_info_command 57 | https://developer.apple.com/documentation/kernel/encryption_info_command_64 58 | */ 59 | 60 | // erase cryptoff, cryptsize and cryptid 61 | const zeros = Memory.alloc(12) 62 | lseek(outfd, fatOffset + encryptionInfo.fileoff + 8, SEEK_SET) // skip cmd and cmdsize 63 | write(outfd, zeros, 12) 64 | close(outfd) 65 | 66 | return tmp 67 | } 68 | 69 | 70 | async function transfer(filename) { 71 | const session = Math.random().toString(36).substr(2) 72 | const highWaterMark = 4 * 1024 * 1024 73 | const subject = 'download' 74 | const { size } = fs.statSync(filename) 75 | const stream = fs.createReadStream(filename, { highWaterMark }) 76 | 77 | console.log('start transfering') 78 | send({ 79 | subject, 80 | event: 'start', 81 | session, 82 | size, 83 | }) 84 | 85 | const format = size => `${(size / 1024 / 1024).toFixed(2)}MiB` 86 | 87 | let sent = 0 88 | await new Promise((resolve, reject) => 89 | stream 90 | .on('data', chunk => { 91 | send({ 92 | subject, 93 | event: 'data', 94 | session, 95 | }, chunk) 96 | 97 | recv('flush', () => { }).wait() 98 | sent += chunk.byteLength 99 | console.log(`downloaded ${format(sent)} of ${format(size)}, ${(sent * 100 / size).toFixed(2)}%`) 100 | }) 101 | .on('end', resolve) 102 | .on('error', reject)) 103 | 104 | send({ 105 | subject, 106 | event: 'end', 107 | session, 108 | }) 109 | 110 | console.log('transfer complete') 111 | fs.unlinkSync(filename) 112 | 113 | try { 114 | const SOUND = 1007 115 | const playSound = Module.findExportByName('AudioToolbox', 'AudioServicesPlaySystemSound') 116 | new NativeFunction(playSound, 'void', ['int'])(SOUND) 117 | } catch (e) { 118 | 119 | } 120 | } 121 | 122 | const tmpdir = (function () { 123 | const f = new NativeFunction(Module.findExportByName(null, 'NSTemporaryDirectory'), 'pointer', []) 124 | const cache = new ObjC.Object(f()) + '' 125 | return () => cache 126 | })() 127 | 128 | 129 | rpc.exports = { 130 | plugins() { 131 | const { 132 | LSApplicationWorkspace, 133 | NSString, 134 | NSMutableArray, 135 | NSPredicate, 136 | NSBundle 137 | } = ObjC.classes 138 | 139 | const args = NSMutableArray.alloc().init() 140 | args.setObject_atIndex_(NSBundle.mainBundle().bundleIdentifier(), 0) 141 | const fmt = NSString.stringWithString_('containingBundle.applicationIdentifier=%@') 142 | const predicate = NSPredicate.predicateWithFormat_argumentArray_(fmt, args) 143 | const plugins = LSApplicationWorkspace.defaultWorkspace() 144 | .installedPlugins().filteredArrayUsingPredicate_(predicate) 145 | const result = [] 146 | for (let i = 0; i < plugins.count(); i++) { 147 | result.push(plugins.objectAtIndex_(i).pluginIdentifier() + '') 148 | } 149 | args.release() 150 | return result 151 | }, 152 | root() { 153 | return ObjC.classes.NSBundle.mainBundle().bundlePath().toString() 154 | }, 155 | startPkd() { 156 | ObjC.classes.NSExtension.extensionWithIdentifier_error_('com.apple.nonexist', NULL) 157 | }, 158 | launch(id) { 159 | const { NSExtension, NSString } = ObjC.classes 160 | const identifier = NSString.stringWithString_(id) 161 | const extension = NSExtension.extensionWithIdentifier_error_(identifier, NULL) 162 | if (!extension) 163 | throw new Error('unable to create extension ' + id) 164 | 165 | const pid = extension['- _plugInProcessIdentifier']() 166 | if (pid) 167 | return Promise.resolve(pid) 168 | 169 | return new Promise((resolve, reject) => { 170 | const timeout = setTimeout(() => { 171 | const pid = extension['- _plugInProcessIdentifier']() 172 | if (pid) 173 | resolve(pid) 174 | else 175 | reject('unable to get extension pid') 176 | }, 400) 177 | 178 | extension.beginExtensionRequestWithInputItems_completion_(NULL, new ObjC.Block({ 179 | retType: 'void', 180 | argTypes: ['object'], 181 | implementation(requestIdentifier) { 182 | clearTimeout(timeout) 183 | const pid = extension.pidForRequestIdentifier_(requestIdentifier) 184 | resolve(pid) 185 | } 186 | })) 187 | }) 188 | }, 189 | decrypt(root) { 190 | const modules = Process.enumerateModulesSync() 191 | .map(mod => Object.assign({}, mod, { path: path.normalize(mod.path) })) 192 | .filter(mod => mod.path.startsWith(path.normalize(root))) 193 | .map(mod => ({ 194 | relative: path.relativeTo(root, mod.path), 195 | absolute: mod.path, 196 | decrypted: dump(mod) 197 | })) 198 | return modules.filter(mod => mod.decrypted) 199 | }, 200 | async archive(root, decrypted, opt) { 201 | const pkg = path.join(tmpdir(), `${Math.random().toString(36).slice(2)}.ipa`) 202 | console.log('compressing archive:', pkg) 203 | 204 | const ar = libarchive.writeNew() 205 | libarchive.writeSetFormatZip(ar) 206 | libarchive.writeOpenFilename(ar, Memory.allocUtf8String(pkg)) 207 | 208 | const { NSFileManager } = ObjC.classes 209 | const fileMgr = NSFileManager.defaultManager() 210 | const enumerator = fileMgr.enumeratorAtPath_(root) 211 | 212 | const highWaterMark = 16 * 1024 * 1024 213 | const buf = Memory.alloc(highWaterMark) 214 | const prefix = path.join('Payload', path.basename(root)) 215 | 216 | const timestamp = date => Math.floor(date.getTime() / 1000) 217 | const lookup = {} 218 | for (let mod of decrypted) 219 | lookup[mod.relative] = mod 220 | 221 | let nextObj = null 222 | while (nextObj = enumerator.nextObject()) { 223 | const relative = nextObj.toString() 224 | if (/(\_CodeSignature\/CodeResources|SC_Info\/\w+\.s(inf|upf|upp|upx))$/.test(relative)) 225 | continue 226 | 227 | if (!opt.keepWatch && /^Watch\//.test(relative)) 228 | continue 229 | 230 | const absolute = path.join(root, relative) 231 | const st = fs.statSync(absolute) 232 | if (st.mode & fs.constants.S_IFDIR) { 233 | // doesn't need to handle? 234 | continue 235 | } else if (!(st.mode & fs.constants.S_IFREG)) { 236 | console.error('unknown file mode', absolute) 237 | } 238 | 239 | if (opt.verbose) 240 | console.log('compress:', relative) 241 | 242 | const entry = libarchive.entryNew() 243 | libarchive.entrySetPathname(entry, Memory.allocUtf8String(path.join(prefix, relative))) 244 | libarchive.entrySetSize(entry, st.size) 245 | libarchive.entrySetFiletype(entry, fs.constants.S_IFREG) 246 | libarchive.entrySetPerm(entry, st.mode & 0o777) 247 | libarchive.entrySetCtime(entry, timestamp(st.ctime), 0) 248 | libarchive.entrySetMtime(entry, timestamp(st.mtime), 0) 249 | libarchive.writeHeader(ar, entry) 250 | 251 | const filename = relative in lookup ? lookup[relative].decrypted : absolute 252 | let stream 253 | try { 254 | stream = fs.createReadStream(filename, { highWaterMark }) 255 | } catch (e) { 256 | if (!/(\/Plugins\/(.*)\.appex\/)?SC_Info\//.test(relative)) 257 | console.warn(`unable to open ${filename} (${e.message})`) 258 | continue 259 | } 260 | 261 | await new Promise((resolve, reject) => 262 | stream 263 | .on('data', chunk => { 264 | Memory.writeByteArray(buf, chunk) 265 | libarchive.writeData(ar, buf, chunk.byteLength) 266 | }) 267 | .on('end', resolve) 268 | .on('error', reject)) 269 | 270 | // delete decrypted file 271 | if (relative in lookup) 272 | fs.unlinkSync(filename) 273 | 274 | libarchive.writeFinishEntry(ar) 275 | libarchive.entryFree(entry) 276 | } 277 | 278 | libarchive.writeFinish(ar) 279 | console.log('done', pkg) 280 | return transfer(pkg) 281 | }, 282 | skipPkdValidationFor(pid) { 283 | if ('PKDPlugIn' in ObjC.classes) { 284 | const method = ObjC.classes.PKDPlugIn['- allowForClient:'] 285 | const original = method.implementation 286 | method.implementation = ObjC.implement(method, function (self, sel, conn) { 287 | // race condition huh? we don't care 288 | return pid === new ObjC.Object(conn).pid() ? NULL : original.call(this, arguments) 289 | }) 290 | } 291 | } 292 | } 293 | -------------------------------------------------------------------------------- /agent/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frida-ipa-agent", 3 | "version": "0.0.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.5.5", 9 | "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.5.5.tgz", 10 | "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/core": { 17 | "version": "7.5.5", 18 | "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.5.5.tgz", 19 | "integrity": "sha1-F7JobvDWvFj5Y93daKtml1VYLDA=", 20 | "dev": true, 21 | "requires": { 22 | "@babel/code-frame": "^7.5.5", 23 | "@babel/generator": "^7.5.5", 24 | "@babel/helpers": "^7.5.5", 25 | "@babel/parser": "^7.5.5", 26 | "@babel/template": "^7.4.4", 27 | "@babel/traverse": "^7.5.5", 28 | "@babel/types": "^7.5.5", 29 | "convert-source-map": "^1.1.0", 30 | "debug": "^4.1.0", 31 | "json5": "^2.1.0", 32 | "lodash": "^4.17.13", 33 | "resolve": "^1.3.2", 34 | "semver": "^5.4.1", 35 | "source-map": "^0.5.0" 36 | }, 37 | "dependencies": { 38 | "lodash": { 39 | "version": "4.17.15", 40 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 41 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 42 | "dev": true 43 | } 44 | } 45 | }, 46 | "@babel/generator": { 47 | "version": "7.5.5", 48 | "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.5.5.tgz", 49 | "integrity": "sha1-hzp/k2o8iUkbQ1NtEiRbYmZk488=", 50 | "dev": true, 51 | "requires": { 52 | "@babel/types": "^7.5.5", 53 | "jsesc": "^2.5.1", 54 | "lodash": "^4.17.13", 55 | "source-map": "^0.5.0", 56 | "trim-right": "^1.0.1" 57 | }, 58 | "dependencies": { 59 | "lodash": { 60 | "version": "4.17.15", 61 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 62 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 63 | "dev": true 64 | } 65 | } 66 | }, 67 | "@babel/helper-annotate-as-pure": { 68 | "version": "7.0.0", 69 | "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.0.0.tgz", 70 | "integrity": "sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=", 71 | "dev": true, 72 | "requires": { 73 | "@babel/types": "^7.0.0" 74 | } 75 | }, 76 | "@babel/helper-builder-binary-assignment-operator-visitor": { 77 | "version": "7.1.0", 78 | "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", 79 | "integrity": "sha1-a2lijf5Ah3mODE7Zjj1Kay+9L18=", 80 | "dev": true, 81 | "requires": { 82 | "@babel/helper-explode-assignable-expression": "^7.1.0", 83 | "@babel/types": "^7.0.0" 84 | } 85 | }, 86 | "@babel/helper-call-delegate": { 87 | "version": "7.4.4", 88 | "resolved": "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.4.4.tgz", 89 | "integrity": "sha1-h8H4yhmtVSpzanonscH8+LH/H0M=", 90 | "dev": true, 91 | "requires": { 92 | "@babel/helper-hoist-variables": "^7.4.4", 93 | "@babel/traverse": "^7.4.4", 94 | "@babel/types": "^7.4.4" 95 | } 96 | }, 97 | "@babel/helper-define-map": { 98 | "version": "7.5.5", 99 | "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.5.5.tgz", 100 | "integrity": "sha1-PewywgRvN+CbKMk+sLED/Sol02k=", 101 | "dev": true, 102 | "requires": { 103 | "@babel/helper-function-name": "^7.1.0", 104 | "@babel/types": "^7.5.5", 105 | "lodash": "^4.17.13" 106 | }, 107 | "dependencies": { 108 | "lodash": { 109 | "version": "4.17.15", 110 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 111 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 112 | "dev": true 113 | } 114 | } 115 | }, 116 | "@babel/helper-explode-assignable-expression": { 117 | "version": "7.1.0", 118 | "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.1.0.tgz", 119 | "integrity": "sha1-U3+hP28WdN90WwwA7I/k6ZaByPY=", 120 | "dev": true, 121 | "requires": { 122 | "@babel/traverse": "^7.1.0", 123 | "@babel/types": "^7.0.0" 124 | } 125 | }, 126 | "@babel/helper-function-name": { 127 | "version": "7.1.0", 128 | "resolved": "http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz", 129 | "integrity": "sha1-oM6wFoX3M1XUNgwSR/WCv6/I/1M=", 130 | "dev": true, 131 | "requires": { 132 | "@babel/helper-get-function-arity": "^7.0.0", 133 | "@babel/template": "^7.1.0", 134 | "@babel/types": "^7.0.0" 135 | } 136 | }, 137 | "@babel/helper-get-function-arity": { 138 | "version": "7.0.0", 139 | "resolved": "http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0.tgz", 140 | "integrity": "sha1-g1ctQyDipGVyY3NBE8QoaLZOScM=", 141 | "dev": true, 142 | "requires": { 143 | "@babel/types": "^7.0.0" 144 | } 145 | }, 146 | "@babel/helper-hoist-variables": { 147 | "version": "7.4.4", 148 | "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.4.4.tgz", 149 | "integrity": "sha1-Api18lyMCcUxAtUqxKmPdz6yhQo=", 150 | "dev": true, 151 | "requires": { 152 | "@babel/types": "^7.4.4" 153 | } 154 | }, 155 | "@babel/helper-member-expression-to-functions": { 156 | "version": "7.5.5", 157 | "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.5.5.tgz", 158 | "integrity": "sha1-H7W47ERTqTxDnun+Ou6kqEt2tZA=", 159 | "dev": true, 160 | "requires": { 161 | "@babel/types": "^7.5.5" 162 | } 163 | }, 164 | "@babel/helper-module-imports": { 165 | "version": "7.0.0", 166 | "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz", 167 | "integrity": "sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=", 168 | "dev": true, 169 | "requires": { 170 | "@babel/types": "^7.0.0" 171 | } 172 | }, 173 | "@babel/helper-module-transforms": { 174 | "version": "7.5.5", 175 | "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.5.5.tgz", 176 | "integrity": "sha1-+E/4oJA43Lyh/UNVZhpQCTcWW0o=", 177 | "dev": true, 178 | "requires": { 179 | "@babel/helper-module-imports": "^7.0.0", 180 | "@babel/helper-simple-access": "^7.1.0", 181 | "@babel/helper-split-export-declaration": "^7.4.4", 182 | "@babel/template": "^7.4.4", 183 | "@babel/types": "^7.5.5", 184 | "lodash": "^4.17.13" 185 | }, 186 | "dependencies": { 187 | "lodash": { 188 | "version": "4.17.15", 189 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 190 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 191 | "dev": true 192 | } 193 | } 194 | }, 195 | "@babel/helper-optimise-call-expression": { 196 | "version": "7.0.0", 197 | "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.0.0.tgz", 198 | "integrity": "sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=", 199 | "dev": true, 200 | "requires": { 201 | "@babel/types": "^7.0.0" 202 | } 203 | }, 204 | "@babel/helper-plugin-utils": { 205 | "version": "7.0.0", 206 | "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.0.0.tgz", 207 | "integrity": "sha1-u7P77phmHFaQNCN8wDlnupm08lA=", 208 | "dev": true 209 | }, 210 | "@babel/helper-regex": { 211 | "version": "7.5.5", 212 | "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.5.5.tgz?cache=0&sync_timestamp=1563427045119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.5.5.tgz", 213 | "integrity": "sha1-CqaCT3EAouDonBUnwjk2wVLKs1E=", 214 | "dev": true, 215 | "requires": { 216 | "lodash": "^4.17.13" 217 | }, 218 | "dependencies": { 219 | "lodash": { 220 | "version": "4.17.15", 221 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 222 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 223 | "dev": true 224 | } 225 | } 226 | }, 227 | "@babel/helper-remap-async-to-generator": { 228 | "version": "7.1.0", 229 | "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.1.0.tgz", 230 | "integrity": "sha1-Nh2AghtvONp1vT8HheziCojF/n8=", 231 | "dev": true, 232 | "requires": { 233 | "@babel/helper-annotate-as-pure": "^7.0.0", 234 | "@babel/helper-wrap-function": "^7.1.0", 235 | "@babel/template": "^7.1.0", 236 | "@babel/traverse": "^7.1.0", 237 | "@babel/types": "^7.0.0" 238 | } 239 | }, 240 | "@babel/helper-replace-supers": { 241 | "version": "7.5.5", 242 | "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.5.5.tgz", 243 | "integrity": "sha1-+EzkPfAxIi0rrQaNJibLV5nDS8I=", 244 | "dev": true, 245 | "requires": { 246 | "@babel/helper-member-expression-to-functions": "^7.5.5", 247 | "@babel/helper-optimise-call-expression": "^7.0.0", 248 | "@babel/traverse": "^7.5.5", 249 | "@babel/types": "^7.5.5" 250 | } 251 | }, 252 | "@babel/helper-simple-access": { 253 | "version": "7.1.0", 254 | "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.1.0.tgz", 255 | "integrity": "sha1-Ze65VMjCRb6qToWdphiPOdceWFw=", 256 | "dev": true, 257 | "requires": { 258 | "@babel/template": "^7.1.0", 259 | "@babel/types": "^7.0.0" 260 | } 261 | }, 262 | "@babel/helper-split-export-declaration": { 263 | "version": "7.4.4", 264 | "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.4.4.tgz", 265 | "integrity": "sha1-/5SJSjQL549T8GrwOLIFxJ2ZNnc=", 266 | "dev": true, 267 | "requires": { 268 | "@babel/types": "^7.4.4" 269 | } 270 | }, 271 | "@babel/helper-wrap-function": { 272 | "version": "7.2.0", 273 | "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.2.0.tgz", 274 | "integrity": "sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=", 275 | "dev": true, 276 | "requires": { 277 | "@babel/helper-function-name": "^7.1.0", 278 | "@babel/template": "^7.1.0", 279 | "@babel/traverse": "^7.1.0", 280 | "@babel/types": "^7.2.0" 281 | } 282 | }, 283 | "@babel/helpers": { 284 | "version": "7.5.5", 285 | "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.5.5.tgz", 286 | "integrity": "sha1-Y5CNKnOUIinR5mhbwqDnMN3jt14=", 287 | "dev": true, 288 | "requires": { 289 | "@babel/template": "^7.4.4", 290 | "@babel/traverse": "^7.5.5", 291 | "@babel/types": "^7.5.5" 292 | } 293 | }, 294 | "@babel/highlight": { 295 | "version": "7.5.0", 296 | "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.5.0.tgz", 297 | "integrity": "sha1-VtETEr2SSPphlZHQJHK+boyzJUA=", 298 | "dev": true, 299 | "requires": { 300 | "chalk": "^2.0.0", 301 | "esutils": "^2.0.2", 302 | "js-tokens": "^4.0.0" 303 | } 304 | }, 305 | "@babel/parser": { 306 | "version": "7.5.5", 307 | "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.5.5.tgz", 308 | "integrity": "sha1-AvB3rIgX099Kgy71neZ1Zeccyks=", 309 | "dev": true 310 | }, 311 | "@babel/plugin-proposal-async-generator-functions": { 312 | "version": "7.2.0", 313 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.2.0.tgz", 314 | "integrity": "sha1-somzBmadzkrSCwJSiJoVdoydQX4=", 315 | "dev": true, 316 | "requires": { 317 | "@babel/helper-plugin-utils": "^7.0.0", 318 | "@babel/helper-remap-async-to-generator": "^7.1.0", 319 | "@babel/plugin-syntax-async-generators": "^7.2.0" 320 | } 321 | }, 322 | "@babel/plugin-proposal-dynamic-import": { 323 | "version": "7.5.0", 324 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.5.0.tgz", 325 | "integrity": "sha1-5TIgLbSDhyNpGxCme4zlCeOXxQY=", 326 | "dev": true, 327 | "requires": { 328 | "@babel/helper-plugin-utils": "^7.0.0", 329 | "@babel/plugin-syntax-dynamic-import": "^7.2.0" 330 | } 331 | }, 332 | "@babel/plugin-proposal-json-strings": { 333 | "version": "7.2.0", 334 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.2.0.tgz", 335 | "integrity": "sha1-Vo7MRGxhSK5rJn8CVREwiR4p8xc=", 336 | "dev": true, 337 | "requires": { 338 | "@babel/helper-plugin-utils": "^7.0.0", 339 | "@babel/plugin-syntax-json-strings": "^7.2.0" 340 | } 341 | }, 342 | "@babel/plugin-proposal-object-rest-spread": { 343 | "version": "7.5.5", 344 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.5.5.tgz", 345 | "integrity": "sha1-YZOXRPcbp2o65Gte6hilTBbSLlg=", 346 | "dev": true, 347 | "requires": { 348 | "@babel/helper-plugin-utils": "^7.0.0", 349 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0" 350 | } 351 | }, 352 | "@babel/plugin-proposal-optional-catch-binding": { 353 | "version": "7.2.0", 354 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.2.0.tgz", 355 | "integrity": "sha1-E12B7baKCB5V5W7EhUHs6AZcOPU=", 356 | "dev": true, 357 | "requires": { 358 | "@babel/helper-plugin-utils": "^7.0.0", 359 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" 360 | } 361 | }, 362 | "@babel/plugin-proposal-unicode-property-regex": { 363 | "version": "7.4.4", 364 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.4.4.tgz", 365 | "integrity": "sha1-UB/9mCbAuR2iJpByByKsfLHKnHg=", 366 | "dev": true, 367 | "requires": { 368 | "@babel/helper-plugin-utils": "^7.0.0", 369 | "@babel/helper-regex": "^7.4.4", 370 | "regexpu-core": "^4.5.4" 371 | } 372 | }, 373 | "@babel/plugin-syntax-async-generators": { 374 | "version": "7.2.0", 375 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.2.0.tgz", 376 | "integrity": "sha1-aeHw2zTG9aDPfiszI78VmnbIy38=", 377 | "dev": true, 378 | "requires": { 379 | "@babel/helper-plugin-utils": "^7.0.0" 380 | } 381 | }, 382 | "@babel/plugin-syntax-dynamic-import": { 383 | "version": "7.2.0", 384 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.2.0.tgz", 385 | "integrity": "sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=", 386 | "dev": true, 387 | "requires": { 388 | "@babel/helper-plugin-utils": "^7.0.0" 389 | } 390 | }, 391 | "@babel/plugin-syntax-json-strings": { 392 | "version": "7.2.0", 393 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.2.0.tgz", 394 | "integrity": "sha1-cr0T9v/h0lk4Ep0qGGsR/WKVFHA=", 395 | "dev": true, 396 | "requires": { 397 | "@babel/helper-plugin-utils": "^7.0.0" 398 | } 399 | }, 400 | "@babel/plugin-syntax-object-rest-spread": { 401 | "version": "7.2.0", 402 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.2.0.tgz", 403 | "integrity": "sha1-O3o+czUQxX6CC5FCpleayLDfrS4=", 404 | "dev": true, 405 | "requires": { 406 | "@babel/helper-plugin-utils": "^7.0.0" 407 | } 408 | }, 409 | "@babel/plugin-syntax-optional-catch-binding": { 410 | "version": "7.2.0", 411 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.2.0.tgz", 412 | "integrity": "sha1-qUAT1u2okI3+akd+f57ahWVuz1w=", 413 | "dev": true, 414 | "requires": { 415 | "@babel/helper-plugin-utils": "^7.0.0" 416 | } 417 | }, 418 | "@babel/plugin-transform-arrow-functions": { 419 | "version": "7.2.0", 420 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz", 421 | "integrity": "sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=", 422 | "dev": true, 423 | "requires": { 424 | "@babel/helper-plugin-utils": "^7.0.0" 425 | } 426 | }, 427 | "@babel/plugin-transform-async-to-generator": { 428 | "version": "7.5.0", 429 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.5.0.tgz", 430 | "integrity": "sha1-iaOEigFmYjtbxIEWS1k2q5R+iH4=", 431 | "dev": true, 432 | "requires": { 433 | "@babel/helper-module-imports": "^7.0.0", 434 | "@babel/helper-plugin-utils": "^7.0.0", 435 | "@babel/helper-remap-async-to-generator": "^7.1.0" 436 | } 437 | }, 438 | "@babel/plugin-transform-block-scoped-functions": { 439 | "version": "7.2.0", 440 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.2.0.tgz", 441 | "integrity": "sha1-XTzBHo1d3XUqpkyRSNDbbLef0ZA=", 442 | "dev": true, 443 | "requires": { 444 | "@babel/helper-plugin-utils": "^7.0.0" 445 | } 446 | }, 447 | "@babel/plugin-transform-block-scoping": { 448 | "version": "7.5.5", 449 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.5.5.tgz", 450 | "integrity": "sha1-o185XlQCgi8Q0hGfb44EXjY5os4=", 451 | "dev": true, 452 | "requires": { 453 | "@babel/helper-plugin-utils": "^7.0.0", 454 | "lodash": "^4.17.13" 455 | }, 456 | "dependencies": { 457 | "lodash": { 458 | "version": "4.17.15", 459 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 460 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 461 | "dev": true 462 | } 463 | } 464 | }, 465 | "@babel/plugin-transform-classes": { 466 | "version": "7.5.5", 467 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.5.5.tgz", 468 | "integrity": "sha1-0JQpnZvWgKFKKg7a44MFrWD7Tek=", 469 | "dev": true, 470 | "requires": { 471 | "@babel/helper-annotate-as-pure": "^7.0.0", 472 | "@babel/helper-define-map": "^7.5.5", 473 | "@babel/helper-function-name": "^7.1.0", 474 | "@babel/helper-optimise-call-expression": "^7.0.0", 475 | "@babel/helper-plugin-utils": "^7.0.0", 476 | "@babel/helper-replace-supers": "^7.5.5", 477 | "@babel/helper-split-export-declaration": "^7.4.4", 478 | "globals": "^11.1.0" 479 | } 480 | }, 481 | "@babel/plugin-transform-computed-properties": { 482 | "version": "7.2.0", 483 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.2.0.tgz", 484 | "integrity": "sha1-g6ffamWIZbHI9kHVEMbzryICFto=", 485 | "dev": true, 486 | "requires": { 487 | "@babel/helper-plugin-utils": "^7.0.0" 488 | } 489 | }, 490 | "@babel/plugin-transform-destructuring": { 491 | "version": "7.5.0", 492 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.5.0.tgz", 493 | "integrity": "sha1-9sCf3+P5RRb/B0/od9t7ye8FhVo=", 494 | "dev": true, 495 | "requires": { 496 | "@babel/helper-plugin-utils": "^7.0.0" 497 | } 498 | }, 499 | "@babel/plugin-transform-dotall-regex": { 500 | "version": "7.4.4", 501 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.4.4.tgz", 502 | "integrity": "sha1-NhoUi8lRREMSxpRG127R6o5EUMM=", 503 | "dev": true, 504 | "requires": { 505 | "@babel/helper-plugin-utils": "^7.0.0", 506 | "@babel/helper-regex": "^7.4.4", 507 | "regexpu-core": "^4.5.4" 508 | } 509 | }, 510 | "@babel/plugin-transform-duplicate-keys": { 511 | "version": "7.5.0", 512 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.5.0.tgz", 513 | "integrity": "sha1-xdv1EGv4TN9pEiLAl0wSsd+TGFM=", 514 | "dev": true, 515 | "requires": { 516 | "@babel/helper-plugin-utils": "^7.0.0" 517 | } 518 | }, 519 | "@babel/plugin-transform-exponentiation-operator": { 520 | "version": "7.2.0", 521 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.2.0.tgz", 522 | "integrity": "sha1-pjhoKJ5bQAf3BU1GSRr1FDV2YAg=", 523 | "dev": true, 524 | "requires": { 525 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", 526 | "@babel/helper-plugin-utils": "^7.0.0" 527 | } 528 | }, 529 | "@babel/plugin-transform-for-of": { 530 | "version": "7.4.4", 531 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.4.tgz", 532 | "integrity": "sha1-Amf8c14kyAi6FzhmxsTRRA/DxVY=", 533 | "dev": true, 534 | "requires": { 535 | "@babel/helper-plugin-utils": "^7.0.0" 536 | } 537 | }, 538 | "@babel/plugin-transform-function-name": { 539 | "version": "7.4.4", 540 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.4.4.tgz", 541 | "integrity": "sha1-4UNhFquwYQwiWQlISHVKxSMJIq0=", 542 | "dev": true, 543 | "requires": { 544 | "@babel/helper-function-name": "^7.1.0", 545 | "@babel/helper-plugin-utils": "^7.0.0" 546 | } 547 | }, 548 | "@babel/plugin-transform-literals": { 549 | "version": "7.2.0", 550 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.2.0.tgz", 551 | "integrity": "sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=", 552 | "dev": true, 553 | "requires": { 554 | "@babel/helper-plugin-utils": "^7.0.0" 555 | } 556 | }, 557 | "@babel/plugin-transform-member-expression-literals": { 558 | "version": "7.2.0", 559 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.2.0.tgz", 560 | "integrity": "sha1-+hCqXFiiy2r88sn/qMtNiz1Imi0=", 561 | "dev": true, 562 | "requires": { 563 | "@babel/helper-plugin-utils": "^7.0.0" 564 | } 565 | }, 566 | "@babel/plugin-transform-modules-amd": { 567 | "version": "7.5.0", 568 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.5.0.tgz", 569 | "integrity": "sha1-7wBDXUbaCllhqnKKHS7P8GPk+5E=", 570 | "dev": true, 571 | "requires": { 572 | "@babel/helper-module-transforms": "^7.1.0", 573 | "@babel/helper-plugin-utils": "^7.0.0", 574 | "babel-plugin-dynamic-import-node": "^2.3.0" 575 | } 576 | }, 577 | "@babel/plugin-transform-modules-commonjs": { 578 | "version": "7.5.0", 579 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.5.0.tgz", 580 | "integrity": "sha1-QlEn5gRSMTYIWO6qR6cdde3tenQ=", 581 | "dev": true, 582 | "requires": { 583 | "@babel/helper-module-transforms": "^7.4.4", 584 | "@babel/helper-plugin-utils": "^7.0.0", 585 | "@babel/helper-simple-access": "^7.1.0", 586 | "babel-plugin-dynamic-import-node": "^2.3.0" 587 | } 588 | }, 589 | "@babel/plugin-transform-modules-systemjs": { 590 | "version": "7.5.0", 591 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.5.0.tgz", 592 | "integrity": "sha1-51JmoT75QgLbKgYgl3dW9R1S0kk=", 593 | "dev": true, 594 | "requires": { 595 | "@babel/helper-hoist-variables": "^7.4.4", 596 | "@babel/helper-plugin-utils": "^7.0.0", 597 | "babel-plugin-dynamic-import-node": "^2.3.0" 598 | } 599 | }, 600 | "@babel/plugin-transform-modules-umd": { 601 | "version": "7.2.0", 602 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.2.0.tgz", 603 | "integrity": "sha1-dnjOdRafCHe46yI1U4wHQmjdAa4=", 604 | "dev": true, 605 | "requires": { 606 | "@babel/helper-module-transforms": "^7.1.0", 607 | "@babel/helper-plugin-utils": "^7.0.0" 608 | } 609 | }, 610 | "@babel/plugin-transform-named-capturing-groups-regex": { 611 | "version": "7.4.5", 612 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", 613 | "integrity": "sha1-nSaf0oo3AlgZm0KUc2gTpgu90QY=", 614 | "dev": true, 615 | "requires": { 616 | "regexp-tree": "^0.1.6" 617 | } 618 | }, 619 | "@babel/plugin-transform-new-target": { 620 | "version": "7.4.4", 621 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.4.4.tgz", 622 | "integrity": "sha1-GNEgQ4sMye6VpH8scryXaPvtYKU=", 623 | "dev": true, 624 | "requires": { 625 | "@babel/helper-plugin-utils": "^7.0.0" 626 | } 627 | }, 628 | "@babel/plugin-transform-object-super": { 629 | "version": "7.5.5", 630 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.5.5.tgz", 631 | "integrity": "sha1-xwAh34NAc8ZethO4Z5zEo4HRqfk=", 632 | "dev": true, 633 | "requires": { 634 | "@babel/helper-plugin-utils": "^7.0.0", 635 | "@babel/helper-replace-supers": "^7.5.5" 636 | } 637 | }, 638 | "@babel/plugin-transform-parameters": { 639 | "version": "7.4.4", 640 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.4.4.tgz", 641 | "integrity": "sha1-dVbPA/MYvScZ/kySLS2Ai+VXHhY=", 642 | "dev": true, 643 | "requires": { 644 | "@babel/helper-call-delegate": "^7.4.4", 645 | "@babel/helper-get-function-arity": "^7.0.0", 646 | "@babel/helper-plugin-utils": "^7.0.0" 647 | } 648 | }, 649 | "@babel/plugin-transform-property-literals": { 650 | "version": "7.2.0", 651 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.2.0.tgz", 652 | "integrity": "sha1-A+M/ZT9bJcTrVyyYuUhQVbOJ6QU=", 653 | "dev": true, 654 | "requires": { 655 | "@babel/helper-plugin-utils": "^7.0.0" 656 | } 657 | }, 658 | "@babel/plugin-transform-regenerator": { 659 | "version": "7.4.5", 660 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.4.5.tgz", 661 | "integrity": "sha1-Yp3IJRLFXO4BNB+ye9/LIQNUaA8=", 662 | "dev": true, 663 | "requires": { 664 | "regenerator-transform": "^0.14.0" 665 | }, 666 | "dependencies": { 667 | "regenerator-transform": { 668 | "version": "0.14.1", 669 | "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.1.tgz", 670 | "integrity": "sha1-Oy/OThq3cywI9mXf2zFHScfd0vs=", 671 | "dev": true, 672 | "requires": { 673 | "private": "^0.1.6" 674 | } 675 | } 676 | } 677 | }, 678 | "@babel/plugin-transform-reserved-words": { 679 | "version": "7.2.0", 680 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.2.0.tgz", 681 | "integrity": "sha1-R5Kvh8mYpJNnWX0H/t8CY20uFjQ=", 682 | "dev": true, 683 | "requires": { 684 | "@babel/helper-plugin-utils": "^7.0.0" 685 | } 686 | }, 687 | "@babel/plugin-transform-runtime": { 688 | "version": "7.5.5", 689 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.5.5.tgz", 690 | "integrity": "sha1-pjMa+/xZGJ0hNbLglHRFeo49KLw=", 691 | "dev": true, 692 | "requires": { 693 | "@babel/helper-module-imports": "^7.0.0", 694 | "@babel/helper-plugin-utils": "^7.0.0", 695 | "resolve": "^1.8.1", 696 | "semver": "^5.5.1" 697 | } 698 | }, 699 | "@babel/plugin-transform-shorthand-properties": { 700 | "version": "7.2.0", 701 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.2.0.tgz", 702 | "integrity": "sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=", 703 | "dev": true, 704 | "requires": { 705 | "@babel/helper-plugin-utils": "^7.0.0" 706 | } 707 | }, 708 | "@babel/plugin-transform-spread": { 709 | "version": "7.2.2", 710 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.2.2.tgz", 711 | "integrity": "sha1-MQOpq+IvdCttQG7NPNSbd0kZtAY=", 712 | "dev": true, 713 | "requires": { 714 | "@babel/helper-plugin-utils": "^7.0.0" 715 | } 716 | }, 717 | "@babel/plugin-transform-sticky-regex": { 718 | "version": "7.2.0", 719 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.2.0.tgz", 720 | "integrity": "sha1-oeRUtZlVYKnB4NU338FQYf0mh+E=", 721 | "dev": true, 722 | "requires": { 723 | "@babel/helper-plugin-utils": "^7.0.0", 724 | "@babel/helper-regex": "^7.0.0" 725 | } 726 | }, 727 | "@babel/plugin-transform-template-literals": { 728 | "version": "7.4.4", 729 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.4.4.tgz", 730 | "integrity": "sha1-nSj+p7vOY3+3YSoHUJidgyHUvLA=", 731 | "dev": true, 732 | "requires": { 733 | "@babel/helper-annotate-as-pure": "^7.0.0", 734 | "@babel/helper-plugin-utils": "^7.0.0" 735 | } 736 | }, 737 | "@babel/plugin-transform-typeof-symbol": { 738 | "version": "7.2.0", 739 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.2.0.tgz", 740 | "integrity": "sha1-EX0rzsL79ktLWdH5gZiUaC0p8rI=", 741 | "dev": true, 742 | "requires": { 743 | "@babel/helper-plugin-utils": "^7.0.0" 744 | } 745 | }, 746 | "@babel/plugin-transform-unicode-regex": { 747 | "version": "7.4.4", 748 | "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.4.4.tgz", 749 | "integrity": "sha1-q0Y0u08U02cov1l4Mis1WHeHlw8=", 750 | "dev": true, 751 | "requires": { 752 | "@babel/helper-plugin-utils": "^7.0.0", 753 | "@babel/helper-regex": "^7.4.4", 754 | "regexpu-core": "^4.5.4" 755 | } 756 | }, 757 | "@babel/preset-env": { 758 | "version": "7.5.5", 759 | "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.5.5.tgz", 760 | "integrity": "sha1-vEcLU6yqSN9LjbJKVw1tof71PJo=", 761 | "dev": true, 762 | "requires": { 763 | "@babel/helper-module-imports": "^7.0.0", 764 | "@babel/helper-plugin-utils": "^7.0.0", 765 | "@babel/plugin-proposal-async-generator-functions": "^7.2.0", 766 | "@babel/plugin-proposal-dynamic-import": "^7.5.0", 767 | "@babel/plugin-proposal-json-strings": "^7.2.0", 768 | "@babel/plugin-proposal-object-rest-spread": "^7.5.5", 769 | "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", 770 | "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", 771 | "@babel/plugin-syntax-async-generators": "^7.2.0", 772 | "@babel/plugin-syntax-dynamic-import": "^7.2.0", 773 | "@babel/plugin-syntax-json-strings": "^7.2.0", 774 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0", 775 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", 776 | "@babel/plugin-transform-arrow-functions": "^7.2.0", 777 | "@babel/plugin-transform-async-to-generator": "^7.5.0", 778 | "@babel/plugin-transform-block-scoped-functions": "^7.2.0", 779 | "@babel/plugin-transform-block-scoping": "^7.5.5", 780 | "@babel/plugin-transform-classes": "^7.5.5", 781 | "@babel/plugin-transform-computed-properties": "^7.2.0", 782 | "@babel/plugin-transform-destructuring": "^7.5.0", 783 | "@babel/plugin-transform-dotall-regex": "^7.4.4", 784 | "@babel/plugin-transform-duplicate-keys": "^7.5.0", 785 | "@babel/plugin-transform-exponentiation-operator": "^7.2.0", 786 | "@babel/plugin-transform-for-of": "^7.4.4", 787 | "@babel/plugin-transform-function-name": "^7.4.4", 788 | "@babel/plugin-transform-literals": "^7.2.0", 789 | "@babel/plugin-transform-member-expression-literals": "^7.2.0", 790 | "@babel/plugin-transform-modules-amd": "^7.5.0", 791 | "@babel/plugin-transform-modules-commonjs": "^7.5.0", 792 | "@babel/plugin-transform-modules-systemjs": "^7.5.0", 793 | "@babel/plugin-transform-modules-umd": "^7.2.0", 794 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", 795 | "@babel/plugin-transform-new-target": "^7.4.4", 796 | "@babel/plugin-transform-object-super": "^7.5.5", 797 | "@babel/plugin-transform-parameters": "^7.4.4", 798 | "@babel/plugin-transform-property-literals": "^7.2.0", 799 | "@babel/plugin-transform-regenerator": "^7.4.5", 800 | "@babel/plugin-transform-reserved-words": "^7.2.0", 801 | "@babel/plugin-transform-shorthand-properties": "^7.2.0", 802 | "@babel/plugin-transform-spread": "^7.2.0", 803 | "@babel/plugin-transform-sticky-regex": "^7.2.0", 804 | "@babel/plugin-transform-template-literals": "^7.4.4", 805 | "@babel/plugin-transform-typeof-symbol": "^7.2.0", 806 | "@babel/plugin-transform-unicode-regex": "^7.4.4", 807 | "@babel/types": "^7.5.5", 808 | "browserslist": "^4.6.0", 809 | "core-js-compat": "^3.1.1", 810 | "invariant": "^2.2.2", 811 | "js-levenshtein": "^1.1.3", 812 | "semver": "^5.5.0" 813 | } 814 | }, 815 | "@babel/runtime-corejs2": { 816 | "version": "7.5.5", 817 | "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.5.5.tgz", 818 | "integrity": "sha1-wyFMCO8gNBr0GH8cn73DV/vslrI=", 819 | "dev": true, 820 | "requires": { 821 | "core-js": "^2.6.5", 822 | "regenerator-runtime": "^0.13.2" 823 | }, 824 | "dependencies": { 825 | "core-js": { 826 | "version": "2.6.9", 827 | "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz", 828 | "integrity": "sha1-a0shRiDINBUuF5Mjcn/Bl0GwhPI=", 829 | "dev": true 830 | }, 831 | "regenerator-runtime": { 832 | "version": "0.13.3", 833 | "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.3.tgz", 834 | "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=", 835 | "dev": true 836 | } 837 | } 838 | }, 839 | "@babel/template": { 840 | "version": "7.4.4", 841 | "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.4.4.tgz", 842 | "integrity": "sha1-9LiNEiVomgj1vDoXSDVFvp5O0jc=", 843 | "dev": true, 844 | "requires": { 845 | "@babel/code-frame": "^7.0.0", 846 | "@babel/parser": "^7.4.4", 847 | "@babel/types": "^7.4.4" 848 | } 849 | }, 850 | "@babel/traverse": { 851 | "version": "7.5.5", 852 | "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.5.5.tgz", 853 | "integrity": "sha1-9mT482jtMpiM1kjan3LVynDxZbs=", 854 | "dev": true, 855 | "requires": { 856 | "@babel/code-frame": "^7.5.5", 857 | "@babel/generator": "^7.5.5", 858 | "@babel/helper-function-name": "^7.1.0", 859 | "@babel/helper-split-export-declaration": "^7.4.4", 860 | "@babel/parser": "^7.5.5", 861 | "@babel/types": "^7.5.5", 862 | "debug": "^4.1.0", 863 | "globals": "^11.1.0", 864 | "lodash": "^4.17.13" 865 | }, 866 | "dependencies": { 867 | "lodash": { 868 | "version": "4.17.15", 869 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 870 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 871 | "dev": true 872 | } 873 | } 874 | }, 875 | "@babel/types": { 876 | "version": "7.5.5", 877 | "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.5.5.tgz?cache=0&sync_timestamp=1563399346263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.5.5.tgz", 878 | "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", 879 | "dev": true, 880 | "requires": { 881 | "esutils": "^2.0.2", 882 | "lodash": "^4.17.13", 883 | "to-fast-properties": "^2.0.0" 884 | }, 885 | "dependencies": { 886 | "lodash": { 887 | "version": "4.17.15", 888 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 889 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 890 | "dev": true 891 | }, 892 | "to-fast-properties": { 893 | "version": "2.0.0", 894 | "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", 895 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 896 | "dev": true 897 | } 898 | } 899 | }, 900 | "@frida/uglifyify": { 901 | "version": "6.0.1", 902 | "resolved": "https://registry.npm.taobao.org/@frida/uglifyify/download/@frida/uglifyify-6.0.1.tgz", 903 | "integrity": "sha1-wSDUMbFXSr/ox856mDc2gtL+sv8=", 904 | "dev": true, 905 | "requires": { 906 | "convert-source-map": "^1.6.0", 907 | "minimatch": "^3.0.4", 908 | "terser": "^3.17.0", 909 | "through": "^2.3.8" 910 | } 911 | }, 912 | "JSONStream": { 913 | "version": "1.3.5", 914 | "resolved": "https://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz", 915 | "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", 916 | "dev": true, 917 | "requires": { 918 | "jsonparse": "^1.2.0", 919 | "through": ">=2.2.7 <3" 920 | } 921 | }, 922 | "acorn": { 923 | "version": "7.0.0", 924 | "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.0.0.tgz", 925 | "integrity": "sha1-JrjRzZqbcANQtxwJBVRvZNEoTno=", 926 | "dev": true 927 | }, 928 | "acorn-node": { 929 | "version": "1.8.2", 930 | "resolved": "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz", 931 | "integrity": "sha1-EUyV1kU55T3t4j3oudlt98euKvg=", 932 | "dev": true, 933 | "requires": { 934 | "acorn": "^7.0.0", 935 | "acorn-walk": "^7.0.0", 936 | "xtend": "^4.0.2" 937 | } 938 | }, 939 | "acorn-walk": { 940 | "version": "7.0.0", 941 | "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.0.0.tgz", 942 | "integrity": "sha1-yLpvDxqsSwqeMtHwrxK+dpUo82s=", 943 | "dev": true 944 | }, 945 | "ansi-regex": { 946 | "version": "2.1.1", 947 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 948 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 949 | "dev": true 950 | }, 951 | "ansi-styles": { 952 | "version": "3.2.1", 953 | "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", 954 | "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", 955 | "dev": true, 956 | "requires": { 957 | "color-convert": "^1.9.0" 958 | } 959 | }, 960 | "any-promise": { 961 | "version": "1.3.0", 962 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 963 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", 964 | "dev": true 965 | }, 966 | "anymatch": { 967 | "version": "3.0.3", 968 | "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.0.3.tgz", 969 | "integrity": "sha1-L7Yk/g6EvMqwCv7j0ABu0xDyLwk=", 970 | "dev": true, 971 | "requires": { 972 | "normalize-path": "^3.0.0", 973 | "picomatch": "^2.0.4" 974 | } 975 | }, 976 | "asn1.js": { 977 | "version": "4.10.1", 978 | "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", 979 | "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", 980 | "dev": true, 981 | "requires": { 982 | "bn.js": "^4.0.0", 983 | "inherits": "^2.0.1", 984 | "minimalistic-assert": "^1.0.0" 985 | } 986 | }, 987 | "assert": { 988 | "version": "1.5.0", 989 | "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", 990 | "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", 991 | "dev": true, 992 | "requires": { 993 | "object-assign": "^4.1.1", 994 | "util": "0.10.3" 995 | }, 996 | "dependencies": { 997 | "inherits": { 998 | "version": "2.0.1", 999 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 1000 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 1001 | "dev": true 1002 | }, 1003 | "util": { 1004 | "version": "0.10.3", 1005 | "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", 1006 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 1007 | "dev": true, 1008 | "requires": { 1009 | "inherits": "2.0.1" 1010 | } 1011 | } 1012 | } 1013 | }, 1014 | "babel-code-frame": { 1015 | "version": "6.26.0", 1016 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 1017 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 1018 | "dev": true, 1019 | "requires": { 1020 | "chalk": "^1.1.3", 1021 | "esutils": "^2.0.2", 1022 | "js-tokens": "^3.0.2" 1023 | }, 1024 | "dependencies": { 1025 | "ansi-styles": { 1026 | "version": "2.2.1", 1027 | "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", 1028 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 1029 | "dev": true 1030 | }, 1031 | "chalk": { 1032 | "version": "1.1.3", 1033 | "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", 1034 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 1035 | "dev": true, 1036 | "requires": { 1037 | "ansi-styles": "^2.2.1", 1038 | "escape-string-regexp": "^1.0.2", 1039 | "has-ansi": "^2.0.0", 1040 | "strip-ansi": "^3.0.0", 1041 | "supports-color": "^2.0.0" 1042 | } 1043 | }, 1044 | "js-tokens": { 1045 | "version": "3.0.2", 1046 | "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", 1047 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 1048 | "dev": true 1049 | }, 1050 | "supports-color": { 1051 | "version": "2.0.0", 1052 | "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", 1053 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1054 | "dev": true 1055 | } 1056 | } 1057 | }, 1058 | "babel-messages": { 1059 | "version": "6.23.0", 1060 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 1061 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 1062 | "dev": true, 1063 | "requires": { 1064 | "babel-runtime": "^6.22.0" 1065 | } 1066 | }, 1067 | "babel-plugin-dynamic-import-node": { 1068 | "version": "2.3.0", 1069 | "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.0.tgz", 1070 | "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", 1071 | "dev": true, 1072 | "requires": { 1073 | "object.assign": "^4.1.0" 1074 | } 1075 | }, 1076 | "babel-plugin-import-to-require": { 1077 | "version": "1.0.0", 1078 | "resolved": "https://registry.npm.taobao.org/babel-plugin-import-to-require/download/babel-plugin-import-to-require-1.0.0.tgz", 1079 | "integrity": "sha1-Qyue5/6dd94D6EkkfHim5R+xgAk=", 1080 | "dev": true, 1081 | "requires": { 1082 | "babel-template": "^6.26.0" 1083 | } 1084 | }, 1085 | "babel-runtime": { 1086 | "version": "6.26.0", 1087 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 1088 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 1089 | "dev": true, 1090 | "requires": { 1091 | "core-js": "^2.4.0", 1092 | "regenerator-runtime": "^0.11.0" 1093 | } 1094 | }, 1095 | "babel-template": { 1096 | "version": "6.26.0", 1097 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 1098 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 1099 | "dev": true, 1100 | "requires": { 1101 | "babel-runtime": "^6.26.0", 1102 | "babel-traverse": "^6.26.0", 1103 | "babel-types": "^6.26.0", 1104 | "babylon": "^6.18.0", 1105 | "lodash": "^4.17.4" 1106 | } 1107 | }, 1108 | "babel-traverse": { 1109 | "version": "6.26.0", 1110 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 1111 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 1112 | "dev": true, 1113 | "requires": { 1114 | "babel-code-frame": "^6.26.0", 1115 | "babel-messages": "^6.23.0", 1116 | "babel-runtime": "^6.26.0", 1117 | "babel-types": "^6.26.0", 1118 | "babylon": "^6.18.0", 1119 | "debug": "^2.6.8", 1120 | "globals": "^9.18.0", 1121 | "invariant": "^2.2.2", 1122 | "lodash": "^4.17.4" 1123 | }, 1124 | "dependencies": { 1125 | "debug": { 1126 | "version": "2.6.9", 1127 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", 1128 | "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", 1129 | "dev": true, 1130 | "requires": { 1131 | "ms": "2.0.0" 1132 | } 1133 | }, 1134 | "globals": { 1135 | "version": "9.18.0", 1136 | "resolved": "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz?cache=0&sync_timestamp=1563721993391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-9.18.0.tgz", 1137 | "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", 1138 | "dev": true 1139 | }, 1140 | "ms": { 1141 | "version": "2.0.0", 1142 | "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", 1143 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1144 | "dev": true 1145 | } 1146 | } 1147 | }, 1148 | "babel-types": { 1149 | "version": "6.26.0", 1150 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 1151 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 1152 | "dev": true, 1153 | "requires": { 1154 | "babel-runtime": "^6.26.0", 1155 | "esutils": "^2.0.2", 1156 | "lodash": "^4.17.4", 1157 | "to-fast-properties": "^1.0.3" 1158 | } 1159 | }, 1160 | "babelify": { 1161 | "version": "10.0.0", 1162 | "resolved": "https://registry.npm.taobao.org/babelify/download/babelify-10.0.0.tgz", 1163 | "integrity": "sha1-/nOxoiWD8GaA2NBy4loeDR0df7U=", 1164 | "dev": true 1165 | }, 1166 | "babylon": { 1167 | "version": "6.18.0", 1168 | "resolved": "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", 1169 | "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", 1170 | "dev": true 1171 | }, 1172 | "balanced-match": { 1173 | "version": "1.0.0", 1174 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1175 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 1176 | "dev": true 1177 | }, 1178 | "base64-js": { 1179 | "version": "1.3.1", 1180 | "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", 1181 | "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", 1182 | "dev": true 1183 | }, 1184 | "bignumber.js": { 1185 | "version": "9.0.0", 1186 | "resolved": "https://registry.npm.taobao.org/bignumber.js/download/bignumber.js-9.0.0.tgz", 1187 | "integrity": "sha1-gFiA+Eoym16sbny2+CdLbYK98HU=", 1188 | "dev": true 1189 | }, 1190 | "binary-extensions": { 1191 | "version": "2.0.0", 1192 | "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz", 1193 | "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", 1194 | "dev": true 1195 | }, 1196 | "bn.js": { 1197 | "version": "4.11.8", 1198 | "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", 1199 | "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", 1200 | "dev": true 1201 | }, 1202 | "brace-expansion": { 1203 | "version": "1.1.11", 1204 | "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", 1205 | "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", 1206 | "dev": true, 1207 | "requires": { 1208 | "balanced-match": "^1.0.0", 1209 | "concat-map": "0.0.1" 1210 | } 1211 | }, 1212 | "braces": { 1213 | "version": "3.0.2", 1214 | "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", 1215 | "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", 1216 | "dev": true, 1217 | "requires": { 1218 | "fill-range": "^7.0.1" 1219 | } 1220 | }, 1221 | "brorand": { 1222 | "version": "1.1.0", 1223 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 1224 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 1225 | "dev": true 1226 | }, 1227 | "browser-pack": { 1228 | "version": "6.1.0", 1229 | "resolved": "https://registry.npm.taobao.org/browser-pack/download/browser-pack-6.1.0.tgz", 1230 | "integrity": "sha1-w0uhDQuc4WK1ryJ8cTHJLC7NV3Q=", 1231 | "dev": true, 1232 | "requires": { 1233 | "JSONStream": "^1.0.3", 1234 | "combine-source-map": "~0.8.0", 1235 | "defined": "^1.0.0", 1236 | "safe-buffer": "^5.1.1", 1237 | "through2": "^2.0.0", 1238 | "umd": "^3.0.0" 1239 | }, 1240 | "dependencies": { 1241 | "through2": { 1242 | "version": "2.0.5", 1243 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 1244 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 1245 | "dev": true, 1246 | "requires": { 1247 | "readable-stream": "~2.3.6", 1248 | "xtend": "~4.0.1" 1249 | } 1250 | } 1251 | } 1252 | }, 1253 | "browser-resolve": { 1254 | "version": "1.11.3", 1255 | "resolved": "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz", 1256 | "integrity": "sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY=", 1257 | "dev": true, 1258 | "requires": { 1259 | "resolve": "1.1.7" 1260 | }, 1261 | "dependencies": { 1262 | "resolve": { 1263 | "version": "1.1.7", 1264 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", 1265 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", 1266 | "dev": true 1267 | } 1268 | } 1269 | }, 1270 | "browserify": { 1271 | "version": "16.5.0", 1272 | "resolved": "https://registry.npm.taobao.org/browserify/download/browserify-16.5.0.tgz", 1273 | "integrity": "sha1-ocK8BDG+wR/SkVGUFYLj9kXt6IE=", 1274 | "dev": true, 1275 | "requires": { 1276 | "JSONStream": "^1.0.3", 1277 | "assert": "^1.4.0", 1278 | "browser-pack": "^6.0.1", 1279 | "browser-resolve": "^1.11.0", 1280 | "browserify-zlib": "~0.2.0", 1281 | "buffer": "^5.0.2", 1282 | "cached-path-relative": "^1.0.0", 1283 | "concat-stream": "^1.6.0", 1284 | "console-browserify": "^1.1.0", 1285 | "constants-browserify": "~1.0.0", 1286 | "crypto-browserify": "^3.0.0", 1287 | "defined": "^1.0.0", 1288 | "deps-sort": "^2.0.0", 1289 | "domain-browser": "^1.2.0", 1290 | "duplexer2": "~0.1.2", 1291 | "events": "^2.0.0", 1292 | "glob": "^7.1.0", 1293 | "has": "^1.0.0", 1294 | "htmlescape": "^1.1.0", 1295 | "https-browserify": "^1.0.0", 1296 | "inherits": "~2.0.1", 1297 | "insert-module-globals": "^7.0.0", 1298 | "labeled-stream-splicer": "^2.0.0", 1299 | "mkdirp": "^0.5.0", 1300 | "module-deps": "^6.0.0", 1301 | "os-browserify": "~0.3.0", 1302 | "parents": "^1.0.1", 1303 | "path-browserify": "~0.0.0", 1304 | "process": "~0.11.0", 1305 | "punycode": "^1.3.2", 1306 | "querystring-es3": "~0.2.0", 1307 | "read-only-stream": "^2.0.0", 1308 | "readable-stream": "^2.0.2", 1309 | "resolve": "^1.1.4", 1310 | "shasum": "^1.0.0", 1311 | "shell-quote": "^1.6.1", 1312 | "stream-browserify": "^2.0.0", 1313 | "stream-http": "^3.0.0", 1314 | "string_decoder": "^1.1.1", 1315 | "subarg": "^1.0.0", 1316 | "syntax-error": "^1.1.1", 1317 | "through2": "^2.0.0", 1318 | "timers-browserify": "^1.0.1", 1319 | "tty-browserify": "0.0.1", 1320 | "url": "~0.11.0", 1321 | "util": "~0.10.1", 1322 | "vm-browserify": "^1.0.0", 1323 | "xtend": "^4.0.0" 1324 | }, 1325 | "dependencies": { 1326 | "concat-stream": { 1327 | "version": "1.6.2", 1328 | "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", 1329 | "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", 1330 | "dev": true, 1331 | "requires": { 1332 | "buffer-from": "^1.0.0", 1333 | "inherits": "^2.0.3", 1334 | "readable-stream": "^2.2.2", 1335 | "typedarray": "^0.0.6" 1336 | } 1337 | }, 1338 | "through2": { 1339 | "version": "2.0.5", 1340 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 1341 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 1342 | "dev": true, 1343 | "requires": { 1344 | "readable-stream": "~2.3.6", 1345 | "xtend": "~4.0.1" 1346 | } 1347 | } 1348 | } 1349 | }, 1350 | "browserify-aes": { 1351 | "version": "1.2.0", 1352 | "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", 1353 | "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", 1354 | "dev": true, 1355 | "requires": { 1356 | "buffer-xor": "^1.0.3", 1357 | "cipher-base": "^1.0.0", 1358 | "create-hash": "^1.1.0", 1359 | "evp_bytestokey": "^1.0.3", 1360 | "inherits": "^2.0.1", 1361 | "safe-buffer": "^5.0.1" 1362 | } 1363 | }, 1364 | "browserify-cipher": { 1365 | "version": "1.0.1", 1366 | "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", 1367 | "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", 1368 | "dev": true, 1369 | "requires": { 1370 | "browserify-aes": "^1.0.4", 1371 | "browserify-des": "^1.0.0", 1372 | "evp_bytestokey": "^1.0.0" 1373 | } 1374 | }, 1375 | "browserify-des": { 1376 | "version": "1.0.2", 1377 | "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", 1378 | "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", 1379 | "dev": true, 1380 | "requires": { 1381 | "cipher-base": "^1.0.1", 1382 | "des.js": "^1.0.0", 1383 | "inherits": "^2.0.1", 1384 | "safe-buffer": "^5.1.2" 1385 | } 1386 | }, 1387 | "browserify-rsa": { 1388 | "version": "4.0.1", 1389 | "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 1390 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 1391 | "dev": true, 1392 | "requires": { 1393 | "bn.js": "^4.1.0", 1394 | "randombytes": "^2.0.1" 1395 | } 1396 | }, 1397 | "browserify-sign": { 1398 | "version": "4.0.4", 1399 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 1400 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 1401 | "dev": true, 1402 | "requires": { 1403 | "bn.js": "^4.1.1", 1404 | "browserify-rsa": "^4.0.0", 1405 | "create-hash": "^1.1.0", 1406 | "create-hmac": "^1.1.2", 1407 | "elliptic": "^6.0.0", 1408 | "inherits": "^2.0.1", 1409 | "parse-asn1": "^5.0.0" 1410 | } 1411 | }, 1412 | "browserify-zlib": { 1413 | "version": "0.2.0", 1414 | "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", 1415 | "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", 1416 | "dev": true, 1417 | "requires": { 1418 | "pako": "~1.0.5" 1419 | } 1420 | }, 1421 | "browserslist": { 1422 | "version": "4.6.6", 1423 | "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.6.6.tgz", 1424 | "integrity": "sha1-bkv0Z83lILydvfN0fa+gNTHOxFM=", 1425 | "dev": true, 1426 | "requires": { 1427 | "caniuse-lite": "^1.0.30000984", 1428 | "electron-to-chromium": "^1.3.191", 1429 | "node-releases": "^1.1.25" 1430 | } 1431 | }, 1432 | "buffer": { 1433 | "version": "5.4.0", 1434 | "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.4.0.tgz?cache=0&sync_timestamp=1565727856363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-5.4.0.tgz", 1435 | "integrity": "sha1-MylPXB8m4IRh5Si2n6Bt48RcvYw=", 1436 | "dev": true, 1437 | "requires": { 1438 | "base64-js": "^1.0.2", 1439 | "ieee754": "^1.1.4" 1440 | } 1441 | }, 1442 | "buffer-from": { 1443 | "version": "1.1.1", 1444 | "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", 1445 | "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", 1446 | "dev": true 1447 | }, 1448 | "buffer-xor": { 1449 | "version": "1.0.3", 1450 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 1451 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 1452 | "dev": true 1453 | }, 1454 | "builtin-status-codes": { 1455 | "version": "3.0.0", 1456 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 1457 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 1458 | "dev": true 1459 | }, 1460 | "cached-path-relative": { 1461 | "version": "1.0.2", 1462 | "resolved": "https://registry.npm.taobao.org/cached-path-relative/download/cached-path-relative-1.0.2.tgz", 1463 | "integrity": "sha1-oT30GW0md2IgzDNW6xR6Utuixts=", 1464 | "dev": true 1465 | }, 1466 | "caniuse-lite": { 1467 | "version": "1.0.30000989", 1468 | "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000989.tgz", 1469 | "integrity": "sha1-uRk+KTzPfkQmxSRRNLjypWwKxLk=", 1470 | "dev": true 1471 | }, 1472 | "chalk": { 1473 | "version": "2.4.2", 1474 | "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", 1475 | "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", 1476 | "dev": true, 1477 | "requires": { 1478 | "ansi-styles": "^3.2.1", 1479 | "escape-string-regexp": "^1.0.5", 1480 | "supports-color": "^5.3.0" 1481 | } 1482 | }, 1483 | "chokidar": { 1484 | "version": "3.0.2", 1485 | "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.0.2.tgz?cache=0&sync_timestamp=1562457945399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.0.2.tgz", 1486 | "integrity": "sha1-DRzW0E6y3wMnRGGIzRNzajNn1oE=", 1487 | "dev": true, 1488 | "requires": { 1489 | "anymatch": "^3.0.1", 1490 | "braces": "^3.0.2", 1491 | "fsevents": "^2.0.6", 1492 | "glob-parent": "^5.0.0", 1493 | "is-binary-path": "^2.1.0", 1494 | "is-glob": "^4.0.1", 1495 | "normalize-path": "^3.0.0", 1496 | "readdirp": "^3.1.1" 1497 | } 1498 | }, 1499 | "cipher-base": { 1500 | "version": "1.0.4", 1501 | "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", 1502 | "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", 1503 | "dev": true, 1504 | "requires": { 1505 | "inherits": "^2.0.1", 1506 | "safe-buffer": "^5.0.1" 1507 | } 1508 | }, 1509 | "color-convert": { 1510 | "version": "1.9.3", 1511 | "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", 1512 | "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", 1513 | "dev": true, 1514 | "requires": { 1515 | "color-name": "1.1.3" 1516 | } 1517 | }, 1518 | "color-name": { 1519 | "version": "1.1.3", 1520 | "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", 1521 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1522 | "dev": true 1523 | }, 1524 | "combine-source-map": { 1525 | "version": "0.8.0", 1526 | "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", 1527 | "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", 1528 | "dev": true, 1529 | "requires": { 1530 | "convert-source-map": "~1.1.0", 1531 | "inline-source-map": "~0.6.0", 1532 | "lodash.memoize": "~3.0.3", 1533 | "source-map": "~0.5.3" 1534 | }, 1535 | "dependencies": { 1536 | "convert-source-map": { 1537 | "version": "1.1.3", 1538 | "resolved": "http://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", 1539 | "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", 1540 | "dev": true 1541 | } 1542 | } 1543 | }, 1544 | "commander": { 1545 | "version": "3.0.0", 1546 | "resolved": "https://registry.npm.taobao.org/commander/download/commander-3.0.0.tgz?cache=0&sync_timestamp=1565398176321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-3.0.0.tgz", 1547 | "integrity": "sha1-BkHqAIOMepZGJ/BM3cM2ot7d1go=", 1548 | "dev": true 1549 | }, 1550 | "concat-map": { 1551 | "version": "0.0.1", 1552 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1553 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1554 | "dev": true 1555 | }, 1556 | "concat-stream": { 1557 | "version": "2.0.0", 1558 | "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-2.0.0.tgz", 1559 | "integrity": "sha1-QUz1r3kKSMYKub5FJ9VtXkETPLE=", 1560 | "dev": true, 1561 | "requires": { 1562 | "buffer-from": "^1.0.0", 1563 | "inherits": "^2.0.3", 1564 | "readable-stream": "^3.0.2", 1565 | "typedarray": "^0.0.6" 1566 | }, 1567 | "dependencies": { 1568 | "readable-stream": { 1569 | "version": "3.4.0", 1570 | "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.4.0.tgz", 1571 | "integrity": "sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w=", 1572 | "dev": true, 1573 | "requires": { 1574 | "inherits": "^2.0.3", 1575 | "string_decoder": "^1.1.1", 1576 | "util-deprecate": "^1.0.1" 1577 | } 1578 | } 1579 | } 1580 | }, 1581 | "console-browserify": { 1582 | "version": "1.1.0", 1583 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 1584 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 1585 | "dev": true, 1586 | "requires": { 1587 | "date-now": "^0.1.4" 1588 | } 1589 | }, 1590 | "constants-browserify": { 1591 | "version": "1.0.0", 1592 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 1593 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 1594 | "dev": true 1595 | }, 1596 | "convert-source-map": { 1597 | "version": "1.6.0", 1598 | "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz", 1599 | "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=", 1600 | "dev": true, 1601 | "requires": { 1602 | "safe-buffer": "~5.1.1" 1603 | } 1604 | }, 1605 | "core-js": { 1606 | "version": "2.5.7", 1607 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", 1608 | "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", 1609 | "dev": true 1610 | }, 1611 | "core-js-compat": { 1612 | "version": "3.2.1", 1613 | "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.2.1.tgz", 1614 | "integrity": "sha1-DL28LjhujgDTuF3IHISO/+xbgVA=", 1615 | "dev": true, 1616 | "requires": { 1617 | "browserslist": "^4.6.6", 1618 | "semver": "^6.3.0" 1619 | }, 1620 | "dependencies": { 1621 | "semver": { 1622 | "version": "6.3.0", 1623 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", 1624 | "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", 1625 | "dev": true 1626 | } 1627 | } 1628 | }, 1629 | "core-util-is": { 1630 | "version": "1.0.2", 1631 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1632 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1633 | "dev": true 1634 | }, 1635 | "create-ecdh": { 1636 | "version": "4.0.3", 1637 | "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", 1638 | "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", 1639 | "dev": true, 1640 | "requires": { 1641 | "bn.js": "^4.1.0", 1642 | "elliptic": "^6.0.0" 1643 | } 1644 | }, 1645 | "create-hash": { 1646 | "version": "1.2.0", 1647 | "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", 1648 | "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", 1649 | "dev": true, 1650 | "requires": { 1651 | "cipher-base": "^1.0.1", 1652 | "inherits": "^2.0.1", 1653 | "md5.js": "^1.3.4", 1654 | "ripemd160": "^2.0.1", 1655 | "sha.js": "^2.4.0" 1656 | } 1657 | }, 1658 | "create-hmac": { 1659 | "version": "1.1.7", 1660 | "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", 1661 | "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", 1662 | "dev": true, 1663 | "requires": { 1664 | "cipher-base": "^1.0.3", 1665 | "create-hash": "^1.1.0", 1666 | "inherits": "^2.0.1", 1667 | "ripemd160": "^2.0.0", 1668 | "safe-buffer": "^5.0.1", 1669 | "sha.js": "^2.4.8" 1670 | } 1671 | }, 1672 | "crypto-browserify": { 1673 | "version": "3.12.0", 1674 | "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", 1675 | "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", 1676 | "dev": true, 1677 | "requires": { 1678 | "browserify-cipher": "^1.0.0", 1679 | "browserify-sign": "^4.0.0", 1680 | "create-ecdh": "^4.0.0", 1681 | "create-hash": "^1.1.0", 1682 | "create-hmac": "^1.1.0", 1683 | "diffie-hellman": "^5.0.0", 1684 | "inherits": "^2.0.1", 1685 | "pbkdf2": "^3.0.3", 1686 | "public-encrypt": "^4.0.0", 1687 | "randombytes": "^2.0.0", 1688 | "randomfill": "^1.0.3" 1689 | } 1690 | }, 1691 | "dash-ast": { 1692 | "version": "1.0.0", 1693 | "resolved": "https://registry.npm.taobao.org/dash-ast/download/dash-ast-1.0.0.tgz", 1694 | "integrity": "sha1-EgKbpfsviqbwqGF5WyPBtLbCfTc=", 1695 | "dev": true 1696 | }, 1697 | "date-now": { 1698 | "version": "0.1.4", 1699 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 1700 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 1701 | "dev": true 1702 | }, 1703 | "debug": { 1704 | "version": "4.1.1", 1705 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", 1706 | "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", 1707 | "dev": true, 1708 | "requires": { 1709 | "ms": "^2.1.1" 1710 | } 1711 | }, 1712 | "define-properties": { 1713 | "version": "1.1.3", 1714 | "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", 1715 | "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", 1716 | "dev": true, 1717 | "requires": { 1718 | "object-keys": "^1.0.12" 1719 | } 1720 | }, 1721 | "defined": { 1722 | "version": "1.0.0", 1723 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1724 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", 1725 | "dev": true 1726 | }, 1727 | "deps-sort": { 1728 | "version": "2.0.0", 1729 | "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", 1730 | "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", 1731 | "dev": true, 1732 | "requires": { 1733 | "JSONStream": "^1.0.3", 1734 | "shasum": "^1.0.0", 1735 | "subarg": "^1.0.0", 1736 | "through2": "^2.0.0" 1737 | }, 1738 | "dependencies": { 1739 | "through2": { 1740 | "version": "2.0.5", 1741 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 1742 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 1743 | "dev": true, 1744 | "requires": { 1745 | "readable-stream": "~2.3.6", 1746 | "xtend": "~4.0.1" 1747 | } 1748 | } 1749 | } 1750 | }, 1751 | "des.js": { 1752 | "version": "1.0.0", 1753 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 1754 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 1755 | "dev": true, 1756 | "requires": { 1757 | "inherits": "^2.0.1", 1758 | "minimalistic-assert": "^1.0.0" 1759 | } 1760 | }, 1761 | "detective": { 1762 | "version": "5.2.0", 1763 | "resolved": "https://registry.npm.taobao.org/detective/download/detective-5.2.0.tgz", 1764 | "integrity": "sha1-/rKnfoW5BOzepFmtiXzJCpm9Kns=", 1765 | "dev": true, 1766 | "requires": { 1767 | "acorn-node": "^1.6.1", 1768 | "defined": "^1.0.0", 1769 | "minimist": "^1.1.1" 1770 | } 1771 | }, 1772 | "diffie-hellman": { 1773 | "version": "5.0.3", 1774 | "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", 1775 | "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", 1776 | "dev": true, 1777 | "requires": { 1778 | "bn.js": "^4.1.0", 1779 | "miller-rabin": "^4.0.0", 1780 | "randombytes": "^2.0.0" 1781 | } 1782 | }, 1783 | "domain-browser": { 1784 | "version": "1.2.0", 1785 | "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", 1786 | "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", 1787 | "dev": true 1788 | }, 1789 | "duplexer2": { 1790 | "version": "0.1.4", 1791 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 1792 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", 1793 | "dev": true, 1794 | "requires": { 1795 | "readable-stream": "^2.0.2" 1796 | } 1797 | }, 1798 | "electron-to-chromium": { 1799 | "version": "1.3.235", 1800 | "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.235.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.235.tgz", 1801 | "integrity": "sha1-jQ1Syex20SGJ8vLSZaF9V/QdINw=", 1802 | "dev": true 1803 | }, 1804 | "elliptic": { 1805 | "version": "6.5.0", 1806 | "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.0.tgz", 1807 | "integrity": "sha1-K47UyJG33jIA4UQSpbgkjHr1Bco=", 1808 | "dev": true, 1809 | "requires": { 1810 | "bn.js": "^4.4.0", 1811 | "brorand": "^1.0.1", 1812 | "hash.js": "^1.0.0", 1813 | "hmac-drbg": "^1.0.0", 1814 | "inherits": "^2.0.1", 1815 | "minimalistic-assert": "^1.0.0", 1816 | "minimalistic-crypto-utils": "^1.0.0" 1817 | } 1818 | }, 1819 | "endian-reader": { 1820 | "version": "0.1.0", 1821 | "resolved": "https://registry.npmjs.org/endian-reader/-/endian-reader-0.1.0.tgz", 1822 | "integrity": "sha1-7tYexWSqX2KFJI82JF4siRVtlKw=" 1823 | }, 1824 | "error-ex": { 1825 | "version": "1.3.2", 1826 | "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", 1827 | "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", 1828 | "dev": true, 1829 | "requires": { 1830 | "is-arrayish": "^0.2.1" 1831 | } 1832 | }, 1833 | "escape-string-regexp": { 1834 | "version": "1.0.5", 1835 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1836 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1837 | "dev": true 1838 | }, 1839 | "esmify": { 1840 | "version": "2.1.1", 1841 | "resolved": "https://registry.npm.taobao.org/esmify/download/esmify-2.1.1.tgz", 1842 | "integrity": "sha1-u3iKizR3OdADyHPZ7d+XJLvwMrM=", 1843 | "dev": true, 1844 | "requires": { 1845 | "@babel/core": "^7.2.2", 1846 | "@babel/plugin-syntax-async-generators": "^7.2.0", 1847 | "@babel/plugin-syntax-dynamic-import": "^7.2.0", 1848 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0", 1849 | "@babel/plugin-transform-modules-commonjs": "^7.2.0", 1850 | "babel-plugin-import-to-require": "^1.0.0", 1851 | "cached-path-relative": "^1.0.2", 1852 | "concat-stream": "^1.6.2", 1853 | "duplexer2": "^0.1.4", 1854 | "through2": "^2.0.5" 1855 | }, 1856 | "dependencies": { 1857 | "concat-stream": { 1858 | "version": "1.6.2", 1859 | "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", 1860 | "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", 1861 | "dev": true, 1862 | "requires": { 1863 | "buffer-from": "^1.0.0", 1864 | "inherits": "^2.0.3", 1865 | "readable-stream": "^2.2.2", 1866 | "typedarray": "^0.0.6" 1867 | } 1868 | }, 1869 | "through2": { 1870 | "version": "2.0.5", 1871 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 1872 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 1873 | "dev": true, 1874 | "requires": { 1875 | "readable-stream": "~2.3.6", 1876 | "xtend": "~4.0.1" 1877 | } 1878 | } 1879 | } 1880 | }, 1881 | "esutils": { 1882 | "version": "2.0.2", 1883 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1884 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1885 | "dev": true 1886 | }, 1887 | "events": { 1888 | "version": "2.1.0", 1889 | "resolved": "https://registry.npm.taobao.org/events/download/events-2.1.0.tgz", 1890 | "integrity": "sha1-KpoeGOYQbg6BKqnr1KgZs8KcC6U=", 1891 | "dev": true 1892 | }, 1893 | "evp_bytestokey": { 1894 | "version": "1.0.3", 1895 | "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", 1896 | "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", 1897 | "dev": true, 1898 | "requires": { 1899 | "md5.js": "^1.3.4", 1900 | "safe-buffer": "^5.1.1" 1901 | } 1902 | }, 1903 | "fill-range": { 1904 | "version": "7.0.1", 1905 | "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", 1906 | "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", 1907 | "dev": true, 1908 | "requires": { 1909 | "to-regex-range": "^5.0.1" 1910 | } 1911 | }, 1912 | "frida-any-promise": { 1913 | "version": "2.0.0", 1914 | "resolved": "https://registry.npm.taobao.org/frida-any-promise/download/frida-any-promise-2.0.0.tgz", 1915 | "integrity": "sha1-b45yyL4pBi/QHVA2Vs7oroL9TrE=", 1916 | "dev": true 1917 | }, 1918 | "frida-buffer": { 1919 | "version": "1.0.7", 1920 | "resolved": "https://registry.npm.taobao.org/frida-buffer/download/frida-buffer-1.0.7.tgz", 1921 | "integrity": "sha1-ncUj4VBRbtC2IdORwcQqckc0JoU=", 1922 | "dev": true, 1923 | "requires": { 1924 | "buffer": "^5.3.0" 1925 | } 1926 | }, 1927 | "frida-compile": { 1928 | "version": "9.0.8", 1929 | "resolved": "https://registry.npm.taobao.org/frida-compile/download/frida-compile-9.0.8.tgz", 1930 | "integrity": "sha1-dOWYUnG9CJ/HuGy+Vv1RZNyX0Zk=", 1931 | "dev": true, 1932 | "requires": { 1933 | "@babel/core": "^7.5.5", 1934 | "@babel/plugin-transform-runtime": "^7.5.5", 1935 | "@babel/preset-env": "^7.5.5", 1936 | "@babel/runtime-corejs2": "^7.5.5", 1937 | "@frida/uglifyify": "^6.0.1", 1938 | "babelify": "^10.0.0", 1939 | "bignumber.js": "^9.0.0", 1940 | "browserify": "^16.2.3", 1941 | "chalk": "^2.4.1", 1942 | "chokidar": "^3.0.0", 1943 | "commander": "^3.0.0", 1944 | "concat-stream": "^2.0.0", 1945 | "esmify": "^2.1.1", 1946 | "frida-any-promise": "^2.0.0", 1947 | "frida-buffer": "^1.0.7", 1948 | "frida-fs": "^3.0.0", 1949 | "frida-http": "^3.0.0", 1950 | "frida-net": "^3.0.1", 1951 | "frida-process": "^3.0.1", 1952 | "mkdirp": "^0.5.1", 1953 | "mold-source-map": "^0.4.0", 1954 | "node-notifier": "^5.1.2", 1955 | "through2": "^3.0.1", 1956 | "tsify": "^4.0.0", 1957 | "typescript": "^3.5.1" 1958 | } 1959 | }, 1960 | "frida-fs": { 1961 | "version": "3.0.1", 1962 | "resolved": "https://registry.npm.taobao.org/frida-fs/download/frida-fs-3.0.1.tgz", 1963 | "integrity": "sha1-p5/3kRKWt0kb9gfmTNNwvWBhe4c=", 1964 | "dev": true 1965 | }, 1966 | "frida-http": { 1967 | "version": "3.0.0", 1968 | "resolved": "https://registry.npm.taobao.org/frida-http/download/frida-http-3.0.0.tgz", 1969 | "integrity": "sha1-MI/xMvjl/rCBfEczX7HE+JJ9erA=", 1970 | "dev": true, 1971 | "requires": { 1972 | "http-parser-js": "^0.5.1" 1973 | } 1974 | }, 1975 | "frida-net": { 1976 | "version": "3.0.1", 1977 | "resolved": "https://registry.npm.taobao.org/frida-net/download/frida-net-3.0.1.tgz", 1978 | "integrity": "sha1-YkPrgO2GblZEyTQY6NQqoIE37jc=", 1979 | "dev": true, 1980 | "requires": { 1981 | "ipaddr.js": "^1.9.1" 1982 | } 1983 | }, 1984 | "frida-process": { 1985 | "version": "3.0.1", 1986 | "resolved": "https://registry.npm.taobao.org/frida-process/download/frida-process-3.0.1.tgz", 1987 | "integrity": "sha1-3lfYsuKedZXXnMgf6Bnh1C1JJp4=", 1988 | "dev": true 1989 | }, 1990 | "fs.realpath": { 1991 | "version": "1.0.0", 1992 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1993 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1994 | "dev": true 1995 | }, 1996 | "fsevents": { 1997 | "version": "2.0.7", 1998 | "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.0.7.tgz", 1999 | "integrity": "sha1-OCybRDxsusTFcYfN2iOqO/HM/Co=", 2000 | "dev": true, 2001 | "optional": true 2002 | }, 2003 | "function-bind": { 2004 | "version": "1.1.1", 2005 | "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", 2006 | "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", 2007 | "dev": true 2008 | }, 2009 | "get-assigned-identifiers": { 2010 | "version": "1.2.0", 2011 | "resolved": "https://registry.npm.taobao.org/get-assigned-identifiers/download/get-assigned-identifiers-1.2.0.tgz", 2012 | "integrity": "sha1-bb9BHeZIy6+NkWnrsNLVdhkeL/E=", 2013 | "dev": true 2014 | }, 2015 | "glob": { 2016 | "version": "7.1.4", 2017 | "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz", 2018 | "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", 2019 | "dev": true, 2020 | "requires": { 2021 | "fs.realpath": "^1.0.0", 2022 | "inflight": "^1.0.4", 2023 | "inherits": "2", 2024 | "minimatch": "^3.0.4", 2025 | "once": "^1.3.0", 2026 | "path-is-absolute": "^1.0.0" 2027 | } 2028 | }, 2029 | "glob-parent": { 2030 | "version": "5.0.0", 2031 | "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.0.0.tgz", 2032 | "integrity": "sha1-HcmfDzmwBtPpLCwoQGg4Lwwg6VQ=", 2033 | "dev": true, 2034 | "requires": { 2035 | "is-glob": "^4.0.1" 2036 | } 2037 | }, 2038 | "globals": { 2039 | "version": "11.12.0", 2040 | "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1563721993391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz", 2041 | "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", 2042 | "dev": true 2043 | }, 2044 | "growly": { 2045 | "version": "1.3.0", 2046 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", 2047 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", 2048 | "dev": true 2049 | }, 2050 | "has": { 2051 | "version": "1.0.3", 2052 | "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz", 2053 | "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", 2054 | "dev": true, 2055 | "requires": { 2056 | "function-bind": "^1.1.1" 2057 | } 2058 | }, 2059 | "has-ansi": { 2060 | "version": "2.0.0", 2061 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2062 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2063 | "dev": true, 2064 | "requires": { 2065 | "ansi-regex": "^2.0.0" 2066 | } 2067 | }, 2068 | "has-flag": { 2069 | "version": "3.0.0", 2070 | "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", 2071 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2072 | "dev": true 2073 | }, 2074 | "has-symbols": { 2075 | "version": "1.0.0", 2076 | "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz", 2077 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", 2078 | "dev": true 2079 | }, 2080 | "hash-base": { 2081 | "version": "3.0.4", 2082 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 2083 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 2084 | "dev": true, 2085 | "requires": { 2086 | "inherits": "^2.0.1", 2087 | "safe-buffer": "^5.0.1" 2088 | } 2089 | }, 2090 | "hash.js": { 2091 | "version": "1.1.7", 2092 | "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", 2093 | "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", 2094 | "dev": true, 2095 | "requires": { 2096 | "inherits": "^2.0.3", 2097 | "minimalistic-assert": "^1.0.1" 2098 | } 2099 | }, 2100 | "hmac-drbg": { 2101 | "version": "1.0.1", 2102 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 2103 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 2104 | "dev": true, 2105 | "requires": { 2106 | "hash.js": "^1.0.3", 2107 | "minimalistic-assert": "^1.0.0", 2108 | "minimalistic-crypto-utils": "^1.0.1" 2109 | } 2110 | }, 2111 | "htmlescape": { 2112 | "version": "1.1.1", 2113 | "resolved": "http://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", 2114 | "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", 2115 | "dev": true 2116 | }, 2117 | "http-parser-js": { 2118 | "version": "0.5.1", 2119 | "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.1.tgz", 2120 | "integrity": "sha1-axl6YibMuW5Swy6PCXO13ZI+G6A=", 2121 | "dev": true 2122 | }, 2123 | "https-browserify": { 2124 | "version": "1.0.0", 2125 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 2126 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 2127 | "dev": true 2128 | }, 2129 | "ieee754": { 2130 | "version": "1.1.13", 2131 | "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", 2132 | "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", 2133 | "dev": true 2134 | }, 2135 | "inflight": { 2136 | "version": "1.0.6", 2137 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2138 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2139 | "dev": true, 2140 | "requires": { 2141 | "once": "^1.3.0", 2142 | "wrappy": "1" 2143 | } 2144 | }, 2145 | "inherits": { 2146 | "version": "2.0.4", 2147 | "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz", 2148 | "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", 2149 | "dev": true 2150 | }, 2151 | "inline-source-map": { 2152 | "version": "0.6.2", 2153 | "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", 2154 | "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", 2155 | "dev": true, 2156 | "requires": { 2157 | "source-map": "~0.5.3" 2158 | } 2159 | }, 2160 | "insert-module-globals": { 2161 | "version": "7.2.0", 2162 | "resolved": "https://registry.npm.taobao.org/insert-module-globals/download/insert-module-globals-7.2.0.tgz", 2163 | "integrity": "sha1-7IfltCcoR54ye9XFxxYR3ftHUro=", 2164 | "dev": true, 2165 | "requires": { 2166 | "JSONStream": "^1.0.3", 2167 | "acorn-node": "^1.5.2", 2168 | "combine-source-map": "^0.8.0", 2169 | "concat-stream": "^1.6.1", 2170 | "is-buffer": "^1.1.0", 2171 | "path-is-absolute": "^1.0.1", 2172 | "process": "~0.11.0", 2173 | "through2": "^2.0.0", 2174 | "undeclared-identifiers": "^1.1.2", 2175 | "xtend": "^4.0.0" 2176 | }, 2177 | "dependencies": { 2178 | "concat-stream": { 2179 | "version": "1.6.2", 2180 | "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", 2181 | "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", 2182 | "dev": true, 2183 | "requires": { 2184 | "buffer-from": "^1.0.0", 2185 | "inherits": "^2.0.3", 2186 | "readable-stream": "^2.2.2", 2187 | "typedarray": "^0.0.6" 2188 | } 2189 | }, 2190 | "through2": { 2191 | "version": "2.0.5", 2192 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 2193 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 2194 | "dev": true, 2195 | "requires": { 2196 | "readable-stream": "~2.3.6", 2197 | "xtend": "~4.0.1" 2198 | } 2199 | } 2200 | } 2201 | }, 2202 | "invariant": { 2203 | "version": "2.2.4", 2204 | "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz", 2205 | "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", 2206 | "dev": true, 2207 | "requires": { 2208 | "loose-envify": "^1.0.0" 2209 | } 2210 | }, 2211 | "ipaddr.js": { 2212 | "version": "1.9.1", 2213 | "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", 2214 | "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", 2215 | "dev": true 2216 | }, 2217 | "is-arrayish": { 2218 | "version": "0.2.1", 2219 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2220 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2221 | "dev": true 2222 | }, 2223 | "is-binary-path": { 2224 | "version": "2.1.0", 2225 | "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", 2226 | "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", 2227 | "dev": true, 2228 | "requires": { 2229 | "binary-extensions": "^2.0.0" 2230 | } 2231 | }, 2232 | "is-buffer": { 2233 | "version": "1.1.6", 2234 | "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", 2235 | "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", 2236 | "dev": true 2237 | }, 2238 | "is-extglob": { 2239 | "version": "2.1.1", 2240 | "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", 2241 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2242 | "dev": true 2243 | }, 2244 | "is-glob": { 2245 | "version": "4.0.1", 2246 | "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", 2247 | "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", 2248 | "dev": true, 2249 | "requires": { 2250 | "is-extglob": "^2.1.1" 2251 | } 2252 | }, 2253 | "is-number": { 2254 | "version": "7.0.0", 2255 | "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", 2256 | "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", 2257 | "dev": true 2258 | }, 2259 | "is-utf8": { 2260 | "version": "0.2.1", 2261 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2262 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2263 | "dev": true 2264 | }, 2265 | "is-wsl": { 2266 | "version": "1.1.0", 2267 | "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", 2268 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2269 | "dev": true 2270 | }, 2271 | "isarray": { 2272 | "version": "1.0.0", 2273 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2274 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2275 | "dev": true 2276 | }, 2277 | "isexe": { 2278 | "version": "2.0.0", 2279 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2280 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2281 | "dev": true 2282 | }, 2283 | "js-levenshtein": { 2284 | "version": "1.1.6", 2285 | "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", 2286 | "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", 2287 | "dev": true 2288 | }, 2289 | "js-tokens": { 2290 | "version": "4.0.0", 2291 | "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", 2292 | "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", 2293 | "dev": true 2294 | }, 2295 | "jsesc": { 2296 | "version": "2.5.2", 2297 | "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", 2298 | "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", 2299 | "dev": true 2300 | }, 2301 | "json-stable-stringify": { 2302 | "version": "0.0.1", 2303 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", 2304 | "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", 2305 | "dev": true, 2306 | "requires": { 2307 | "jsonify": "~0.0.0" 2308 | } 2309 | }, 2310 | "json5": { 2311 | "version": "2.1.0", 2312 | "resolved": "http://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz", 2313 | "integrity": "sha1-56DGLEgoXGKNIKELhcibuAfDKFA=", 2314 | "dev": true, 2315 | "requires": { 2316 | "minimist": "^1.2.0" 2317 | } 2318 | }, 2319 | "jsonify": { 2320 | "version": "0.0.0", 2321 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2322 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2323 | "dev": true 2324 | }, 2325 | "jsonparse": { 2326 | "version": "1.3.1", 2327 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 2328 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", 2329 | "dev": true 2330 | }, 2331 | "labeled-stream-splicer": { 2332 | "version": "2.0.2", 2333 | "resolved": "https://registry.npm.taobao.org/labeled-stream-splicer/download/labeled-stream-splicer-2.0.2.tgz", 2334 | "integrity": "sha1-QqQaFqvNRv0EYwbPTyw1dv/7HCE=", 2335 | "dev": true, 2336 | "requires": { 2337 | "inherits": "^2.0.1", 2338 | "stream-splicer": "^2.0.0" 2339 | } 2340 | }, 2341 | "lodash": { 2342 | "version": "4.17.15", 2343 | "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz", 2344 | "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", 2345 | "dev": true 2346 | }, 2347 | "lodash.memoize": { 2348 | "version": "3.0.4", 2349 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", 2350 | "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", 2351 | "dev": true 2352 | }, 2353 | "loose-envify": { 2354 | "version": "1.4.0", 2355 | "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", 2356 | "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", 2357 | "dev": true, 2358 | "requires": { 2359 | "js-tokens": "^3.0.0 || ^4.0.0" 2360 | } 2361 | }, 2362 | "macho": { 2363 | "version": "1.3.0", 2364 | "resolved": "https://registry.npmjs.org/macho/-/macho-1.3.0.tgz", 2365 | "integrity": "sha512-NWAXY8nssCB6asqBqAHNGey01qID+yL9tmbIG8U9tAYoRcqudX/A+iLYd/s8RG6cp0WtpNm5G6KfCJv0RXW9dQ==", 2366 | "requires": { 2367 | "endian-reader": "^0.1.0" 2368 | } 2369 | }, 2370 | "md5.js": { 2371 | "version": "1.3.5", 2372 | "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", 2373 | "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", 2374 | "dev": true, 2375 | "requires": { 2376 | "hash-base": "^3.0.0", 2377 | "inherits": "^2.0.1", 2378 | "safe-buffer": "^5.1.2" 2379 | } 2380 | }, 2381 | "miller-rabin": { 2382 | "version": "4.0.1", 2383 | "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", 2384 | "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", 2385 | "dev": true, 2386 | "requires": { 2387 | "bn.js": "^4.0.0", 2388 | "brorand": "^1.0.1" 2389 | } 2390 | }, 2391 | "minimalistic-assert": { 2392 | "version": "1.0.1", 2393 | "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", 2394 | "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", 2395 | "dev": true 2396 | }, 2397 | "minimalistic-crypto-utils": { 2398 | "version": "1.0.1", 2399 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2400 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2401 | "dev": true 2402 | }, 2403 | "minimatch": { 2404 | "version": "3.0.4", 2405 | "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", 2406 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", 2407 | "dev": true, 2408 | "requires": { 2409 | "brace-expansion": "^1.1.7" 2410 | } 2411 | }, 2412 | "minimist": { 2413 | "version": "1.2.0", 2414 | "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", 2415 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2416 | "dev": true 2417 | }, 2418 | "mkdirp": { 2419 | "version": "0.5.1", 2420 | "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2421 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2422 | "dev": true, 2423 | "requires": { 2424 | "minimist": "0.0.8" 2425 | }, 2426 | "dependencies": { 2427 | "minimist": { 2428 | "version": "0.0.8", 2429 | "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", 2430 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2431 | "dev": true 2432 | } 2433 | } 2434 | }, 2435 | "module-deps": { 2436 | "version": "6.2.1", 2437 | "resolved": "https://registry.npm.taobao.org/module-deps/download/module-deps-6.2.1.tgz", 2438 | "integrity": "sha1-z+VYeEBg6SaCT0dLTmRyh4N82lA=", 2439 | "dev": true, 2440 | "requires": { 2441 | "JSONStream": "^1.0.3", 2442 | "browser-resolve": "^1.7.0", 2443 | "cached-path-relative": "^1.0.2", 2444 | "concat-stream": "~1.6.0", 2445 | "defined": "^1.0.0", 2446 | "detective": "^5.0.2", 2447 | "duplexer2": "^0.1.2", 2448 | "inherits": "^2.0.1", 2449 | "parents": "^1.0.0", 2450 | "readable-stream": "^2.0.2", 2451 | "resolve": "^1.4.0", 2452 | "stream-combiner2": "^1.1.1", 2453 | "subarg": "^1.0.0", 2454 | "through2": "^2.0.0", 2455 | "xtend": "^4.0.0" 2456 | }, 2457 | "dependencies": { 2458 | "concat-stream": { 2459 | "version": "1.6.2", 2460 | "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", 2461 | "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", 2462 | "dev": true, 2463 | "requires": { 2464 | "buffer-from": "^1.0.0", 2465 | "inherits": "^2.0.3", 2466 | "readable-stream": "^2.2.2", 2467 | "typedarray": "^0.0.6" 2468 | } 2469 | }, 2470 | "through2": { 2471 | "version": "2.0.5", 2472 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 2473 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 2474 | "dev": true, 2475 | "requires": { 2476 | "readable-stream": "~2.3.6", 2477 | "xtend": "~4.0.1" 2478 | } 2479 | } 2480 | } 2481 | }, 2482 | "mold-source-map": { 2483 | "version": "0.4.0", 2484 | "resolved": "https://registry.npmjs.org/mold-source-map/-/mold-source-map-0.4.0.tgz", 2485 | "integrity": "sha1-z2fgsxxHq5uttcnCVlGGISe7gxc=", 2486 | "dev": true, 2487 | "requires": { 2488 | "convert-source-map": "^1.1.0", 2489 | "through": "~2.2.7" 2490 | }, 2491 | "dependencies": { 2492 | "through": { 2493 | "version": "2.2.7", 2494 | "resolved": "http://registry.npmjs.org/through/-/through-2.2.7.tgz", 2495 | "integrity": "sha1-bo4hIAGR1OtqmfbwEN9Gqhxusr0=", 2496 | "dev": true 2497 | } 2498 | } 2499 | }, 2500 | "ms": { 2501 | "version": "2.1.2", 2502 | "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", 2503 | "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", 2504 | "dev": true 2505 | }, 2506 | "node-notifier": { 2507 | "version": "5.4.3", 2508 | "resolved": "https://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.3.tgz?cache=0&sync_timestamp=1566211501323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-notifier%2Fdownload%2Fnode-notifier-5.4.3.tgz", 2509 | "integrity": "sha1-y3La+UyTkECY4oucWQ/YZuRkvVA=", 2510 | "dev": true, 2511 | "requires": { 2512 | "growly": "^1.3.0", 2513 | "is-wsl": "^1.1.0", 2514 | "semver": "^5.5.0", 2515 | "shellwords": "^0.1.1", 2516 | "which": "^1.3.0" 2517 | } 2518 | }, 2519 | "node-releases": { 2520 | "version": "1.1.27", 2521 | "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.27.tgz?cache=0&sync_timestamp=1565518233172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.27.tgz", 2522 | "integrity": "sha1-sZ7IrdKv6agmqZ3OzMUWEEwe2vQ=", 2523 | "dev": true, 2524 | "requires": { 2525 | "semver": "^5.3.0" 2526 | } 2527 | }, 2528 | "normalize-path": { 2529 | "version": "3.0.0", 2530 | "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", 2531 | "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", 2532 | "dev": true 2533 | }, 2534 | "object-assign": { 2535 | "version": "4.1.1", 2536 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2537 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2538 | "dev": true 2539 | }, 2540 | "object-keys": { 2541 | "version": "1.1.1", 2542 | "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", 2543 | "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", 2544 | "dev": true 2545 | }, 2546 | "object.assign": { 2547 | "version": "4.1.0", 2548 | "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", 2549 | "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", 2550 | "dev": true, 2551 | "requires": { 2552 | "define-properties": "^1.1.2", 2553 | "function-bind": "^1.1.1", 2554 | "has-symbols": "^1.0.0", 2555 | "object-keys": "^1.0.11" 2556 | } 2557 | }, 2558 | "once": { 2559 | "version": "1.4.0", 2560 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2561 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2562 | "dev": true, 2563 | "requires": { 2564 | "wrappy": "1" 2565 | } 2566 | }, 2567 | "os-browserify": { 2568 | "version": "0.3.0", 2569 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 2570 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 2571 | "dev": true 2572 | }, 2573 | "pako": { 2574 | "version": "1.0.10", 2575 | "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz", 2576 | "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=", 2577 | "dev": true 2578 | }, 2579 | "parents": { 2580 | "version": "1.0.1", 2581 | "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", 2582 | "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", 2583 | "dev": true, 2584 | "requires": { 2585 | "path-platform": "~0.11.15" 2586 | } 2587 | }, 2588 | "parse-asn1": { 2589 | "version": "5.1.4", 2590 | "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz", 2591 | "integrity": "sha1-N/Zij4I/vesic7TVQENKIvPvH8w=", 2592 | "dev": true, 2593 | "requires": { 2594 | "asn1.js": "^4.0.0", 2595 | "browserify-aes": "^1.0.0", 2596 | "create-hash": "^1.1.0", 2597 | "evp_bytestokey": "^1.0.0", 2598 | "pbkdf2": "^3.0.3", 2599 | "safe-buffer": "^5.1.1" 2600 | } 2601 | }, 2602 | "parse-json": { 2603 | "version": "2.2.0", 2604 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 2605 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 2606 | "dev": true, 2607 | "requires": { 2608 | "error-ex": "^1.2.0" 2609 | } 2610 | }, 2611 | "path-browserify": { 2612 | "version": "0.0.1", 2613 | "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", 2614 | "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", 2615 | "dev": true 2616 | }, 2617 | "path-is-absolute": { 2618 | "version": "1.0.1", 2619 | "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2620 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2621 | "dev": true 2622 | }, 2623 | "path-parse": { 2624 | "version": "1.0.6", 2625 | "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", 2626 | "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", 2627 | "dev": true 2628 | }, 2629 | "path-platform": { 2630 | "version": "0.11.15", 2631 | "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", 2632 | "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", 2633 | "dev": true 2634 | }, 2635 | "pbkdf2": { 2636 | "version": "3.0.17", 2637 | "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", 2638 | "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", 2639 | "dev": true, 2640 | "requires": { 2641 | "create-hash": "^1.1.2", 2642 | "create-hmac": "^1.1.4", 2643 | "ripemd160": "^2.0.1", 2644 | "safe-buffer": "^5.0.1", 2645 | "sha.js": "^2.4.8" 2646 | } 2647 | }, 2648 | "picomatch": { 2649 | "version": "2.0.7", 2650 | "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.0.7.tgz", 2651 | "integrity": "sha1-UUFp2MfNC9vuzIomCeNKcWPeafY=", 2652 | "dev": true 2653 | }, 2654 | "private": { 2655 | "version": "0.1.8", 2656 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 2657 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 2658 | "dev": true 2659 | }, 2660 | "process": { 2661 | "version": "0.11.10", 2662 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2663 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 2664 | "dev": true 2665 | }, 2666 | "process-nextick-args": { 2667 | "version": "2.0.1", 2668 | "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", 2669 | "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", 2670 | "dev": true 2671 | }, 2672 | "public-encrypt": { 2673 | "version": "4.0.3", 2674 | "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", 2675 | "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", 2676 | "dev": true, 2677 | "requires": { 2678 | "bn.js": "^4.1.0", 2679 | "browserify-rsa": "^4.0.0", 2680 | "create-hash": "^1.1.0", 2681 | "parse-asn1": "^5.0.0", 2682 | "randombytes": "^2.0.1", 2683 | "safe-buffer": "^5.1.2" 2684 | } 2685 | }, 2686 | "punycode": { 2687 | "version": "1.4.1", 2688 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2689 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2690 | "dev": true 2691 | }, 2692 | "querystring": { 2693 | "version": "0.2.0", 2694 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 2695 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 2696 | "dev": true 2697 | }, 2698 | "querystring-es3": { 2699 | "version": "0.2.1", 2700 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 2701 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 2702 | "dev": true 2703 | }, 2704 | "randombytes": { 2705 | "version": "2.1.0", 2706 | "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", 2707 | "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", 2708 | "dev": true, 2709 | "requires": { 2710 | "safe-buffer": "^5.1.0" 2711 | } 2712 | }, 2713 | "randomfill": { 2714 | "version": "1.0.4", 2715 | "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", 2716 | "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", 2717 | "dev": true, 2718 | "requires": { 2719 | "randombytes": "^2.0.5", 2720 | "safe-buffer": "^5.1.0" 2721 | } 2722 | }, 2723 | "read-only-stream": { 2724 | "version": "2.0.0", 2725 | "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", 2726 | "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", 2727 | "dev": true, 2728 | "requires": { 2729 | "readable-stream": "^2.0.2" 2730 | } 2731 | }, 2732 | "readable-stream": { 2733 | "version": "2.3.6", 2734 | "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.6.tgz", 2735 | "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", 2736 | "dev": true, 2737 | "requires": { 2738 | "core-util-is": "~1.0.0", 2739 | "inherits": "~2.0.3", 2740 | "isarray": "~1.0.0", 2741 | "process-nextick-args": "~2.0.0", 2742 | "safe-buffer": "~5.1.1", 2743 | "string_decoder": "~1.1.1", 2744 | "util-deprecate": "~1.0.1" 2745 | }, 2746 | "dependencies": { 2747 | "string_decoder": { 2748 | "version": "1.1.1", 2749 | "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", 2750 | "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", 2751 | "dev": true, 2752 | "requires": { 2753 | "safe-buffer": "~5.1.0" 2754 | } 2755 | } 2756 | } 2757 | }, 2758 | "readdirp": { 2759 | "version": "3.1.2", 2760 | "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.1.2.tgz", 2761 | "integrity": "sha1-+oXS0U1CiZIORnHerZZDGt0u54o=", 2762 | "dev": true, 2763 | "requires": { 2764 | "picomatch": "^2.0.4" 2765 | } 2766 | }, 2767 | "regenerate": { 2768 | "version": "1.4.0", 2769 | "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", 2770 | "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", 2771 | "dev": true 2772 | }, 2773 | "regenerate-unicode-properties": { 2774 | "version": "8.1.0", 2775 | "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz", 2776 | "integrity": "sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=", 2777 | "dev": true, 2778 | "requires": { 2779 | "regenerate": "^1.4.0" 2780 | } 2781 | }, 2782 | "regenerator-runtime": { 2783 | "version": "0.11.1", 2784 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 2785 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 2786 | "dev": true 2787 | }, 2788 | "regexp-tree": { 2789 | "version": "0.1.11", 2790 | "resolved": "https://registry.npm.taobao.org/regexp-tree/download/regexp-tree-0.1.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp-tree%2Fdownload%2Fregexp-tree-0.1.11.tgz", 2791 | "integrity": "sha1-ycfwD89yLgpWxzkJg6emPdbCcvM=", 2792 | "dev": true 2793 | }, 2794 | "regexpu-core": { 2795 | "version": "4.5.5", 2796 | "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.5.5.tgz", 2797 | "integrity": "sha1-qv/mHCr1gmmz5Ra2GnN5A3YyZBE=", 2798 | "dev": true, 2799 | "requires": { 2800 | "regenerate": "^1.4.0", 2801 | "regenerate-unicode-properties": "^8.1.0", 2802 | "regjsgen": "^0.5.0", 2803 | "regjsparser": "^0.6.0", 2804 | "unicode-match-property-ecmascript": "^1.0.4", 2805 | "unicode-match-property-value-ecmascript": "^1.1.0" 2806 | } 2807 | }, 2808 | "regjsgen": { 2809 | "version": "0.5.0", 2810 | "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.0.tgz", 2811 | "integrity": "sha1-p2NNwI+JIJwgSa3aNSVxH7lyZd0=", 2812 | "dev": true 2813 | }, 2814 | "regjsparser": { 2815 | "version": "0.6.0", 2816 | "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.0.tgz", 2817 | "integrity": "sha1-8eaui32iuulsmTmbhozWyTOiupw=", 2818 | "dev": true, 2819 | "requires": { 2820 | "jsesc": "~0.5.0" 2821 | }, 2822 | "dependencies": { 2823 | "jsesc": { 2824 | "version": "0.5.0", 2825 | "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2826 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2827 | "dev": true 2828 | } 2829 | } 2830 | }, 2831 | "resolve": { 2832 | "version": "1.12.0", 2833 | "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.12.0.tgz?cache=0&sync_timestamp=1564641434608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.12.0.tgz", 2834 | "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=", 2835 | "dev": true, 2836 | "requires": { 2837 | "path-parse": "^1.0.6" 2838 | } 2839 | }, 2840 | "ripemd160": { 2841 | "version": "2.0.2", 2842 | "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", 2843 | "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", 2844 | "dev": true, 2845 | "requires": { 2846 | "hash-base": "^3.0.0", 2847 | "inherits": "^2.0.1" 2848 | } 2849 | }, 2850 | "safe-buffer": { 2851 | "version": "5.1.2", 2852 | "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1562377642757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz", 2853 | "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", 2854 | "dev": true 2855 | }, 2856 | "semver": { 2857 | "version": "5.7.1", 2858 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", 2859 | "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", 2860 | "dev": true 2861 | }, 2862 | "sha.js": { 2863 | "version": "2.4.11", 2864 | "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", 2865 | "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", 2866 | "dev": true, 2867 | "requires": { 2868 | "inherits": "^2.0.1", 2869 | "safe-buffer": "^5.0.1" 2870 | } 2871 | }, 2872 | "shasum": { 2873 | "version": "1.0.2", 2874 | "resolved": "http://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", 2875 | "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", 2876 | "dev": true, 2877 | "requires": { 2878 | "json-stable-stringify": "~0.0.0", 2879 | "sha.js": "~2.4.4" 2880 | } 2881 | }, 2882 | "shell-quote": { 2883 | "version": "1.7.1", 2884 | "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshell-quote%2Fdownload%2Fshell-quote-1.7.1.tgz", 2885 | "integrity": "sha1-MWHZaYhvsU+RQMZSRaXdGbbwsGs=", 2886 | "dev": true 2887 | }, 2888 | "shellwords": { 2889 | "version": "0.1.1", 2890 | "resolved": "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz", 2891 | "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=", 2892 | "dev": true 2893 | }, 2894 | "simple-concat": { 2895 | "version": "1.0.0", 2896 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", 2897 | "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", 2898 | "dev": true 2899 | }, 2900 | "source-map": { 2901 | "version": "0.5.7", 2902 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2903 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2904 | "dev": true 2905 | }, 2906 | "source-map-support": { 2907 | "version": "0.5.13", 2908 | "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.13.tgz", 2909 | "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=", 2910 | "dev": true, 2911 | "requires": { 2912 | "buffer-from": "^1.0.0", 2913 | "source-map": "^0.6.0" 2914 | }, 2915 | "dependencies": { 2916 | "source-map": { 2917 | "version": "0.6.1", 2918 | "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", 2919 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 2920 | "dev": true 2921 | } 2922 | } 2923 | }, 2924 | "stream-browserify": { 2925 | "version": "2.0.2", 2926 | "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", 2927 | "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", 2928 | "dev": true, 2929 | "requires": { 2930 | "inherits": "~2.0.1", 2931 | "readable-stream": "^2.0.2" 2932 | } 2933 | }, 2934 | "stream-combiner2": { 2935 | "version": "1.1.1", 2936 | "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", 2937 | "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", 2938 | "dev": true, 2939 | "requires": { 2940 | "duplexer2": "~0.1.0", 2941 | "readable-stream": "^2.0.2" 2942 | } 2943 | }, 2944 | "stream-http": { 2945 | "version": "3.1.0", 2946 | "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-3.1.0.tgz", 2947 | "integrity": "sha1-Ivsz/ptAVrTsz1i9j0AMS5k//lc=", 2948 | "dev": true, 2949 | "requires": { 2950 | "builtin-status-codes": "^3.0.0", 2951 | "inherits": "^2.0.1", 2952 | "readable-stream": "^3.0.6", 2953 | "xtend": "^4.0.0" 2954 | }, 2955 | "dependencies": { 2956 | "readable-stream": { 2957 | "version": "3.4.0", 2958 | "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.4.0.tgz", 2959 | "integrity": "sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w=", 2960 | "dev": true, 2961 | "requires": { 2962 | "inherits": "^2.0.3", 2963 | "string_decoder": "^1.1.1", 2964 | "util-deprecate": "^1.0.1" 2965 | } 2966 | } 2967 | } 2968 | }, 2969 | "stream-splicer": { 2970 | "version": "2.0.1", 2971 | "resolved": "https://registry.npm.taobao.org/stream-splicer/download/stream-splicer-2.0.1.tgz", 2972 | "integrity": "sha1-CxO37itax+BgmnRj2DiZWJo2P80=", 2973 | "dev": true, 2974 | "requires": { 2975 | "inherits": "^2.0.1", 2976 | "readable-stream": "^2.0.2" 2977 | } 2978 | }, 2979 | "string_decoder": { 2980 | "version": "1.3.0", 2981 | "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz", 2982 | "integrity": "sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=", 2983 | "dev": true, 2984 | "requires": { 2985 | "safe-buffer": "~5.2.0" 2986 | }, 2987 | "dependencies": { 2988 | "safe-buffer": { 2989 | "version": "5.2.0", 2990 | "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz?cache=0&sync_timestamp=1562377642757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.0.tgz", 2991 | "integrity": "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=", 2992 | "dev": true 2993 | } 2994 | } 2995 | }, 2996 | "strip-ansi": { 2997 | "version": "3.0.1", 2998 | "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2999 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3000 | "dev": true, 3001 | "requires": { 3002 | "ansi-regex": "^2.0.0" 3003 | } 3004 | }, 3005 | "strip-bom": { 3006 | "version": "2.0.0", 3007 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3008 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3009 | "dev": true, 3010 | "requires": { 3011 | "is-utf8": "^0.2.0" 3012 | } 3013 | }, 3014 | "strip-json-comments": { 3015 | "version": "2.0.1", 3016 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 3017 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 3018 | "dev": true 3019 | }, 3020 | "subarg": { 3021 | "version": "1.0.0", 3022 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", 3023 | "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", 3024 | "dev": true, 3025 | "requires": { 3026 | "minimist": "^1.1.0" 3027 | } 3028 | }, 3029 | "supports-color": { 3030 | "version": "5.5.0", 3031 | "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", 3032 | "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", 3033 | "dev": true, 3034 | "requires": { 3035 | "has-flag": "^3.0.0" 3036 | } 3037 | }, 3038 | "syntax-error": { 3039 | "version": "1.4.0", 3040 | "resolved": "https://registry.npm.taobao.org/syntax-error/download/syntax-error-1.4.0.tgz", 3041 | "integrity": "sha1-LZ1P9cBkrLcRWUo+O5UFStUdkHw=", 3042 | "dev": true, 3043 | "requires": { 3044 | "acorn-node": "^1.2.0" 3045 | } 3046 | }, 3047 | "terser": { 3048 | "version": "3.17.0", 3049 | "resolved": "https://registry.npm.taobao.org/terser/download/terser-3.17.0.tgz", 3050 | "integrity": "sha1-+I/77aDetWN/nSSw2mb04VqxDLI=", 3051 | "dev": true, 3052 | "requires": { 3053 | "commander": "^2.19.0", 3054 | "source-map": "~0.6.1", 3055 | "source-map-support": "~0.5.10" 3056 | }, 3057 | "dependencies": { 3058 | "commander": { 3059 | "version": "2.20.0", 3060 | "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz?cache=0&sync_timestamp=1565398176321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.0.tgz", 3061 | "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=", 3062 | "dev": true 3063 | }, 3064 | "source-map": { 3065 | "version": "0.6.1", 3066 | "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", 3067 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 3068 | "dev": true 3069 | } 3070 | } 3071 | }, 3072 | "through": { 3073 | "version": "2.3.8", 3074 | "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", 3075 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 3076 | "dev": true 3077 | }, 3078 | "through2": { 3079 | "version": "3.0.1", 3080 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-3.0.1.tgz", 3081 | "integrity": "sha1-OSducTwzAu3544jdnIEt07glvVo=", 3082 | "dev": true, 3083 | "requires": { 3084 | "readable-stream": "2 || 3" 3085 | } 3086 | }, 3087 | "timers-browserify": { 3088 | "version": "1.4.2", 3089 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", 3090 | "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", 3091 | "dev": true, 3092 | "requires": { 3093 | "process": "~0.11.0" 3094 | } 3095 | }, 3096 | "to-fast-properties": { 3097 | "version": "1.0.3", 3098 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 3099 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 3100 | "dev": true 3101 | }, 3102 | "to-regex-range": { 3103 | "version": "5.0.1", 3104 | "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", 3105 | "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", 3106 | "dev": true, 3107 | "requires": { 3108 | "is-number": "^7.0.0" 3109 | } 3110 | }, 3111 | "trim-right": { 3112 | "version": "1.0.1", 3113 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 3114 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 3115 | "dev": true 3116 | }, 3117 | "tsconfig": { 3118 | "version": "5.0.3", 3119 | "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", 3120 | "integrity": "sha1-X0J45wGACWeo/Dg/0ZZIh48qbjo=", 3121 | "dev": true, 3122 | "requires": { 3123 | "any-promise": "^1.3.0", 3124 | "parse-json": "^2.2.0", 3125 | "strip-bom": "^2.0.0", 3126 | "strip-json-comments": "^2.0.0" 3127 | } 3128 | }, 3129 | "tsify": { 3130 | "version": "4.0.1", 3131 | "resolved": "https://registry.npm.taobao.org/tsify/download/tsify-4.0.1.tgz", 3132 | "integrity": "sha1-sZsN338YQ2jb9lg5KT0sWm1IRT0=", 3133 | "dev": true, 3134 | "requires": { 3135 | "convert-source-map": "^1.1.0", 3136 | "fs.realpath": "^1.0.0", 3137 | "object-assign": "^4.1.0", 3138 | "semver": "^5.6.0", 3139 | "through2": "^2.0.0", 3140 | "tsconfig": "^5.0.3" 3141 | }, 3142 | "dependencies": { 3143 | "through2": { 3144 | "version": "2.0.5", 3145 | "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", 3146 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 3147 | "dev": true, 3148 | "requires": { 3149 | "readable-stream": "~2.3.6", 3150 | "xtend": "~4.0.1" 3151 | } 3152 | } 3153 | } 3154 | }, 3155 | "tty-browserify": { 3156 | "version": "0.0.1", 3157 | "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.1.tgz", 3158 | "integrity": "sha1-PwUlHuF5BN/QZ3VGZw25ZRaCuBE=", 3159 | "dev": true 3160 | }, 3161 | "typedarray": { 3162 | "version": "0.0.6", 3163 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 3164 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3165 | "dev": true 3166 | }, 3167 | "typescript": { 3168 | "version": "3.5.3", 3169 | "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-3.5.3.tgz", 3170 | "integrity": "sha1-yDD2V/k/HqhGgZ6SkJL1/lmD6Xc=", 3171 | "dev": true 3172 | }, 3173 | "umd": { 3174 | "version": "3.0.3", 3175 | "resolved": "https://registry.npm.taobao.org/umd/download/umd-3.0.3.tgz", 3176 | "integrity": "sha1-qp/mU8QrkJdnhInAEACstp8LJs8=", 3177 | "dev": true 3178 | }, 3179 | "undeclared-identifiers": { 3180 | "version": "1.1.3", 3181 | "resolved": "https://registry.npm.taobao.org/undeclared-identifiers/download/undeclared-identifiers-1.1.3.tgz", 3182 | "integrity": "sha1-klTB03vawKwrUt5LZyJ5LSqR4w8=", 3183 | "dev": true, 3184 | "requires": { 3185 | "acorn-node": "^1.3.0", 3186 | "dash-ast": "^1.0.0", 3187 | "get-assigned-identifiers": "^1.2.0", 3188 | "simple-concat": "^1.0.0", 3189 | "xtend": "^4.0.1" 3190 | } 3191 | }, 3192 | "unicode-canonical-property-names-ecmascript": { 3193 | "version": "1.0.4", 3194 | "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", 3195 | "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", 3196 | "dev": true 3197 | }, 3198 | "unicode-match-property-ecmascript": { 3199 | "version": "1.0.4", 3200 | "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", 3201 | "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", 3202 | "dev": true, 3203 | "requires": { 3204 | "unicode-canonical-property-names-ecmascript": "^1.0.4", 3205 | "unicode-property-aliases-ecmascript": "^1.0.4" 3206 | } 3207 | }, 3208 | "unicode-match-property-value-ecmascript": { 3209 | "version": "1.1.0", 3210 | "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz", 3211 | "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=", 3212 | "dev": true 3213 | }, 3214 | "unicode-property-aliases-ecmascript": { 3215 | "version": "1.0.5", 3216 | "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz", 3217 | "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=", 3218 | "dev": true 3219 | }, 3220 | "url": { 3221 | "version": "0.11.0", 3222 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 3223 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 3224 | "dev": true, 3225 | "requires": { 3226 | "punycode": "1.3.2", 3227 | "querystring": "0.2.0" 3228 | }, 3229 | "dependencies": { 3230 | "punycode": { 3231 | "version": "1.3.2", 3232 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 3233 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 3234 | "dev": true 3235 | } 3236 | } 3237 | }, 3238 | "util": { 3239 | "version": "0.10.4", 3240 | "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.4.tgz", 3241 | "integrity": "sha1-OqASW/5mikZy3liFfTrOJ+y3aQE=", 3242 | "dev": true, 3243 | "requires": { 3244 | "inherits": "2.0.3" 3245 | }, 3246 | "dependencies": { 3247 | "inherits": { 3248 | "version": "2.0.3", 3249 | "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.3.tgz", 3250 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 3251 | "dev": true 3252 | } 3253 | } 3254 | }, 3255 | "util-deprecate": { 3256 | "version": "1.0.2", 3257 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3258 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3259 | "dev": true 3260 | }, 3261 | "vm-browserify": { 3262 | "version": "1.1.0", 3263 | "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.0.tgz", 3264 | "integrity": "sha1-vXbWojMj4sqP+hICjcBFWcdfkBk=", 3265 | "dev": true 3266 | }, 3267 | "which": { 3268 | "version": "1.3.1", 3269 | "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz", 3270 | "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", 3271 | "dev": true, 3272 | "requires": { 3273 | "isexe": "^2.0.0" 3274 | } 3275 | }, 3276 | "wrappy": { 3277 | "version": "1.0.2", 3278 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3279 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 3280 | "dev": true 3281 | }, 3282 | "xtend": { 3283 | "version": "4.0.2", 3284 | "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", 3285 | "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", 3286 | "dev": true 3287 | } 3288 | } 3289 | } 3290 | --------------------------------------------------------------------------------