├── .gitignore ├── README.md ├── bin └── mtp.js ├── dist └── mtp.js ├── package-lock.json ├── package.json ├── test-img-origin ├── 001.png ├── empty-contents.png ├── index-1 │ ├── 002.jpg │ └── img │ │ └── 003.jpeg └── unsupported-file.png ├── test-img ├── 001.png └── index-1 │ ├── 002.jpg │ └── img │ └── 003.jpeg ├── tinypng-mjw.js ├── tinypng-with-cache.js └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | node_modules/ 3 | todo.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 无依赖的 tinypng node 脚本 2 | ## 特点 3 | - 【无依赖,纯脚本】 4 | - 下载脚本代码,直接使用 node 命令即可运行。 5 | - 将使用门槛降到最低。 6 | - 【过滤重复压缩】 7 | - 自动记录已被压缩过的图片,跳过压缩,加快进度。 8 | - 记录图片压缩后的 md5 值,再次运行压缩脚本时,跳过压缩。 9 | - 通过 md5 值比较文件变更,即使「文件迁移」也能自动过滤。 10 | - 通过 md5 值比较文件变更,即使「使用同名文件替换」也能自动识别,并压缩,没有漏网之鱼。 11 | - 【替换源文件】 12 | - 压缩成功,直接替换源文件,不生成冗余文件,不需要复制粘贴,移动图片。 13 | - 静默压缩,对项目无感知,无任何影响。 14 | - 【自动切换 api key】 15 | - tinypng 申请的 [api key](https://tinypng.com/developers) 每月只有 500 次免费压缩额度。 16 | - 可设置多个 api key,当某 key 超过使用次数时,自动切换下一个 key 进行压缩。 17 | - 【压缩报告】 18 | - 记录每个图片的压缩数据,并生成汇总信息。 19 | - 【压缩安全边界】 20 | - 压缩安全线,当压缩比例低于该百分比值时,保持源文件,避免过分压缩,损伤图片质量。 21 | - 【源码携带详细备注,自带测试图片】 22 | - 降低源码阅读门槛,降低测试门槛,减低使用门槛。 23 | - 推荐阅读源码,打破恐惧,便于定制个性化需求。 24 | 25 | 26 | ## 专为小型项目定制 27 | - 纯脚本,不依赖 gulp,不依赖 webpack,无需搭建脚手架环境 28 | - 小型项目,或者只有几个静态页面,搭建脚手架的成本过高。本脚解决的即是脚手架依赖的问题。 29 | - 当然,中大型项目也可以用,只是其「无依赖」的特点在里面没那么突出。中大型项目推荐使用其 [gulp 版本](https://segmentfault.com/a/1190000023895556),实现更灵活的配置。 30 | 31 | 32 | ## 单文件使用方式 33 | - 第一步,点击[下载源码](http://upyun.luckly-mjw.cn/lib/mtp.js) 34 | - 第二步,在脚本文件头部添加 tinypng 的 [api key](https://tinypng.com/developers) 35 | ``` 36 | global.tinypngConf = { 37 | apiKeyList: [ 38 | // 'XgNgkoyWbdIZd8OizINMjX2TpxAd_Gp3', // 无效 key 39 | // 'IAl6s3ekmONUVMEqWZdIp1nV2ItJL1PC', // 无效 key 40 | 'IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC', // 有效 key 41 | ] 42 | } 43 | ``` 44 | ![配置图](http://upyun.luckly-mjw.cn/Assets/tinypng/004.png) 45 | - 第三步,赋予脚本文件「可执行」权限,```chmod +x ./mtp.js``` 46 | - 第四步,将脚本文件放置到项目所在目录 47 | ![运行效果](http://upyun.luckly-mjw.cn/Assets/tinypng/007.jpeg) 48 | - 第五步,在项目所在目录运行脚本```node ./mtp.js``` 49 | ![运行效果](http://upyun.luckly-mjw.cn/Assets/tinypng/006.jpeg) 50 | - 后续使用,仅需最后两步「第四步」「第五步」 51 | 52 | 53 | ## 全局配置使用方式 54 | - 第一步,全局安装```npm install -g tinypng-script-with-cache``` 55 | - 第二步,全局配置 api key 56 | ```mtp setKey XgNgkoyWbdIZd8OizINMjX2TpxAd_Gp3,IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC``` 57 | - 第三步,在项目所在目录运行脚本```mtp``` 58 | - 后续使用,无需配置,直接在目标目录运行```mtp``` 59 | 60 | ![运行效果](http://upyun.luckly-mjw.cn/Assets/tinypng/008.png) 61 | 62 | ## 参数传递方式 63 | #### 默认配置 64 | - 默认压缩「运行命令所在文件夹」下的图片 65 | - 「命令传参」优先级高于「修改源文件设置」 66 | 67 | 68 | #### 修改源文件设置 69 | - 在源文件头部,写入全局参数,程序运行时自动获取 70 | - 全部参考配置如下 71 | ``` 72 | global.tinypngConf = { 73 | basePath: '/Users/mjw/Desktop/git/tinypng-script-with-cache/test-img', // 压缩路径 74 | createMd5FormOrigin: false, // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。用于「初次项目接入」及手动清理冗余的「图片md5信息」 75 | apiKeyList: [ // tiny png 的 api key 数组,当其中一个不可用或超过使用次数时,自动切换下一个 key 调用 76 | 'IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC', // 有效 key 77 | ] 78 | } 79 | ``` 80 | ![配置图](http://upyun.luckly-mjw.cn/Assets/tinypng/004.png) 81 | 82 | #### 命令传参 83 | - 参数通过空格区分 84 | - 参数一:压缩路径 85 | - 参数二:是否不进行压缩操作,只生成现有图片的 md5 信息。除空字符串```''```外,其余值均为 true 86 | - 参数三:apiKeyList,以逗号区分```,``` 87 | - 传参参考 88 | ``` 89 | node ./mtp.js /Users/mjw/Desktop/git/tinypng-script-with-cache/test-img '' IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC 90 | ``` 91 | ![运行效果](http://upyun.luckly-mjw.cn/Assets/tinypng/005.jpeg) 92 | 93 | #### 配置合并优先级源码 94 | ``` 95 | const vfs = require('vinyl-fs'); 96 | let tinypng = require('./tinypng-with-cache') 97 | 98 | let apiKeyList = [] // 接口 key 默认为空 99 | let basePath = process.cwd() // 默认运行脚本所在目录 100 | let createMd5FormOrigin = false // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。用于「初次项目接入」及手动清理冗余的「图片md5信息」 101 | 102 | // 如果有全局传值 103 | if (global.tinypngConf) { 104 | basePath = tinypngConf.basePath || basePath 105 | apiKeyList = tinypngConf.apiKeyList || apiKeyList 106 | createMd5FormOrigin = tinypngConf.createMd5FormOrigin || createMd5FormOrigin 107 | } 108 | 109 | // 动态参数传值 110 | basePath = process.argv[2] || basePath 111 | createMd5FormOrigin = process.argv[3] || createMd5FormOrigin 112 | apiKeyList = process.argv[4] ? process.argv[4].split(',') : apiKeyList 113 | 114 | let fileFilter = tinypngConf.fileFilter || [ 115 | basePath + '/**/*.png', 116 | basePath + '/**/*.jpg', 117 | basePath + '/**/*.jpeg', 118 | `!${basePath}/**/node_modules/**`, // 忽略无需遍历的文件,路径匹配语法参考:https://www.gulpjs.com.cn/docs/getting-started/explaining-globs/ 119 | `!${basePath}/**/dist/**`, 120 | ] 121 | 122 | console.log({ 123 | basePath, 124 | apiKeyList, 125 | fileFilter, 126 | createMd5FormOrigin, 127 | }) 128 | 129 | if (!apiKeyList.length) { 130 | return console.error('tinypng-script-with-cache', 'tinypny key 列表不能为空!') 131 | } 132 | 133 | vfs.src(fileFilter, { 134 | base: './', // 对文件使用相路径,为了后面覆盖源文件 135 | nodir: true, // 忽略文件夹 136 | }) 137 | .pipe(tinypng({ 138 | apiKeyList, 139 | reportFilePath: basePath + '/tinypngReport.json', // 不设置,则不进行日志记录 140 | md5RecordFilePath: basePath + '/tinypngMd5Record.json', // 不设置,则不进行缓存过滤 141 | minCompressPercentLimit: 10, // 默认值为零,最小压缩百分比限制,为保证图片质量,当压缩比例低于该值时,保持源文件,避免过分压缩,损伤图片质量 142 | createMd5FormOrigin, // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。用于「初次项目接入」及手动清理冗余的「图片md5信息」 143 | })) 144 | .pipe(vfs.dest('./', { overwrite: true })) // 覆写原文件 145 | ``` 146 | 147 | ## [项目地址](https://github.com/Momo707577045/tinypng-script-with-cache) 148 | 149 | ## 二次开发,生成自定义脚本 150 | - git clone 下载项目 151 | - npm install 安装依赖 152 | - 修改「tinypng-mjw.js」与「tinypng-with-cache.js」源文件 153 | - 执行```npx webpack --config webpack.config.js```命令,进行打包 154 | - 生成目标文件```dist/mtp.js``` 155 | 156 | 157 | ## 测试资源 158 | - test-img:图片压缩测试目录 159 | - test-img-origin:测试图片备份目录,用于恢复测试 160 | 161 | 162 | ## 运行效果 163 | ![运行效果](http://upyun.luckly-mjw.cn/Assets/tinypng/006.jpeg) 164 | 165 | ## 压缩报告 166 | ![压缩报告](http://upyun.luckly-mjw.cn/Assets/tinypng/002.png) 167 | 168 | ## md5 记录 169 | ![md5 记录](http://upyun.luckly-mjw.cn/Assets/tinypng/003.png) 170 | 171 | ## gulp 版本请参考[这里](https://segmentfault.com/a/1190000023895556) -------------------------------------------------------------------------------- /bin/mtp.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | 4 | const fs = require('fs') 5 | 6 | // 对操作的前置,设置 key 7 | const keyPath = __dirname + '/key.json' // 秘钥存放文件,当前文件夹 8 | const action = process.argv[2] // 操作 9 | 10 | if (action === 'setKey') { 11 | const key = process.argv[3] // 应用 key 12 | if (!key) { 13 | console.error('\x1B[31m%s\x1B[0m', '请输入 apiKey,多个 key,以「,」隔开') 14 | process.exit(-1) 15 | } 16 | 17 | const keyList = key.split(',') 18 | keyList.forEach((keyItem) => { 19 | if (keyItem.trim().length !== 32) { 20 | console.error('\x1B[31m%s\x1B[0m', `api key 长度不正确:${keyItem},请输入 32 位 api key。多个 key,以「,」隔开`) 21 | process.exit(-1) 22 | } 23 | }) 24 | fs.writeFileSync(keyPath, JSON.stringify(keyList)) 25 | console.log('\x1B[32m%s\x1B[0m', 'apiKey 设置成功!') 26 | } else if (action === '-h') { // 帮助文档 27 | console.log(` 28 | 设置全局apiKey: 29 | 格式:mtp setKey key,key 30 | 示例:mtp setKey XgNgkoyWbdIZd8OizINMjX2TpxAd_Gp3,IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC 31 | 压缩图片: 32 | 格式:mtp [可选]目标压缩目录 [可选]是否仅仅创建md5,不进行压缩 [可选]使用特定apikey 33 | 无参示例:mtp 34 | 带参示例:mtp /Users/xxx/Desktop/test-img true XgNgkoyWbdIZd8OizINMjX2TpxAd_Gp3,IAl6s3ekmONUVMEqWZdIp1nV2ItJLyPC 35 | 更多详情,参考:https://github.com/Momo707577045/tinypng-script-with-cache 36 | `) 37 | } else { // 尝试使用 key.json 中的 key 38 | let apiKeyList = [] 39 | try { 40 | apiKeyList = JSON.parse(fs.readFileSync(keyPath) || '[]') 41 | if (apiKeyList && apiKeyList.length) { 42 | global.tinypngConf = global.tinypngConf || {} 43 | global.tinypngConf.apiKeyList = apiKeyList 44 | } 45 | } catch (e) { 46 | } 47 | 48 | if (!apiKeyList || !apiKeyList.length) { 49 | console.log('\x1B[31m%s\x1B[0m', '当前使用测试版 apiKey,请尽快设置私有 apiKey,详情查看 mtp -h') 50 | } 51 | require('../dist/mtp') 52 | } 53 | 54 | 55 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tinypng-script-with-cache", 3 | "version": "1.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@webassemblyjs/ast": { 8 | "version": "1.9.0", 9 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz", 10 | "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", 11 | "dev": true, 12 | "requires": { 13 | "@webassemblyjs/helper-module-context": "1.9.0", 14 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 15 | "@webassemblyjs/wast-parser": "1.9.0" 16 | } 17 | }, 18 | "@webassemblyjs/floating-point-hex-parser": { 19 | "version": "1.9.0", 20 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz", 21 | "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", 22 | "dev": true 23 | }, 24 | "@webassemblyjs/helper-api-error": { 25 | "version": "1.9.0", 26 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", 27 | "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", 28 | "dev": true 29 | }, 30 | "@webassemblyjs/helper-buffer": { 31 | "version": "1.9.0", 32 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz", 33 | "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", 34 | "dev": true 35 | }, 36 | "@webassemblyjs/helper-code-frame": { 37 | "version": "1.9.0", 38 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz", 39 | "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", 40 | "dev": true, 41 | "requires": { 42 | "@webassemblyjs/wast-printer": "1.9.0" 43 | } 44 | }, 45 | "@webassemblyjs/helper-fsm": { 46 | "version": "1.9.0", 47 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz", 48 | "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", 49 | "dev": true 50 | }, 51 | "@webassemblyjs/helper-module-context": { 52 | "version": "1.9.0", 53 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz", 54 | "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", 55 | "dev": true, 56 | "requires": { 57 | "@webassemblyjs/ast": "1.9.0" 58 | } 59 | }, 60 | "@webassemblyjs/helper-wasm-bytecode": { 61 | "version": "1.9.0", 62 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz", 63 | "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", 64 | "dev": true 65 | }, 66 | "@webassemblyjs/helper-wasm-section": { 67 | "version": "1.9.0", 68 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz", 69 | "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", 70 | "dev": true, 71 | "requires": { 72 | "@webassemblyjs/ast": "1.9.0", 73 | "@webassemblyjs/helper-buffer": "1.9.0", 74 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 75 | "@webassemblyjs/wasm-gen": "1.9.0" 76 | } 77 | }, 78 | "@webassemblyjs/ieee754": { 79 | "version": "1.9.0", 80 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz", 81 | "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", 82 | "dev": true, 83 | "requires": { 84 | "@xtuc/ieee754": "^1.2.0" 85 | } 86 | }, 87 | "@webassemblyjs/leb128": { 88 | "version": "1.9.0", 89 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz", 90 | "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", 91 | "dev": true, 92 | "requires": { 93 | "@xtuc/long": "4.2.2" 94 | } 95 | }, 96 | "@webassemblyjs/utf8": { 97 | "version": "1.9.0", 98 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", 99 | "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", 100 | "dev": true 101 | }, 102 | "@webassemblyjs/wasm-edit": { 103 | "version": "1.9.0", 104 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz", 105 | "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", 106 | "dev": true, 107 | "requires": { 108 | "@webassemblyjs/ast": "1.9.0", 109 | "@webassemblyjs/helper-buffer": "1.9.0", 110 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 111 | "@webassemblyjs/helper-wasm-section": "1.9.0", 112 | "@webassemblyjs/wasm-gen": "1.9.0", 113 | "@webassemblyjs/wasm-opt": "1.9.0", 114 | "@webassemblyjs/wasm-parser": "1.9.0", 115 | "@webassemblyjs/wast-printer": "1.9.0" 116 | } 117 | }, 118 | "@webassemblyjs/wasm-gen": { 119 | "version": "1.9.0", 120 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz", 121 | "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", 122 | "dev": true, 123 | "requires": { 124 | "@webassemblyjs/ast": "1.9.0", 125 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 126 | "@webassemblyjs/ieee754": "1.9.0", 127 | "@webassemblyjs/leb128": "1.9.0", 128 | "@webassemblyjs/utf8": "1.9.0" 129 | } 130 | }, 131 | "@webassemblyjs/wasm-opt": { 132 | "version": "1.9.0", 133 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz", 134 | "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", 135 | "dev": true, 136 | "requires": { 137 | "@webassemblyjs/ast": "1.9.0", 138 | "@webassemblyjs/helper-buffer": "1.9.0", 139 | "@webassemblyjs/wasm-gen": "1.9.0", 140 | "@webassemblyjs/wasm-parser": "1.9.0" 141 | } 142 | }, 143 | "@webassemblyjs/wasm-parser": { 144 | "version": "1.9.0", 145 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz", 146 | "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", 147 | "dev": true, 148 | "requires": { 149 | "@webassemblyjs/ast": "1.9.0", 150 | "@webassemblyjs/helper-api-error": "1.9.0", 151 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 152 | "@webassemblyjs/ieee754": "1.9.0", 153 | "@webassemblyjs/leb128": "1.9.0", 154 | "@webassemblyjs/utf8": "1.9.0" 155 | } 156 | }, 157 | "@webassemblyjs/wast-parser": { 158 | "version": "1.9.0", 159 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz", 160 | "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", 161 | "dev": true, 162 | "requires": { 163 | "@webassemblyjs/ast": "1.9.0", 164 | "@webassemblyjs/floating-point-hex-parser": "1.9.0", 165 | "@webassemblyjs/helper-api-error": "1.9.0", 166 | "@webassemblyjs/helper-code-frame": "1.9.0", 167 | "@webassemblyjs/helper-fsm": "1.9.0", 168 | "@xtuc/long": "4.2.2" 169 | } 170 | }, 171 | "@webassemblyjs/wast-printer": { 172 | "version": "1.9.0", 173 | "resolved": "https://r.cnpmjs.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz", 174 | "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", 175 | "dev": true, 176 | "requires": { 177 | "@webassemblyjs/ast": "1.9.0", 178 | "@webassemblyjs/wast-parser": "1.9.0", 179 | "@xtuc/long": "4.2.2" 180 | } 181 | }, 182 | "@xtuc/ieee754": { 183 | "version": "1.2.0", 184 | "resolved": "https://r.cnpmjs.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", 185 | "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", 186 | "dev": true 187 | }, 188 | "@xtuc/long": { 189 | "version": "4.2.2", 190 | "resolved": "https://r.cnpmjs.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", 191 | "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", 192 | "dev": true 193 | }, 194 | "acorn": { 195 | "version": "6.4.1", 196 | "resolved": "https://r.cnpmjs.org/acorn/download/acorn-6.4.1.tgz", 197 | "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", 198 | "dev": true 199 | }, 200 | "ajv": { 201 | "version": "6.12.4", 202 | "resolved": "https://r.cnpmjs.org/ajv/download/ajv-6.12.4.tgz", 203 | "integrity": "sha1-BhT6zEUiEn+nE0Rca/0+vTduIjQ=", 204 | "dev": true, 205 | "requires": { 206 | "fast-deep-equal": "^3.1.1", 207 | "fast-json-stable-stringify": "^2.0.0", 208 | "json-schema-traverse": "^0.4.1", 209 | "uri-js": "^4.2.2" 210 | } 211 | }, 212 | "ajv-errors": { 213 | "version": "1.0.1", 214 | "resolved": "https://r.cnpmjs.org/ajv-errors/download/ajv-errors-1.0.1.tgz", 215 | "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", 216 | "dev": true 217 | }, 218 | "ajv-keywords": { 219 | "version": "3.5.2", 220 | "resolved": "https://r.cnpmjs.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz", 221 | "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", 222 | "dev": true 223 | }, 224 | "ansi-regex": { 225 | "version": "4.1.0", 226 | "resolved": "https://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", 227 | "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", 228 | "dev": true 229 | }, 230 | "ansi-styles": { 231 | "version": "3.2.1", 232 | "resolved": "https://r.cnpmjs.org/ansi-styles/download/ansi-styles-3.2.1.tgz", 233 | "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", 234 | "dev": true, 235 | "requires": { 236 | "color-convert": "^1.9.0" 237 | } 238 | }, 239 | "anymatch": { 240 | "version": "3.1.1", 241 | "resolved": "https://r.cnpmjs.org/anymatch/download/anymatch-3.1.1.tgz", 242 | "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", 243 | "dev": true, 244 | "optional": true, 245 | "requires": { 246 | "normalize-path": "^3.0.0", 247 | "picomatch": "^2.0.4" 248 | }, 249 | "dependencies": { 250 | "normalize-path": { 251 | "version": "3.0.0", 252 | "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", 253 | "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", 254 | "dev": true, 255 | "optional": true 256 | } 257 | } 258 | }, 259 | "append-buffer": { 260 | "version": "1.0.2", 261 | "resolved": "https://r.cnpmjs.org/append-buffer/download/append-buffer-1.0.2.tgz", 262 | "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", 263 | "requires": { 264 | "buffer-equal": "^1.0.0" 265 | } 266 | }, 267 | "aproba": { 268 | "version": "1.2.0", 269 | "resolved": "https://r.cnpmjs.org/aproba/download/aproba-1.2.0.tgz", 270 | "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", 271 | "dev": true 272 | }, 273 | "arr-diff": { 274 | "version": "4.0.0", 275 | "resolved": "https://r.cnpmjs.org/arr-diff/download/arr-diff-4.0.0.tgz", 276 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 277 | "dev": true 278 | }, 279 | "arr-flatten": { 280 | "version": "1.1.0", 281 | "resolved": "https://r.cnpmjs.org/arr-flatten/download/arr-flatten-1.1.0.tgz", 282 | "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", 283 | "dev": true 284 | }, 285 | "arr-union": { 286 | "version": "3.1.0", 287 | "resolved": "https://r.cnpmjs.org/arr-union/download/arr-union-3.1.0.tgz", 288 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 289 | "dev": true 290 | }, 291 | "array-unique": { 292 | "version": "0.3.2", 293 | "resolved": "https://r.cnpmjs.org/array-unique/download/array-unique-0.3.2.tgz", 294 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 295 | "dev": true 296 | }, 297 | "asn1.js": { 298 | "version": "5.4.1", 299 | "resolved": "https://r.cnpmjs.org/asn1.js/download/asn1.js-5.4.1.tgz", 300 | "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=", 301 | "dev": true, 302 | "requires": { 303 | "bn.js": "^4.0.0", 304 | "inherits": "^2.0.1", 305 | "minimalistic-assert": "^1.0.0", 306 | "safer-buffer": "^2.1.0" 307 | }, 308 | "dependencies": { 309 | "bn.js": { 310 | "version": "4.11.9", 311 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 312 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 313 | "dev": true 314 | } 315 | } 316 | }, 317 | "assert": { 318 | "version": "1.5.0", 319 | "resolved": "https://r.cnpmjs.org/assert/download/assert-1.5.0.tgz", 320 | "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", 321 | "dev": true, 322 | "requires": { 323 | "object-assign": "^4.1.1", 324 | "util": "0.10.3" 325 | }, 326 | "dependencies": { 327 | "inherits": { 328 | "version": "2.0.1", 329 | "resolved": "https://r.cnpmjs.org/inherits/download/inherits-2.0.1.tgz", 330 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 331 | "dev": true 332 | }, 333 | "util": { 334 | "version": "0.10.3", 335 | "resolved": "https://r.cnpmjs.org/util/download/util-0.10.3.tgz", 336 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 337 | "dev": true, 338 | "requires": { 339 | "inherits": "2.0.1" 340 | } 341 | } 342 | } 343 | }, 344 | "assign-symbols": { 345 | "version": "1.0.0", 346 | "resolved": "https://r.cnpmjs.org/assign-symbols/download/assign-symbols-1.0.0.tgz", 347 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 348 | "dev": true 349 | }, 350 | "async-each": { 351 | "version": "1.0.3", 352 | "resolved": "https://r.cnpmjs.org/async-each/download/async-each-1.0.3.tgz", 353 | "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", 354 | "dev": true, 355 | "optional": true 356 | }, 357 | "atob": { 358 | "version": "2.1.2", 359 | "resolved": "https://r.cnpmjs.org/atob/download/atob-2.1.2.tgz", 360 | "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", 361 | "dev": true 362 | }, 363 | "balanced-match": { 364 | "version": "1.0.0", 365 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 366 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 367 | }, 368 | "base": { 369 | "version": "0.11.2", 370 | "resolved": "https://r.cnpmjs.org/base/download/base-0.11.2.tgz", 371 | "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", 372 | "dev": true, 373 | "requires": { 374 | "cache-base": "^1.0.1", 375 | "class-utils": "^0.3.5", 376 | "component-emitter": "^1.2.1", 377 | "define-property": "^1.0.0", 378 | "isobject": "^3.0.1", 379 | "mixin-deep": "^1.2.0", 380 | "pascalcase": "^0.1.1" 381 | }, 382 | "dependencies": { 383 | "define-property": { 384 | "version": "1.0.0", 385 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-1.0.0.tgz", 386 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 387 | "dev": true, 388 | "requires": { 389 | "is-descriptor": "^1.0.0" 390 | } 391 | }, 392 | "is-accessor-descriptor": { 393 | "version": "1.0.0", 394 | "resolved": "https://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", 395 | "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", 396 | "dev": true, 397 | "requires": { 398 | "kind-of": "^6.0.0" 399 | } 400 | }, 401 | "is-data-descriptor": { 402 | "version": "1.0.0", 403 | "resolved": "https://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", 404 | "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", 405 | "dev": true, 406 | "requires": { 407 | "kind-of": "^6.0.0" 408 | } 409 | }, 410 | "is-descriptor": { 411 | "version": "1.0.2", 412 | "resolved": "https://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", 413 | "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", 414 | "dev": true, 415 | "requires": { 416 | "is-accessor-descriptor": "^1.0.0", 417 | "is-data-descriptor": "^1.0.0", 418 | "kind-of": "^6.0.2" 419 | } 420 | } 421 | } 422 | }, 423 | "base64-js": { 424 | "version": "1.3.1", 425 | "resolved": "https://r.cnpmjs.org/base64-js/download/base64-js-1.3.1.tgz", 426 | "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", 427 | "dev": true 428 | }, 429 | "big.js": { 430 | "version": "5.2.2", 431 | "resolved": "https://r.cnpmjs.org/big.js/download/big.js-5.2.2.tgz", 432 | "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", 433 | "dev": true 434 | }, 435 | "binary-extensions": { 436 | "version": "2.1.0", 437 | "resolved": "https://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.1.0.tgz", 438 | "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", 439 | "dev": true, 440 | "optional": true 441 | }, 442 | "bindings": { 443 | "version": "1.5.0", 444 | "resolved": "https://r.cnpmjs.org/bindings/download/bindings-1.5.0.tgz", 445 | "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", 446 | "dev": true, 447 | "optional": true, 448 | "requires": { 449 | "file-uri-to-path": "1.0.0" 450 | } 451 | }, 452 | "bluebird": { 453 | "version": "3.7.2", 454 | "resolved": "https://r.cnpmjs.org/bluebird/download/bluebird-3.7.2.tgz", 455 | "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", 456 | "dev": true 457 | }, 458 | "bn.js": { 459 | "version": "5.1.3", 460 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-5.1.3.tgz", 461 | "integrity": "sha1-vsoAVAj2Quvr6oCwQrTRjSrA7ms=", 462 | "dev": true 463 | }, 464 | "brace-expansion": { 465 | "version": "1.1.11", 466 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 467 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 468 | "requires": { 469 | "balanced-match": "^1.0.0", 470 | "concat-map": "0.0.1" 471 | } 472 | }, 473 | "braces": { 474 | "version": "2.3.2", 475 | "resolved": "https://r.cnpmjs.org/braces/download/braces-2.3.2.tgz", 476 | "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", 477 | "dev": true, 478 | "requires": { 479 | "arr-flatten": "^1.1.0", 480 | "array-unique": "^0.3.2", 481 | "extend-shallow": "^2.0.1", 482 | "fill-range": "^4.0.0", 483 | "isobject": "^3.0.1", 484 | "repeat-element": "^1.1.2", 485 | "snapdragon": "^0.8.1", 486 | "snapdragon-node": "^2.0.1", 487 | "split-string": "^3.0.2", 488 | "to-regex": "^3.0.1" 489 | }, 490 | "dependencies": { 491 | "extend-shallow": { 492 | "version": "2.0.1", 493 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 494 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 495 | "dev": true, 496 | "requires": { 497 | "is-extendable": "^0.1.0" 498 | } 499 | } 500 | } 501 | }, 502 | "brorand": { 503 | "version": "1.1.0", 504 | "resolved": "https://r.cnpmjs.org/brorand/download/brorand-1.1.0.tgz", 505 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 506 | "dev": true 507 | }, 508 | "browserify-aes": { 509 | "version": "1.2.0", 510 | "resolved": "https://r.cnpmjs.org/browserify-aes/download/browserify-aes-1.2.0.tgz", 511 | "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", 512 | "dev": true, 513 | "requires": { 514 | "buffer-xor": "^1.0.3", 515 | "cipher-base": "^1.0.0", 516 | "create-hash": "^1.1.0", 517 | "evp_bytestokey": "^1.0.3", 518 | "inherits": "^2.0.1", 519 | "safe-buffer": "^5.0.1" 520 | } 521 | }, 522 | "browserify-cipher": { 523 | "version": "1.0.1", 524 | "resolved": "https://r.cnpmjs.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", 525 | "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", 526 | "dev": true, 527 | "requires": { 528 | "browserify-aes": "^1.0.4", 529 | "browserify-des": "^1.0.0", 530 | "evp_bytestokey": "^1.0.0" 531 | } 532 | }, 533 | "browserify-des": { 534 | "version": "1.0.2", 535 | "resolved": "https://r.cnpmjs.org/browserify-des/download/browserify-des-1.0.2.tgz", 536 | "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", 537 | "dev": true, 538 | "requires": { 539 | "cipher-base": "^1.0.1", 540 | "des.js": "^1.0.0", 541 | "inherits": "^2.0.1", 542 | "safe-buffer": "^5.1.2" 543 | } 544 | }, 545 | "browserify-rsa": { 546 | "version": "4.0.1", 547 | "resolved": "https://r.cnpmjs.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", 548 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 549 | "dev": true, 550 | "requires": { 551 | "bn.js": "^4.1.0", 552 | "randombytes": "^2.0.1" 553 | }, 554 | "dependencies": { 555 | "bn.js": { 556 | "version": "4.11.9", 557 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 558 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 559 | "dev": true 560 | } 561 | } 562 | }, 563 | "browserify-sign": { 564 | "version": "4.2.1", 565 | "resolved": "https://r.cnpmjs.org/browserify-sign/download/browserify-sign-4.2.1.tgz", 566 | "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=", 567 | "dev": true, 568 | "requires": { 569 | "bn.js": "^5.1.1", 570 | "browserify-rsa": "^4.0.1", 571 | "create-hash": "^1.2.0", 572 | "create-hmac": "^1.1.7", 573 | "elliptic": "^6.5.3", 574 | "inherits": "^2.0.4", 575 | "parse-asn1": "^5.1.5", 576 | "readable-stream": "^3.6.0", 577 | "safe-buffer": "^5.2.0" 578 | }, 579 | "dependencies": { 580 | "readable-stream": { 581 | "version": "3.6.0", 582 | "resolved": "https://r.cnpmjs.org/readable-stream/download/readable-stream-3.6.0.tgz", 583 | "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", 584 | "dev": true, 585 | "requires": { 586 | "inherits": "^2.0.3", 587 | "string_decoder": "^1.1.1", 588 | "util-deprecate": "^1.0.1" 589 | } 590 | }, 591 | "safe-buffer": { 592 | "version": "5.2.1", 593 | "resolved": "https://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.2.1.tgz", 594 | "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", 595 | "dev": true 596 | } 597 | } 598 | }, 599 | "browserify-zlib": { 600 | "version": "0.2.0", 601 | "resolved": "https://r.cnpmjs.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", 602 | "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", 603 | "dev": true, 604 | "requires": { 605 | "pako": "~1.0.5" 606 | } 607 | }, 608 | "buffer": { 609 | "version": "4.9.2", 610 | "resolved": "https://r.cnpmjs.org/buffer/download/buffer-4.9.2.tgz", 611 | "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", 612 | "dev": true, 613 | "requires": { 614 | "base64-js": "^1.0.2", 615 | "ieee754": "^1.1.4", 616 | "isarray": "^1.0.0" 617 | } 618 | }, 619 | "buffer-equal": { 620 | "version": "1.0.0", 621 | "resolved": "https://r.cnpmjs.org/buffer-equal/download/buffer-equal-1.0.0.tgz", 622 | "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" 623 | }, 624 | "buffer-from": { 625 | "version": "1.1.1", 626 | "resolved": "https://r.cnpmjs.org/buffer-from/download/buffer-from-1.1.1.tgz", 627 | "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", 628 | "dev": true 629 | }, 630 | "buffer-xor": { 631 | "version": "1.0.3", 632 | "resolved": "https://r.cnpmjs.org/buffer-xor/download/buffer-xor-1.0.3.tgz", 633 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 634 | "dev": true 635 | }, 636 | "builtin-status-codes": { 637 | "version": "3.0.0", 638 | "resolved": "https://r.cnpmjs.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", 639 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 640 | "dev": true 641 | }, 642 | "cacache": { 643 | "version": "12.0.4", 644 | "resolved": "https://r.cnpmjs.org/cacache/download/cacache-12.0.4.tgz", 645 | "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", 646 | "dev": true, 647 | "requires": { 648 | "bluebird": "^3.5.5", 649 | "chownr": "^1.1.1", 650 | "figgy-pudding": "^3.5.1", 651 | "glob": "^7.1.4", 652 | "graceful-fs": "^4.1.15", 653 | "infer-owner": "^1.0.3", 654 | "lru-cache": "^5.1.1", 655 | "mississippi": "^3.0.0", 656 | "mkdirp": "^0.5.1", 657 | "move-concurrently": "^1.0.1", 658 | "promise-inflight": "^1.0.1", 659 | "rimraf": "^2.6.3", 660 | "ssri": "^6.0.1", 661 | "unique-filename": "^1.1.1", 662 | "y18n": "^4.0.0" 663 | } 664 | }, 665 | "cache-base": { 666 | "version": "1.0.1", 667 | "resolved": "https://r.cnpmjs.org/cache-base/download/cache-base-1.0.1.tgz", 668 | "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", 669 | "dev": true, 670 | "requires": { 671 | "collection-visit": "^1.0.0", 672 | "component-emitter": "^1.2.1", 673 | "get-value": "^2.0.6", 674 | "has-value": "^1.0.0", 675 | "isobject": "^3.0.1", 676 | "set-value": "^2.0.0", 677 | "to-object-path": "^0.3.0", 678 | "union-value": "^1.0.0", 679 | "unset-value": "^1.0.0" 680 | } 681 | }, 682 | "camelcase": { 683 | "version": "5.3.1", 684 | "resolved": "https://r.cnpmjs.org/camelcase/download/camelcase-5.3.1.tgz", 685 | "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", 686 | "dev": true 687 | }, 688 | "chalk": { 689 | "version": "2.4.2", 690 | "resolved": "https://r.cnpmjs.org/chalk/download/chalk-2.4.2.tgz", 691 | "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", 692 | "dev": true, 693 | "requires": { 694 | "ansi-styles": "^3.2.1", 695 | "escape-string-regexp": "^1.0.5", 696 | "supports-color": "^5.3.0" 697 | }, 698 | "dependencies": { 699 | "supports-color": { 700 | "version": "5.5.0", 701 | "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-5.5.0.tgz", 702 | "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", 703 | "dev": true, 704 | "requires": { 705 | "has-flag": "^3.0.0" 706 | } 707 | } 708 | } 709 | }, 710 | "chokidar": { 711 | "version": "3.4.2", 712 | "resolved": "https://r.cnpmjs.org/chokidar/download/chokidar-3.4.2.tgz", 713 | "integrity": "sha1-ONyOZY3sOAl0HrPve7Ckf+QkIy0=", 714 | "dev": true, 715 | "optional": true, 716 | "requires": { 717 | "anymatch": "~3.1.1", 718 | "braces": "~3.0.2", 719 | "fsevents": "~2.1.2", 720 | "glob-parent": "~5.1.0", 721 | "is-binary-path": "~2.1.0", 722 | "is-glob": "~4.0.1", 723 | "normalize-path": "~3.0.0", 724 | "readdirp": "~3.4.0" 725 | }, 726 | "dependencies": { 727 | "braces": { 728 | "version": "3.0.2", 729 | "resolved": "https://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", 730 | "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", 731 | "dev": true, 732 | "optional": true, 733 | "requires": { 734 | "fill-range": "^7.0.1" 735 | } 736 | }, 737 | "fill-range": { 738 | "version": "7.0.1", 739 | "resolved": "https://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", 740 | "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", 741 | "dev": true, 742 | "optional": true, 743 | "requires": { 744 | "to-regex-range": "^5.0.1" 745 | } 746 | }, 747 | "glob-parent": { 748 | "version": "5.1.1", 749 | "resolved": "https://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.1.tgz", 750 | "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", 751 | "dev": true, 752 | "optional": true, 753 | "requires": { 754 | "is-glob": "^4.0.1" 755 | } 756 | }, 757 | "is-glob": { 758 | "version": "4.0.1", 759 | "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-4.0.1.tgz", 760 | "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", 761 | "dev": true, 762 | "optional": true, 763 | "requires": { 764 | "is-extglob": "^2.1.1" 765 | } 766 | }, 767 | "is-number": { 768 | "version": "7.0.0", 769 | "resolved": "https://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", 770 | "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", 771 | "dev": true, 772 | "optional": true 773 | }, 774 | "normalize-path": { 775 | "version": "3.0.0", 776 | "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", 777 | "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", 778 | "dev": true, 779 | "optional": true 780 | }, 781 | "to-regex-range": { 782 | "version": "5.0.1", 783 | "resolved": "https://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", 784 | "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", 785 | "dev": true, 786 | "optional": true, 787 | "requires": { 788 | "is-number": "^7.0.0" 789 | } 790 | } 791 | } 792 | }, 793 | "chownr": { 794 | "version": "1.1.4", 795 | "resolved": "https://r.cnpmjs.org/chownr/download/chownr-1.1.4.tgz", 796 | "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", 797 | "dev": true 798 | }, 799 | "chrome-trace-event": { 800 | "version": "1.0.2", 801 | "resolved": "https://r.cnpmjs.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", 802 | "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", 803 | "dev": true, 804 | "requires": { 805 | "tslib": "^1.9.0" 806 | } 807 | }, 808 | "cipher-base": { 809 | "version": "1.0.4", 810 | "resolved": "https://r.cnpmjs.org/cipher-base/download/cipher-base-1.0.4.tgz", 811 | "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", 812 | "dev": true, 813 | "requires": { 814 | "inherits": "^2.0.1", 815 | "safe-buffer": "^5.0.1" 816 | } 817 | }, 818 | "class-utils": { 819 | "version": "0.3.6", 820 | "resolved": "https://r.cnpmjs.org/class-utils/download/class-utils-0.3.6.tgz", 821 | "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", 822 | "dev": true, 823 | "requires": { 824 | "arr-union": "^3.1.0", 825 | "define-property": "^0.2.5", 826 | "isobject": "^3.0.0", 827 | "static-extend": "^0.1.1" 828 | }, 829 | "dependencies": { 830 | "define-property": { 831 | "version": "0.2.5", 832 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", 833 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 834 | "dev": true, 835 | "requires": { 836 | "is-descriptor": "^0.1.0" 837 | } 838 | } 839 | } 840 | }, 841 | "cliui": { 842 | "version": "5.0.0", 843 | "resolved": "https://r.cnpmjs.org/cliui/download/cliui-5.0.0.tgz", 844 | "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", 845 | "dev": true, 846 | "requires": { 847 | "string-width": "^3.1.0", 848 | "strip-ansi": "^5.2.0", 849 | "wrap-ansi": "^5.1.0" 850 | } 851 | }, 852 | "clone": { 853 | "version": "2.1.2", 854 | "resolved": "https://r.cnpmjs.org/clone/download/clone-2.1.2.tgz", 855 | "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" 856 | }, 857 | "clone-buffer": { 858 | "version": "1.0.0", 859 | "resolved": "https://r.cnpmjs.org/clone-buffer/download/clone-buffer-1.0.0.tgz", 860 | "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" 861 | }, 862 | "clone-stats": { 863 | "version": "1.0.0", 864 | "resolved": "https://r.cnpmjs.org/clone-stats/download/clone-stats-1.0.0.tgz", 865 | "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" 866 | }, 867 | "cloneable-readable": { 868 | "version": "1.1.3", 869 | "resolved": "https://r.cnpmjs.org/cloneable-readable/download/cloneable-readable-1.1.3.tgz", 870 | "integrity": "sha1-EgoAywU7+2OiIucJ+Wg+ouEdjOw=", 871 | "requires": { 872 | "inherits": "^2.0.1", 873 | "process-nextick-args": "^2.0.0", 874 | "readable-stream": "^2.3.5" 875 | } 876 | }, 877 | "collection-visit": { 878 | "version": "1.0.0", 879 | "resolved": "https://r.cnpmjs.org/collection-visit/download/collection-visit-1.0.0.tgz", 880 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 881 | "dev": true, 882 | "requires": { 883 | "map-visit": "^1.0.0", 884 | "object-visit": "^1.0.0" 885 | } 886 | }, 887 | "color-convert": { 888 | "version": "1.9.3", 889 | "resolved": "https://r.cnpmjs.org/color-convert/download/color-convert-1.9.3.tgz", 890 | "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", 891 | "dev": true, 892 | "requires": { 893 | "color-name": "1.1.3" 894 | } 895 | }, 896 | "color-name": { 897 | "version": "1.1.3", 898 | "resolved": "https://r.cnpmjs.org/color-name/download/color-name-1.1.3.tgz", 899 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 900 | "dev": true 901 | }, 902 | "commander": { 903 | "version": "2.20.3", 904 | "resolved": "https://r.cnpmjs.org/commander/download/commander-2.20.3.tgz", 905 | "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", 906 | "dev": true 907 | }, 908 | "commondir": { 909 | "version": "1.0.1", 910 | "resolved": "https://r.cnpmjs.org/commondir/download/commondir-1.0.1.tgz", 911 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 912 | "dev": true 913 | }, 914 | "component-emitter": { 915 | "version": "1.3.0", 916 | "resolved": "https://r.cnpmjs.org/component-emitter/download/component-emitter-1.3.0.tgz", 917 | "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", 918 | "dev": true 919 | }, 920 | "concat-map": { 921 | "version": "0.0.1", 922 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 923 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 924 | }, 925 | "concat-stream": { 926 | "version": "1.6.2", 927 | "resolved": "https://r.cnpmjs.org/concat-stream/download/concat-stream-1.6.2.tgz", 928 | "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", 929 | "dev": true, 930 | "requires": { 931 | "buffer-from": "^1.0.0", 932 | "inherits": "^2.0.3", 933 | "readable-stream": "^2.2.2", 934 | "typedarray": "^0.0.6" 935 | } 936 | }, 937 | "console-browserify": { 938 | "version": "1.2.0", 939 | "resolved": "https://r.cnpmjs.org/console-browserify/download/console-browserify-1.2.0.tgz", 940 | "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", 941 | "dev": true 942 | }, 943 | "constants-browserify": { 944 | "version": "1.0.0", 945 | "resolved": "https://r.cnpmjs.org/constants-browserify/download/constants-browserify-1.0.0.tgz", 946 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 947 | "dev": true 948 | }, 949 | "convert-source-map": { 950 | "version": "1.7.0", 951 | "resolved": "https://r.cnpmjs.org/convert-source-map/download/convert-source-map-1.7.0.tgz", 952 | "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", 953 | "requires": { 954 | "safe-buffer": "~5.1.1" 955 | } 956 | }, 957 | "copy-concurrently": { 958 | "version": "1.0.5", 959 | "resolved": "https://r.cnpmjs.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", 960 | "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", 961 | "dev": true, 962 | "requires": { 963 | "aproba": "^1.1.1", 964 | "fs-write-stream-atomic": "^1.0.8", 965 | "iferr": "^0.1.5", 966 | "mkdirp": "^0.5.1", 967 | "rimraf": "^2.5.4", 968 | "run-queue": "^1.0.0" 969 | } 970 | }, 971 | "copy-descriptor": { 972 | "version": "0.1.1", 973 | "resolved": "https://r.cnpmjs.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", 974 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 975 | "dev": true 976 | }, 977 | "core-util-is": { 978 | "version": "1.0.2", 979 | "resolved": "https://r.cnpmjs.org/core-util-is/download/core-util-is-1.0.2.tgz", 980 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 981 | }, 982 | "create-ecdh": { 983 | "version": "4.0.4", 984 | "resolved": "https://r.cnpmjs.org/create-ecdh/download/create-ecdh-4.0.4.tgz", 985 | "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=", 986 | "dev": true, 987 | "requires": { 988 | "bn.js": "^4.1.0", 989 | "elliptic": "^6.5.3" 990 | }, 991 | "dependencies": { 992 | "bn.js": { 993 | "version": "4.11.9", 994 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 995 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 996 | "dev": true 997 | } 998 | } 999 | }, 1000 | "create-hash": { 1001 | "version": "1.2.0", 1002 | "resolved": "https://r.cnpmjs.org/create-hash/download/create-hash-1.2.0.tgz", 1003 | "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", 1004 | "dev": true, 1005 | "requires": { 1006 | "cipher-base": "^1.0.1", 1007 | "inherits": "^2.0.1", 1008 | "md5.js": "^1.3.4", 1009 | "ripemd160": "^2.0.1", 1010 | "sha.js": "^2.4.0" 1011 | } 1012 | }, 1013 | "create-hmac": { 1014 | "version": "1.1.7", 1015 | "resolved": "https://r.cnpmjs.org/create-hmac/download/create-hmac-1.1.7.tgz", 1016 | "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", 1017 | "dev": true, 1018 | "requires": { 1019 | "cipher-base": "^1.0.3", 1020 | "create-hash": "^1.1.0", 1021 | "inherits": "^2.0.1", 1022 | "ripemd160": "^2.0.0", 1023 | "safe-buffer": "^5.0.1", 1024 | "sha.js": "^2.4.8" 1025 | } 1026 | }, 1027 | "cross-spawn": { 1028 | "version": "6.0.5", 1029 | "resolved": "https://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", 1030 | "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", 1031 | "dev": true, 1032 | "requires": { 1033 | "nice-try": "^1.0.4", 1034 | "path-key": "^2.0.1", 1035 | "semver": "^5.5.0", 1036 | "shebang-command": "^1.2.0", 1037 | "which": "^1.2.9" 1038 | } 1039 | }, 1040 | "crypto-browserify": { 1041 | "version": "3.12.0", 1042 | "resolved": "https://r.cnpmjs.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", 1043 | "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", 1044 | "dev": true, 1045 | "requires": { 1046 | "browserify-cipher": "^1.0.0", 1047 | "browserify-sign": "^4.0.0", 1048 | "create-ecdh": "^4.0.0", 1049 | "create-hash": "^1.1.0", 1050 | "create-hmac": "^1.1.0", 1051 | "diffie-hellman": "^5.0.0", 1052 | "inherits": "^2.0.1", 1053 | "pbkdf2": "^3.0.3", 1054 | "public-encrypt": "^4.0.0", 1055 | "randombytes": "^2.0.0", 1056 | "randomfill": "^1.0.3" 1057 | } 1058 | }, 1059 | "cyclist": { 1060 | "version": "1.0.1", 1061 | "resolved": "https://r.cnpmjs.org/cyclist/download/cyclist-1.0.1.tgz", 1062 | "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", 1063 | "dev": true 1064 | }, 1065 | "debug": { 1066 | "version": "2.6.9", 1067 | "resolved": "https://r.cnpmjs.org/debug/download/debug-2.6.9.tgz", 1068 | "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", 1069 | "dev": true, 1070 | "requires": { 1071 | "ms": "2.0.0" 1072 | } 1073 | }, 1074 | "decamelize": { 1075 | "version": "1.2.0", 1076 | "resolved": "https://r.cnpmjs.org/decamelize/download/decamelize-1.2.0.tgz", 1077 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1078 | "dev": true 1079 | }, 1080 | "decode-uri-component": { 1081 | "version": "0.2.0", 1082 | "resolved": "https://r.cnpmjs.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", 1083 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1084 | "dev": true 1085 | }, 1086 | "define-properties": { 1087 | "version": "1.1.3", 1088 | "resolved": "https://r.cnpmjs.org/define-properties/download/define-properties-1.1.3.tgz", 1089 | "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", 1090 | "requires": { 1091 | "object-keys": "^1.0.12" 1092 | } 1093 | }, 1094 | "define-property": { 1095 | "version": "2.0.2", 1096 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-2.0.2.tgz", 1097 | "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", 1098 | "dev": true, 1099 | "requires": { 1100 | "is-descriptor": "^1.0.2", 1101 | "isobject": "^3.0.1" 1102 | }, 1103 | "dependencies": { 1104 | "is-accessor-descriptor": { 1105 | "version": "1.0.0", 1106 | "resolved": "https://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", 1107 | "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", 1108 | "dev": true, 1109 | "requires": { 1110 | "kind-of": "^6.0.0" 1111 | } 1112 | }, 1113 | "is-data-descriptor": { 1114 | "version": "1.0.0", 1115 | "resolved": "https://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", 1116 | "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", 1117 | "dev": true, 1118 | "requires": { 1119 | "kind-of": "^6.0.0" 1120 | } 1121 | }, 1122 | "is-descriptor": { 1123 | "version": "1.0.2", 1124 | "resolved": "https://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", 1125 | "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", 1126 | "dev": true, 1127 | "requires": { 1128 | "is-accessor-descriptor": "^1.0.0", 1129 | "is-data-descriptor": "^1.0.0", 1130 | "kind-of": "^6.0.2" 1131 | } 1132 | } 1133 | } 1134 | }, 1135 | "des.js": { 1136 | "version": "1.0.1", 1137 | "resolved": "https://r.cnpmjs.org/des.js/download/des.js-1.0.1.tgz", 1138 | "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", 1139 | "dev": true, 1140 | "requires": { 1141 | "inherits": "^2.0.1", 1142 | "minimalistic-assert": "^1.0.0" 1143 | } 1144 | }, 1145 | "detect-file": { 1146 | "version": "1.0.0", 1147 | "resolved": "https://r.cnpmjs.org/detect-file/download/detect-file-1.0.0.tgz", 1148 | "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", 1149 | "dev": true 1150 | }, 1151 | "diffie-hellman": { 1152 | "version": "5.0.3", 1153 | "resolved": "https://r.cnpmjs.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", 1154 | "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", 1155 | "dev": true, 1156 | "requires": { 1157 | "bn.js": "^4.1.0", 1158 | "miller-rabin": "^4.0.0", 1159 | "randombytes": "^2.0.0" 1160 | }, 1161 | "dependencies": { 1162 | "bn.js": { 1163 | "version": "4.11.9", 1164 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 1165 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 1166 | "dev": true 1167 | } 1168 | } 1169 | }, 1170 | "domain-browser": { 1171 | "version": "1.2.0", 1172 | "resolved": "https://r.cnpmjs.org/domain-browser/download/domain-browser-1.2.0.tgz", 1173 | "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", 1174 | "dev": true 1175 | }, 1176 | "duplexify": { 1177 | "version": "3.7.1", 1178 | "resolved": "https://r.cnpmjs.org/duplexify/download/duplexify-3.7.1.tgz", 1179 | "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", 1180 | "requires": { 1181 | "end-of-stream": "^1.0.0", 1182 | "inherits": "^2.0.1", 1183 | "readable-stream": "^2.0.0", 1184 | "stream-shift": "^1.0.0" 1185 | } 1186 | }, 1187 | "elliptic": { 1188 | "version": "6.5.3", 1189 | "resolved": "https://r.cnpmjs.org/elliptic/download/elliptic-6.5.3.tgz", 1190 | "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", 1191 | "dev": true, 1192 | "requires": { 1193 | "bn.js": "^4.4.0", 1194 | "brorand": "^1.0.1", 1195 | "hash.js": "^1.0.0", 1196 | "hmac-drbg": "^1.0.0", 1197 | "inherits": "^2.0.1", 1198 | "minimalistic-assert": "^1.0.0", 1199 | "minimalistic-crypto-utils": "^1.0.0" 1200 | }, 1201 | "dependencies": { 1202 | "bn.js": { 1203 | "version": "4.11.9", 1204 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 1205 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 1206 | "dev": true 1207 | } 1208 | } 1209 | }, 1210 | "emoji-regex": { 1211 | "version": "7.0.3", 1212 | "resolved": "https://r.cnpmjs.org/emoji-regex/download/emoji-regex-7.0.3.tgz", 1213 | "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", 1214 | "dev": true 1215 | }, 1216 | "emojis-list": { 1217 | "version": "3.0.0", 1218 | "resolved": "https://r.cnpmjs.org/emojis-list/download/emojis-list-3.0.0.tgz", 1219 | "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", 1220 | "dev": true 1221 | }, 1222 | "end-of-stream": { 1223 | "version": "1.4.4", 1224 | "resolved": "https://r.cnpmjs.org/end-of-stream/download/end-of-stream-1.4.4.tgz", 1225 | "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", 1226 | "requires": { 1227 | "once": "^1.4.0" 1228 | } 1229 | }, 1230 | "enhanced-resolve": { 1231 | "version": "4.3.0", 1232 | "resolved": "https://r.cnpmjs.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz", 1233 | "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", 1234 | "dev": true, 1235 | "requires": { 1236 | "graceful-fs": "^4.1.2", 1237 | "memory-fs": "^0.5.0", 1238 | "tapable": "^1.0.0" 1239 | }, 1240 | "dependencies": { 1241 | "memory-fs": { 1242 | "version": "0.5.0", 1243 | "resolved": "https://r.cnpmjs.org/memory-fs/download/memory-fs-0.5.0.tgz", 1244 | "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", 1245 | "dev": true, 1246 | "requires": { 1247 | "errno": "^0.1.3", 1248 | "readable-stream": "^2.0.1" 1249 | } 1250 | } 1251 | } 1252 | }, 1253 | "errno": { 1254 | "version": "0.1.7", 1255 | "resolved": "https://r.cnpmjs.org/errno/download/errno-0.1.7.tgz", 1256 | "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", 1257 | "dev": true, 1258 | "requires": { 1259 | "prr": "~1.0.1" 1260 | } 1261 | }, 1262 | "escape-string-regexp": { 1263 | "version": "1.0.5", 1264 | "resolved": "https://r.cnpmjs.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", 1265 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1266 | "dev": true 1267 | }, 1268 | "eslint-scope": { 1269 | "version": "4.0.3", 1270 | "resolved": "https://r.cnpmjs.org/eslint-scope/download/eslint-scope-4.0.3.tgz", 1271 | "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", 1272 | "dev": true, 1273 | "requires": { 1274 | "esrecurse": "^4.1.0", 1275 | "estraverse": "^4.1.1" 1276 | } 1277 | }, 1278 | "esrecurse": { 1279 | "version": "4.3.0", 1280 | "resolved": "https://r.cnpmjs.org/esrecurse/download/esrecurse-4.3.0.tgz", 1281 | "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", 1282 | "dev": true, 1283 | "requires": { 1284 | "estraverse": "^5.2.0" 1285 | }, 1286 | "dependencies": { 1287 | "estraverse": { 1288 | "version": "5.2.0", 1289 | "resolved": "https://r.cnpmjs.org/estraverse/download/estraverse-5.2.0.tgz", 1290 | "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", 1291 | "dev": true 1292 | } 1293 | } 1294 | }, 1295 | "estraverse": { 1296 | "version": "4.3.0", 1297 | "resolved": "https://r.cnpmjs.org/estraverse/download/estraverse-4.3.0.tgz", 1298 | "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", 1299 | "dev": true 1300 | }, 1301 | "events": { 1302 | "version": "3.2.0", 1303 | "resolved": "https://r.cnpmjs.org/events/download/events-3.2.0.tgz", 1304 | "integrity": "sha1-k7h8GPjvzUICpGGuxN/AVWtjk3k=", 1305 | "dev": true 1306 | }, 1307 | "evp_bytestokey": { 1308 | "version": "1.0.3", 1309 | "resolved": "https://r.cnpmjs.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", 1310 | "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", 1311 | "dev": true, 1312 | "requires": { 1313 | "md5.js": "^1.3.4", 1314 | "safe-buffer": "^5.1.1" 1315 | } 1316 | }, 1317 | "expand-brackets": { 1318 | "version": "2.1.4", 1319 | "resolved": "https://r.cnpmjs.org/expand-brackets/download/expand-brackets-2.1.4.tgz", 1320 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1321 | "dev": true, 1322 | "requires": { 1323 | "debug": "^2.3.3", 1324 | "define-property": "^0.2.5", 1325 | "extend-shallow": "^2.0.1", 1326 | "posix-character-classes": "^0.1.0", 1327 | "regex-not": "^1.0.0", 1328 | "snapdragon": "^0.8.1", 1329 | "to-regex": "^3.0.1" 1330 | }, 1331 | "dependencies": { 1332 | "define-property": { 1333 | "version": "0.2.5", 1334 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", 1335 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1336 | "dev": true, 1337 | "requires": { 1338 | "is-descriptor": "^0.1.0" 1339 | } 1340 | }, 1341 | "extend-shallow": { 1342 | "version": "2.0.1", 1343 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 1344 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1345 | "dev": true, 1346 | "requires": { 1347 | "is-extendable": "^0.1.0" 1348 | } 1349 | } 1350 | } 1351 | }, 1352 | "expand-tilde": { 1353 | "version": "2.0.2", 1354 | "resolved": "https://r.cnpmjs.org/expand-tilde/download/expand-tilde-2.0.2.tgz", 1355 | "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", 1356 | "dev": true, 1357 | "requires": { 1358 | "homedir-polyfill": "^1.0.1" 1359 | } 1360 | }, 1361 | "extend": { 1362 | "version": "3.0.2", 1363 | "resolved": "https://r.cnpmjs.org/extend/download/extend-3.0.2.tgz", 1364 | "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" 1365 | }, 1366 | "extend-shallow": { 1367 | "version": "3.0.2", 1368 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-3.0.2.tgz", 1369 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1370 | "dev": true, 1371 | "requires": { 1372 | "assign-symbols": "^1.0.0", 1373 | "is-extendable": "^1.0.1" 1374 | }, 1375 | "dependencies": { 1376 | "is-extendable": { 1377 | "version": "1.0.1", 1378 | "resolved": "https://r.cnpmjs.org/is-extendable/download/is-extendable-1.0.1.tgz", 1379 | "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", 1380 | "dev": true, 1381 | "requires": { 1382 | "is-plain-object": "^2.0.4" 1383 | } 1384 | } 1385 | } 1386 | }, 1387 | "extglob": { 1388 | "version": "2.0.4", 1389 | "resolved": "https://r.cnpmjs.org/extglob/download/extglob-2.0.4.tgz", 1390 | "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", 1391 | "dev": true, 1392 | "requires": { 1393 | "array-unique": "^0.3.2", 1394 | "define-property": "^1.0.0", 1395 | "expand-brackets": "^2.1.4", 1396 | "extend-shallow": "^2.0.1", 1397 | "fragment-cache": "^0.2.1", 1398 | "regex-not": "^1.0.0", 1399 | "snapdragon": "^0.8.1", 1400 | "to-regex": "^3.0.1" 1401 | }, 1402 | "dependencies": { 1403 | "define-property": { 1404 | "version": "1.0.0", 1405 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-1.0.0.tgz", 1406 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1407 | "dev": true, 1408 | "requires": { 1409 | "is-descriptor": "^1.0.0" 1410 | } 1411 | }, 1412 | "extend-shallow": { 1413 | "version": "2.0.1", 1414 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 1415 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1416 | "dev": true, 1417 | "requires": { 1418 | "is-extendable": "^0.1.0" 1419 | } 1420 | }, 1421 | "is-accessor-descriptor": { 1422 | "version": "1.0.0", 1423 | "resolved": "https://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", 1424 | "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", 1425 | "dev": true, 1426 | "requires": { 1427 | "kind-of": "^6.0.0" 1428 | } 1429 | }, 1430 | "is-data-descriptor": { 1431 | "version": "1.0.0", 1432 | "resolved": "https://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", 1433 | "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", 1434 | "dev": true, 1435 | "requires": { 1436 | "kind-of": "^6.0.0" 1437 | } 1438 | }, 1439 | "is-descriptor": { 1440 | "version": "1.0.2", 1441 | "resolved": "https://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", 1442 | "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", 1443 | "dev": true, 1444 | "requires": { 1445 | "is-accessor-descriptor": "^1.0.0", 1446 | "is-data-descriptor": "^1.0.0", 1447 | "kind-of": "^6.0.2" 1448 | } 1449 | } 1450 | } 1451 | }, 1452 | "fast-deep-equal": { 1453 | "version": "3.1.3", 1454 | "resolved": "https://r.cnpmjs.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", 1455 | "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", 1456 | "dev": true 1457 | }, 1458 | "fast-json-stable-stringify": { 1459 | "version": "2.1.0", 1460 | "resolved": "https://r.cnpmjs.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", 1461 | "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", 1462 | "dev": true 1463 | }, 1464 | "figgy-pudding": { 1465 | "version": "3.5.2", 1466 | "resolved": "https://r.cnpmjs.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", 1467 | "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", 1468 | "dev": true 1469 | }, 1470 | "file-uri-to-path": { 1471 | "version": "1.0.0", 1472 | "resolved": "https://r.cnpmjs.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", 1473 | "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", 1474 | "dev": true, 1475 | "optional": true 1476 | }, 1477 | "fill-range": { 1478 | "version": "4.0.0", 1479 | "resolved": "https://r.cnpmjs.org/fill-range/download/fill-range-4.0.0.tgz", 1480 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1481 | "dev": true, 1482 | "requires": { 1483 | "extend-shallow": "^2.0.1", 1484 | "is-number": "^3.0.0", 1485 | "repeat-string": "^1.6.1", 1486 | "to-regex-range": "^2.1.0" 1487 | }, 1488 | "dependencies": { 1489 | "extend-shallow": { 1490 | "version": "2.0.1", 1491 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 1492 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1493 | "dev": true, 1494 | "requires": { 1495 | "is-extendable": "^0.1.0" 1496 | } 1497 | } 1498 | } 1499 | }, 1500 | "find-cache-dir": { 1501 | "version": "2.1.0", 1502 | "resolved": "https://r.cnpmjs.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", 1503 | "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", 1504 | "dev": true, 1505 | "requires": { 1506 | "commondir": "^1.0.1", 1507 | "make-dir": "^2.0.0", 1508 | "pkg-dir": "^3.0.0" 1509 | } 1510 | }, 1511 | "find-up": { 1512 | "version": "3.0.0", 1513 | "resolved": "https://r.cnpmjs.org/find-up/download/find-up-3.0.0.tgz", 1514 | "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", 1515 | "dev": true, 1516 | "requires": { 1517 | "locate-path": "^3.0.0" 1518 | } 1519 | }, 1520 | "findup-sync": { 1521 | "version": "3.0.0", 1522 | "resolved": "https://r.cnpmjs.org/findup-sync/download/findup-sync-3.0.0.tgz", 1523 | "integrity": "sha1-F7EI+e5RLft6XH88iyfqnhqcCNE=", 1524 | "dev": true, 1525 | "requires": { 1526 | "detect-file": "^1.0.0", 1527 | "is-glob": "^4.0.0", 1528 | "micromatch": "^3.0.4", 1529 | "resolve-dir": "^1.0.1" 1530 | }, 1531 | "dependencies": { 1532 | "is-glob": { 1533 | "version": "4.0.1", 1534 | "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-4.0.1.tgz", 1535 | "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", 1536 | "dev": true, 1537 | "requires": { 1538 | "is-extglob": "^2.1.1" 1539 | } 1540 | } 1541 | } 1542 | }, 1543 | "flush-write-stream": { 1544 | "version": "1.1.1", 1545 | "resolved": "https://r.cnpmjs.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", 1546 | "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", 1547 | "requires": { 1548 | "inherits": "^2.0.3", 1549 | "readable-stream": "^2.3.6" 1550 | } 1551 | }, 1552 | "for-in": { 1553 | "version": "1.0.2", 1554 | "resolved": "https://r.cnpmjs.org/for-in/download/for-in-1.0.2.tgz", 1555 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1556 | "dev": true 1557 | }, 1558 | "fragment-cache": { 1559 | "version": "0.2.1", 1560 | "resolved": "https://r.cnpmjs.org/fragment-cache/download/fragment-cache-0.2.1.tgz", 1561 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1562 | "dev": true, 1563 | "requires": { 1564 | "map-cache": "^0.2.2" 1565 | } 1566 | }, 1567 | "from2": { 1568 | "version": "2.3.0", 1569 | "resolved": "https://r.cnpmjs.org/from2/download/from2-2.3.0.tgz", 1570 | "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", 1571 | "dev": true, 1572 | "requires": { 1573 | "inherits": "^2.0.1", 1574 | "readable-stream": "^2.0.0" 1575 | } 1576 | }, 1577 | "fs-mkdirp-stream": { 1578 | "version": "1.0.0", 1579 | "resolved": "https://r.cnpmjs.org/fs-mkdirp-stream/download/fs-mkdirp-stream-1.0.0.tgz", 1580 | "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", 1581 | "requires": { 1582 | "graceful-fs": "^4.1.11", 1583 | "through2": "^2.0.3" 1584 | } 1585 | }, 1586 | "fs-write-stream-atomic": { 1587 | "version": "1.0.10", 1588 | "resolved": "https://r.cnpmjs.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", 1589 | "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", 1590 | "dev": true, 1591 | "requires": { 1592 | "graceful-fs": "^4.1.2", 1593 | "iferr": "^0.1.5", 1594 | "imurmurhash": "^0.1.4", 1595 | "readable-stream": "1 || 2" 1596 | } 1597 | }, 1598 | "fs.realpath": { 1599 | "version": "1.0.0", 1600 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1601 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1602 | }, 1603 | "fsevents": { 1604 | "version": "2.1.3", 1605 | "resolved": "https://r.cnpmjs.org/fsevents/download/fsevents-2.1.3.tgz", 1606 | "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", 1607 | "dev": true, 1608 | "optional": true 1609 | }, 1610 | "function-bind": { 1611 | "version": "1.1.1", 1612 | "resolved": "https://r.cnpmjs.org/function-bind/download/function-bind-1.1.1.tgz", 1613 | "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" 1614 | }, 1615 | "get-caller-file": { 1616 | "version": "2.0.5", 1617 | "resolved": "https://r.cnpmjs.org/get-caller-file/download/get-caller-file-2.0.5.tgz", 1618 | "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", 1619 | "dev": true 1620 | }, 1621 | "get-value": { 1622 | "version": "2.0.6", 1623 | "resolved": "https://r.cnpmjs.org/get-value/download/get-value-2.0.6.tgz", 1624 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1625 | "dev": true 1626 | }, 1627 | "glob": { 1628 | "version": "7.1.6", 1629 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1630 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1631 | "requires": { 1632 | "fs.realpath": "^1.0.0", 1633 | "inflight": "^1.0.4", 1634 | "inherits": "2", 1635 | "minimatch": "^3.0.4", 1636 | "once": "^1.3.0", 1637 | "path-is-absolute": "^1.0.0" 1638 | } 1639 | }, 1640 | "glob-parent": { 1641 | "version": "3.1.0", 1642 | "resolved": "https://r.cnpmjs.org/glob-parent/download/glob-parent-3.1.0.tgz", 1643 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 1644 | "requires": { 1645 | "is-glob": "^3.1.0", 1646 | "path-dirname": "^1.0.0" 1647 | } 1648 | }, 1649 | "glob-stream": { 1650 | "version": "6.1.0", 1651 | "resolved": "https://r.cnpmjs.org/glob-stream/download/glob-stream-6.1.0.tgz", 1652 | "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", 1653 | "requires": { 1654 | "extend": "^3.0.0", 1655 | "glob": "^7.1.1", 1656 | "glob-parent": "^3.1.0", 1657 | "is-negated-glob": "^1.0.0", 1658 | "ordered-read-streams": "^1.0.0", 1659 | "pumpify": "^1.3.5", 1660 | "readable-stream": "^2.1.5", 1661 | "remove-trailing-separator": "^1.0.1", 1662 | "to-absolute-glob": "^2.0.0", 1663 | "unique-stream": "^2.0.2" 1664 | } 1665 | }, 1666 | "global-modules": { 1667 | "version": "2.0.0", 1668 | "resolved": "https://r.cnpmjs.org/global-modules/download/global-modules-2.0.0.tgz", 1669 | "integrity": "sha1-mXYFrSNF8n9RU5vqJldEISFcd4A=", 1670 | "dev": true, 1671 | "requires": { 1672 | "global-prefix": "^3.0.0" 1673 | }, 1674 | "dependencies": { 1675 | "global-prefix": { 1676 | "version": "3.0.0", 1677 | "resolved": "https://r.cnpmjs.org/global-prefix/download/global-prefix-3.0.0.tgz", 1678 | "integrity": "sha1-/IX3MGTfafUEIfR/iD/luRO6m5c=", 1679 | "dev": true, 1680 | "requires": { 1681 | "ini": "^1.3.5", 1682 | "kind-of": "^6.0.2", 1683 | "which": "^1.3.1" 1684 | } 1685 | } 1686 | } 1687 | }, 1688 | "global-prefix": { 1689 | "version": "1.0.2", 1690 | "resolved": "https://r.cnpmjs.org/global-prefix/download/global-prefix-1.0.2.tgz", 1691 | "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", 1692 | "dev": true, 1693 | "requires": { 1694 | "expand-tilde": "^2.0.2", 1695 | "homedir-polyfill": "^1.0.1", 1696 | "ini": "^1.3.4", 1697 | "is-windows": "^1.0.1", 1698 | "which": "^1.2.14" 1699 | } 1700 | }, 1701 | "graceful-fs": { 1702 | "version": "4.2.4", 1703 | "resolved": "https://r.cnpmjs.org/graceful-fs/download/graceful-fs-4.2.4.tgz", 1704 | "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=" 1705 | }, 1706 | "has-flag": { 1707 | "version": "3.0.0", 1708 | "resolved": "https://r.cnpmjs.org/has-flag/download/has-flag-3.0.0.tgz", 1709 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1710 | "dev": true 1711 | }, 1712 | "has-symbols": { 1713 | "version": "1.0.1", 1714 | "resolved": "https://r.cnpmjs.org/has-symbols/download/has-symbols-1.0.1.tgz", 1715 | "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" 1716 | }, 1717 | "has-value": { 1718 | "version": "1.0.0", 1719 | "resolved": "https://r.cnpmjs.org/has-value/download/has-value-1.0.0.tgz", 1720 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 1721 | "dev": true, 1722 | "requires": { 1723 | "get-value": "^2.0.6", 1724 | "has-values": "^1.0.0", 1725 | "isobject": "^3.0.0" 1726 | } 1727 | }, 1728 | "has-values": { 1729 | "version": "1.0.0", 1730 | "resolved": "https://r.cnpmjs.org/has-values/download/has-values-1.0.0.tgz", 1731 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 1732 | "dev": true, 1733 | "requires": { 1734 | "is-number": "^3.0.0", 1735 | "kind-of": "^4.0.0" 1736 | }, 1737 | "dependencies": { 1738 | "kind-of": { 1739 | "version": "4.0.0", 1740 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-4.0.0.tgz", 1741 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 1742 | "dev": true, 1743 | "requires": { 1744 | "is-buffer": "^1.1.5" 1745 | } 1746 | } 1747 | } 1748 | }, 1749 | "hash-base": { 1750 | "version": "3.1.0", 1751 | "resolved": "https://r.cnpmjs.org/hash-base/download/hash-base-3.1.0.tgz", 1752 | "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", 1753 | "dev": true, 1754 | "requires": { 1755 | "inherits": "^2.0.4", 1756 | "readable-stream": "^3.6.0", 1757 | "safe-buffer": "^5.2.0" 1758 | }, 1759 | "dependencies": { 1760 | "readable-stream": { 1761 | "version": "3.6.0", 1762 | "resolved": "https://r.cnpmjs.org/readable-stream/download/readable-stream-3.6.0.tgz", 1763 | "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", 1764 | "dev": true, 1765 | "requires": { 1766 | "inherits": "^2.0.3", 1767 | "string_decoder": "^1.1.1", 1768 | "util-deprecate": "^1.0.1" 1769 | } 1770 | }, 1771 | "safe-buffer": { 1772 | "version": "5.2.1", 1773 | "resolved": "https://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.2.1.tgz", 1774 | "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", 1775 | "dev": true 1776 | } 1777 | } 1778 | }, 1779 | "hash.js": { 1780 | "version": "1.1.7", 1781 | "resolved": "https://r.cnpmjs.org/hash.js/download/hash.js-1.1.7.tgz", 1782 | "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", 1783 | "dev": true, 1784 | "requires": { 1785 | "inherits": "^2.0.3", 1786 | "minimalistic-assert": "^1.0.1" 1787 | } 1788 | }, 1789 | "hmac-drbg": { 1790 | "version": "1.0.1", 1791 | "resolved": "https://r.cnpmjs.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", 1792 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1793 | "dev": true, 1794 | "requires": { 1795 | "hash.js": "^1.0.3", 1796 | "minimalistic-assert": "^1.0.0", 1797 | "minimalistic-crypto-utils": "^1.0.1" 1798 | } 1799 | }, 1800 | "homedir-polyfill": { 1801 | "version": "1.0.3", 1802 | "resolved": "https://r.cnpmjs.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz", 1803 | "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", 1804 | "dev": true, 1805 | "requires": { 1806 | "parse-passwd": "^1.0.0" 1807 | } 1808 | }, 1809 | "https-browserify": { 1810 | "version": "1.0.0", 1811 | "resolved": "https://r.cnpmjs.org/https-browserify/download/https-browserify-1.0.0.tgz", 1812 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 1813 | "dev": true 1814 | }, 1815 | "ieee754": { 1816 | "version": "1.1.13", 1817 | "resolved": "https://r.cnpmjs.org/ieee754/download/ieee754-1.1.13.tgz", 1818 | "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", 1819 | "dev": true 1820 | }, 1821 | "iferr": { 1822 | "version": "0.1.5", 1823 | "resolved": "https://r.cnpmjs.org/iferr/download/iferr-0.1.5.tgz", 1824 | "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", 1825 | "dev": true 1826 | }, 1827 | "import-local": { 1828 | "version": "2.0.0", 1829 | "resolved": "https://r.cnpmjs.org/import-local/download/import-local-2.0.0.tgz", 1830 | "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", 1831 | "dev": true, 1832 | "requires": { 1833 | "pkg-dir": "^3.0.0", 1834 | "resolve-cwd": "^2.0.0" 1835 | } 1836 | }, 1837 | "imurmurhash": { 1838 | "version": "0.1.4", 1839 | "resolved": "https://r.cnpmjs.org/imurmurhash/download/imurmurhash-0.1.4.tgz", 1840 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1841 | "dev": true 1842 | }, 1843 | "infer-owner": { 1844 | "version": "1.0.4", 1845 | "resolved": "https://r.cnpmjs.org/infer-owner/download/infer-owner-1.0.4.tgz", 1846 | "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", 1847 | "dev": true 1848 | }, 1849 | "inflight": { 1850 | "version": "1.0.6", 1851 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1852 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1853 | "requires": { 1854 | "once": "^1.3.0", 1855 | "wrappy": "1" 1856 | } 1857 | }, 1858 | "inherits": { 1859 | "version": "2.0.4", 1860 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1861 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1862 | }, 1863 | "ini": { 1864 | "version": "1.3.5", 1865 | "resolved": "https://r.cnpmjs.org/ini/download/ini-1.3.5.tgz", 1866 | "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", 1867 | "dev": true 1868 | }, 1869 | "interpret": { 1870 | "version": "1.4.0", 1871 | "resolved": "https://r.cnpmjs.org/interpret/download/interpret-1.4.0.tgz", 1872 | "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", 1873 | "dev": true 1874 | }, 1875 | "is-absolute": { 1876 | "version": "1.0.0", 1877 | "resolved": "https://r.cnpmjs.org/is-absolute/download/is-absolute-1.0.0.tgz", 1878 | "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", 1879 | "requires": { 1880 | "is-relative": "^1.0.0", 1881 | "is-windows": "^1.0.1" 1882 | } 1883 | }, 1884 | "is-accessor-descriptor": { 1885 | "version": "0.1.6", 1886 | "resolved": "https://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", 1887 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 1888 | "dev": true, 1889 | "requires": { 1890 | "kind-of": "^3.0.2" 1891 | }, 1892 | "dependencies": { 1893 | "kind-of": { 1894 | "version": "3.2.2", 1895 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 1896 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1897 | "dev": true, 1898 | "requires": { 1899 | "is-buffer": "^1.1.5" 1900 | } 1901 | } 1902 | } 1903 | }, 1904 | "is-binary-path": { 1905 | "version": "2.1.0", 1906 | "resolved": "https://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", 1907 | "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", 1908 | "dev": true, 1909 | "optional": true, 1910 | "requires": { 1911 | "binary-extensions": "^2.0.0" 1912 | } 1913 | }, 1914 | "is-buffer": { 1915 | "version": "1.1.6", 1916 | "resolved": "https://r.cnpmjs.org/is-buffer/download/is-buffer-1.1.6.tgz", 1917 | "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" 1918 | }, 1919 | "is-data-descriptor": { 1920 | "version": "0.1.4", 1921 | "resolved": "https://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", 1922 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 1923 | "dev": true, 1924 | "requires": { 1925 | "kind-of": "^3.0.2" 1926 | }, 1927 | "dependencies": { 1928 | "kind-of": { 1929 | "version": "3.2.2", 1930 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 1931 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1932 | "dev": true, 1933 | "requires": { 1934 | "is-buffer": "^1.1.5" 1935 | } 1936 | } 1937 | } 1938 | }, 1939 | "is-descriptor": { 1940 | "version": "0.1.6", 1941 | "resolved": "https://r.cnpmjs.org/is-descriptor/download/is-descriptor-0.1.6.tgz", 1942 | "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", 1943 | "dev": true, 1944 | "requires": { 1945 | "is-accessor-descriptor": "^0.1.6", 1946 | "is-data-descriptor": "^0.1.4", 1947 | "kind-of": "^5.0.0" 1948 | }, 1949 | "dependencies": { 1950 | "kind-of": { 1951 | "version": "5.1.0", 1952 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-5.1.0.tgz", 1953 | "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", 1954 | "dev": true 1955 | } 1956 | } 1957 | }, 1958 | "is-extendable": { 1959 | "version": "0.1.1", 1960 | "resolved": "https://r.cnpmjs.org/is-extendable/download/is-extendable-0.1.1.tgz", 1961 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 1962 | "dev": true 1963 | }, 1964 | "is-extglob": { 1965 | "version": "2.1.1", 1966 | "resolved": "https://r.cnpmjs.org/is-extglob/download/is-extglob-2.1.1.tgz", 1967 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" 1968 | }, 1969 | "is-fullwidth-code-point": { 1970 | "version": "2.0.0", 1971 | "resolved": "https://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", 1972 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 1973 | "dev": true 1974 | }, 1975 | "is-glob": { 1976 | "version": "3.1.0", 1977 | "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-3.1.0.tgz", 1978 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 1979 | "requires": { 1980 | "is-extglob": "^2.1.0" 1981 | } 1982 | }, 1983 | "is-negated-glob": { 1984 | "version": "1.0.0", 1985 | "resolved": "https://r.cnpmjs.org/is-negated-glob/download/is-negated-glob-1.0.0.tgz", 1986 | "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" 1987 | }, 1988 | "is-number": { 1989 | "version": "3.0.0", 1990 | "resolved": "https://r.cnpmjs.org/is-number/download/is-number-3.0.0.tgz", 1991 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 1992 | "dev": true, 1993 | "requires": { 1994 | "kind-of": "^3.0.2" 1995 | }, 1996 | "dependencies": { 1997 | "kind-of": { 1998 | "version": "3.2.2", 1999 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 2000 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2001 | "dev": true, 2002 | "requires": { 2003 | "is-buffer": "^1.1.5" 2004 | } 2005 | } 2006 | } 2007 | }, 2008 | "is-plain-object": { 2009 | "version": "2.0.4", 2010 | "resolved": "https://r.cnpmjs.org/is-plain-object/download/is-plain-object-2.0.4.tgz", 2011 | "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", 2012 | "dev": true, 2013 | "requires": { 2014 | "isobject": "^3.0.1" 2015 | } 2016 | }, 2017 | "is-relative": { 2018 | "version": "1.0.0", 2019 | "resolved": "https://r.cnpmjs.org/is-relative/download/is-relative-1.0.0.tgz", 2020 | "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", 2021 | "requires": { 2022 | "is-unc-path": "^1.0.0" 2023 | } 2024 | }, 2025 | "is-unc-path": { 2026 | "version": "1.0.0", 2027 | "resolved": "https://r.cnpmjs.org/is-unc-path/download/is-unc-path-1.0.0.tgz", 2028 | "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", 2029 | "requires": { 2030 | "unc-path-regex": "^0.1.2" 2031 | } 2032 | }, 2033 | "is-utf8": { 2034 | "version": "0.2.1", 2035 | "resolved": "https://r.cnpmjs.org/is-utf8/download/is-utf8-0.2.1.tgz", 2036 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" 2037 | }, 2038 | "is-valid-glob": { 2039 | "version": "1.0.0", 2040 | "resolved": "https://r.cnpmjs.org/is-valid-glob/download/is-valid-glob-1.0.0.tgz", 2041 | "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" 2042 | }, 2043 | "is-windows": { 2044 | "version": "1.0.2", 2045 | "resolved": "https://r.cnpmjs.org/is-windows/download/is-windows-1.0.2.tgz", 2046 | "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" 2047 | }, 2048 | "is-wsl": { 2049 | "version": "1.1.0", 2050 | "resolved": "https://r.cnpmjs.org/is-wsl/download/is-wsl-1.1.0.tgz", 2051 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 2052 | "dev": true 2053 | }, 2054 | "isarray": { 2055 | "version": "1.0.0", 2056 | "resolved": "https://r.cnpmjs.org/isarray/download/isarray-1.0.0.tgz", 2057 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 2058 | }, 2059 | "isexe": { 2060 | "version": "2.0.0", 2061 | "resolved": "https://r.cnpmjs.org/isexe/download/isexe-2.0.0.tgz", 2062 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 2063 | "dev": true 2064 | }, 2065 | "isobject": { 2066 | "version": "3.0.1", 2067 | "resolved": "https://r.cnpmjs.org/isobject/download/isobject-3.0.1.tgz", 2068 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2069 | "dev": true 2070 | }, 2071 | "json-parse-better-errors": { 2072 | "version": "1.0.2", 2073 | "resolved": "https://r.cnpmjs.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", 2074 | "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", 2075 | "dev": true 2076 | }, 2077 | "json-schema-traverse": { 2078 | "version": "0.4.1", 2079 | "resolved": "https://r.cnpmjs.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", 2080 | "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", 2081 | "dev": true 2082 | }, 2083 | "json-stable-stringify-without-jsonify": { 2084 | "version": "1.0.1", 2085 | "resolved": "https://r.cnpmjs.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", 2086 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" 2087 | }, 2088 | "json5": { 2089 | "version": "1.0.1", 2090 | "resolved": "https://r.cnpmjs.org/json5/download/json5-1.0.1.tgz", 2091 | "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", 2092 | "dev": true, 2093 | "requires": { 2094 | "minimist": "^1.2.0" 2095 | } 2096 | }, 2097 | "kind-of": { 2098 | "version": "6.0.3", 2099 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-6.0.3.tgz", 2100 | "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", 2101 | "dev": true 2102 | }, 2103 | "lazystream": { 2104 | "version": "1.0.0", 2105 | "resolved": "https://r.cnpmjs.org/lazystream/download/lazystream-1.0.0.tgz", 2106 | "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 2107 | "requires": { 2108 | "readable-stream": "^2.0.5" 2109 | } 2110 | }, 2111 | "lead": { 2112 | "version": "1.0.0", 2113 | "resolved": "https://r.cnpmjs.org/lead/download/lead-1.0.0.tgz", 2114 | "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", 2115 | "requires": { 2116 | "flush-write-stream": "^1.0.2" 2117 | } 2118 | }, 2119 | "loader-runner": { 2120 | "version": "2.4.0", 2121 | "resolved": "https://r.cnpmjs.org/loader-runner/download/loader-runner-2.4.0.tgz", 2122 | "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", 2123 | "dev": true 2124 | }, 2125 | "loader-utils": { 2126 | "version": "1.4.0", 2127 | "resolved": "https://r.cnpmjs.org/loader-utils/download/loader-utils-1.4.0.tgz", 2128 | "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", 2129 | "dev": true, 2130 | "requires": { 2131 | "big.js": "^5.2.2", 2132 | "emojis-list": "^3.0.0", 2133 | "json5": "^1.0.1" 2134 | } 2135 | }, 2136 | "locate-path": { 2137 | "version": "3.0.0", 2138 | "resolved": "https://r.cnpmjs.org/locate-path/download/locate-path-3.0.0.tgz", 2139 | "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", 2140 | "dev": true, 2141 | "requires": { 2142 | "p-locate": "^3.0.0", 2143 | "path-exists": "^3.0.0" 2144 | } 2145 | }, 2146 | "lru-cache": { 2147 | "version": "5.1.1", 2148 | "resolved": "https://r.cnpmjs.org/lru-cache/download/lru-cache-5.1.1.tgz", 2149 | "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", 2150 | "dev": true, 2151 | "requires": { 2152 | "yallist": "^3.0.2" 2153 | } 2154 | }, 2155 | "make-dir": { 2156 | "version": "2.1.0", 2157 | "resolved": "https://r.cnpmjs.org/make-dir/download/make-dir-2.1.0.tgz", 2158 | "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", 2159 | "dev": true, 2160 | "requires": { 2161 | "pify": "^4.0.1", 2162 | "semver": "^5.6.0" 2163 | } 2164 | }, 2165 | "map-cache": { 2166 | "version": "0.2.2", 2167 | "resolved": "https://r.cnpmjs.org/map-cache/download/map-cache-0.2.2.tgz", 2168 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 2169 | "dev": true 2170 | }, 2171 | "map-visit": { 2172 | "version": "1.0.0", 2173 | "resolved": "https://r.cnpmjs.org/map-visit/download/map-visit-1.0.0.tgz", 2174 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 2175 | "dev": true, 2176 | "requires": { 2177 | "object-visit": "^1.0.0" 2178 | } 2179 | }, 2180 | "md5.js": { 2181 | "version": "1.3.5", 2182 | "resolved": "https://r.cnpmjs.org/md5.js/download/md5.js-1.3.5.tgz", 2183 | "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", 2184 | "dev": true, 2185 | "requires": { 2186 | "hash-base": "^3.0.0", 2187 | "inherits": "^2.0.1", 2188 | "safe-buffer": "^5.1.2" 2189 | } 2190 | }, 2191 | "memory-fs": { 2192 | "version": "0.4.1", 2193 | "resolved": "https://r.cnpmjs.org/memory-fs/download/memory-fs-0.4.1.tgz", 2194 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 2195 | "dev": true, 2196 | "requires": { 2197 | "errno": "^0.1.3", 2198 | "readable-stream": "^2.0.1" 2199 | } 2200 | }, 2201 | "micromatch": { 2202 | "version": "3.1.10", 2203 | "resolved": "https://r.cnpmjs.org/micromatch/download/micromatch-3.1.10.tgz", 2204 | "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", 2205 | "dev": true, 2206 | "requires": { 2207 | "arr-diff": "^4.0.0", 2208 | "array-unique": "^0.3.2", 2209 | "braces": "^2.3.1", 2210 | "define-property": "^2.0.2", 2211 | "extend-shallow": "^3.0.2", 2212 | "extglob": "^2.0.4", 2213 | "fragment-cache": "^0.2.1", 2214 | "kind-of": "^6.0.2", 2215 | "nanomatch": "^1.2.9", 2216 | "object.pick": "^1.3.0", 2217 | "regex-not": "^1.0.0", 2218 | "snapdragon": "^0.8.1", 2219 | "to-regex": "^3.0.2" 2220 | } 2221 | }, 2222 | "miller-rabin": { 2223 | "version": "4.0.1", 2224 | "resolved": "https://r.cnpmjs.org/miller-rabin/download/miller-rabin-4.0.1.tgz", 2225 | "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", 2226 | "dev": true, 2227 | "requires": { 2228 | "bn.js": "^4.0.0", 2229 | "brorand": "^1.0.1" 2230 | }, 2231 | "dependencies": { 2232 | "bn.js": { 2233 | "version": "4.11.9", 2234 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 2235 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 2236 | "dev": true 2237 | } 2238 | } 2239 | }, 2240 | "minimalistic-assert": { 2241 | "version": "1.0.1", 2242 | "resolved": "https://r.cnpmjs.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", 2243 | "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", 2244 | "dev": true 2245 | }, 2246 | "minimalistic-crypto-utils": { 2247 | "version": "1.0.1", 2248 | "resolved": "https://r.cnpmjs.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", 2249 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2250 | "dev": true 2251 | }, 2252 | "minimatch": { 2253 | "version": "3.0.4", 2254 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2255 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2256 | "requires": { 2257 | "brace-expansion": "^1.1.7" 2258 | } 2259 | }, 2260 | "minimist": { 2261 | "version": "1.2.5", 2262 | "resolved": "https://r.cnpmjs.org/minimist/download/minimist-1.2.5.tgz", 2263 | "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", 2264 | "dev": true 2265 | }, 2266 | "mississippi": { 2267 | "version": "3.0.0", 2268 | "resolved": "https://r.cnpmjs.org/mississippi/download/mississippi-3.0.0.tgz", 2269 | "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", 2270 | "dev": true, 2271 | "requires": { 2272 | "concat-stream": "^1.5.0", 2273 | "duplexify": "^3.4.2", 2274 | "end-of-stream": "^1.1.0", 2275 | "flush-write-stream": "^1.0.0", 2276 | "from2": "^2.1.0", 2277 | "parallel-transform": "^1.1.0", 2278 | "pump": "^3.0.0", 2279 | "pumpify": "^1.3.3", 2280 | "stream-each": "^1.1.0", 2281 | "through2": "^2.0.0" 2282 | }, 2283 | "dependencies": { 2284 | "pump": { 2285 | "version": "3.0.0", 2286 | "resolved": "https://r.cnpmjs.org/pump/download/pump-3.0.0.tgz", 2287 | "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", 2288 | "dev": true, 2289 | "requires": { 2290 | "end-of-stream": "^1.1.0", 2291 | "once": "^1.3.1" 2292 | } 2293 | } 2294 | } 2295 | }, 2296 | "mixin-deep": { 2297 | "version": "1.3.2", 2298 | "resolved": "https://r.cnpmjs.org/mixin-deep/download/mixin-deep-1.3.2.tgz", 2299 | "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", 2300 | "dev": true, 2301 | "requires": { 2302 | "for-in": "^1.0.2", 2303 | "is-extendable": "^1.0.1" 2304 | }, 2305 | "dependencies": { 2306 | "is-extendable": { 2307 | "version": "1.0.1", 2308 | "resolved": "https://r.cnpmjs.org/is-extendable/download/is-extendable-1.0.1.tgz", 2309 | "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", 2310 | "dev": true, 2311 | "requires": { 2312 | "is-plain-object": "^2.0.4" 2313 | } 2314 | } 2315 | } 2316 | }, 2317 | "mkdirp": { 2318 | "version": "0.5.5", 2319 | "resolved": "https://r.cnpmjs.org/mkdirp/download/mkdirp-0.5.5.tgz", 2320 | "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", 2321 | "dev": true, 2322 | "requires": { 2323 | "minimist": "^1.2.5" 2324 | } 2325 | }, 2326 | "move-concurrently": { 2327 | "version": "1.0.1", 2328 | "resolved": "https://r.cnpmjs.org/move-concurrently/download/move-concurrently-1.0.1.tgz", 2329 | "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", 2330 | "dev": true, 2331 | "requires": { 2332 | "aproba": "^1.1.1", 2333 | "copy-concurrently": "^1.0.0", 2334 | "fs-write-stream-atomic": "^1.0.8", 2335 | "mkdirp": "^0.5.1", 2336 | "rimraf": "^2.5.4", 2337 | "run-queue": "^1.0.3" 2338 | } 2339 | }, 2340 | "ms": { 2341 | "version": "2.0.0", 2342 | "resolved": "https://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", 2343 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2344 | "dev": true 2345 | }, 2346 | "nan": { 2347 | "version": "2.14.1", 2348 | "resolved": "https://r.cnpmjs.org/nan/download/nan-2.14.1.tgz", 2349 | "integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE=", 2350 | "dev": true, 2351 | "optional": true 2352 | }, 2353 | "nanomatch": { 2354 | "version": "1.2.13", 2355 | "resolved": "https://r.cnpmjs.org/nanomatch/download/nanomatch-1.2.13.tgz", 2356 | "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", 2357 | "dev": true, 2358 | "requires": { 2359 | "arr-diff": "^4.0.0", 2360 | "array-unique": "^0.3.2", 2361 | "define-property": "^2.0.2", 2362 | "extend-shallow": "^3.0.2", 2363 | "fragment-cache": "^0.2.1", 2364 | "is-windows": "^1.0.2", 2365 | "kind-of": "^6.0.2", 2366 | "object.pick": "^1.3.0", 2367 | "regex-not": "^1.0.0", 2368 | "snapdragon": "^0.8.1", 2369 | "to-regex": "^3.0.1" 2370 | } 2371 | }, 2372 | "neo-async": { 2373 | "version": "2.6.2", 2374 | "resolved": "https://r.cnpmjs.org/neo-async/download/neo-async-2.6.2.tgz", 2375 | "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", 2376 | "dev": true 2377 | }, 2378 | "nice-try": { 2379 | "version": "1.0.5", 2380 | "resolved": "https://r.cnpmjs.org/nice-try/download/nice-try-1.0.5.tgz", 2381 | "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", 2382 | "dev": true 2383 | }, 2384 | "node-libs-browser": { 2385 | "version": "2.2.1", 2386 | "resolved": "https://r.cnpmjs.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", 2387 | "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", 2388 | "dev": true, 2389 | "requires": { 2390 | "assert": "^1.1.1", 2391 | "browserify-zlib": "^0.2.0", 2392 | "buffer": "^4.3.0", 2393 | "console-browserify": "^1.1.0", 2394 | "constants-browserify": "^1.0.0", 2395 | "crypto-browserify": "^3.11.0", 2396 | "domain-browser": "^1.1.1", 2397 | "events": "^3.0.0", 2398 | "https-browserify": "^1.0.0", 2399 | "os-browserify": "^0.3.0", 2400 | "path-browserify": "0.0.1", 2401 | "process": "^0.11.10", 2402 | "punycode": "^1.2.4", 2403 | "querystring-es3": "^0.2.0", 2404 | "readable-stream": "^2.3.3", 2405 | "stream-browserify": "^2.0.1", 2406 | "stream-http": "^2.7.2", 2407 | "string_decoder": "^1.0.0", 2408 | "timers-browserify": "^2.0.4", 2409 | "tty-browserify": "0.0.0", 2410 | "url": "^0.11.0", 2411 | "util": "^0.11.0", 2412 | "vm-browserify": "^1.0.1" 2413 | }, 2414 | "dependencies": { 2415 | "punycode": { 2416 | "version": "1.4.1", 2417 | "resolved": "https://r.cnpmjs.org/punycode/download/punycode-1.4.1.tgz", 2418 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 2419 | "dev": true 2420 | } 2421 | } 2422 | }, 2423 | "normalize-path": { 2424 | "version": "2.1.1", 2425 | "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-2.1.1.tgz", 2426 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2427 | "requires": { 2428 | "remove-trailing-separator": "^1.0.1" 2429 | } 2430 | }, 2431 | "now-and-later": { 2432 | "version": "2.0.1", 2433 | "resolved": "https://r.cnpmjs.org/now-and-later/download/now-and-later-2.0.1.tgz", 2434 | "integrity": "sha1-jlechoV2SnzALLaAOA6U9DzLH3w=", 2435 | "requires": { 2436 | "once": "^1.3.2" 2437 | } 2438 | }, 2439 | "object-assign": { 2440 | "version": "4.1.1", 2441 | "resolved": "https://r.cnpmjs.org/object-assign/download/object-assign-4.1.1.tgz", 2442 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2443 | "dev": true 2444 | }, 2445 | "object-copy": { 2446 | "version": "0.1.0", 2447 | "resolved": "https://r.cnpmjs.org/object-copy/download/object-copy-0.1.0.tgz", 2448 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 2449 | "dev": true, 2450 | "requires": { 2451 | "copy-descriptor": "^0.1.0", 2452 | "define-property": "^0.2.5", 2453 | "kind-of": "^3.0.3" 2454 | }, 2455 | "dependencies": { 2456 | "define-property": { 2457 | "version": "0.2.5", 2458 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", 2459 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2460 | "dev": true, 2461 | "requires": { 2462 | "is-descriptor": "^0.1.0" 2463 | } 2464 | }, 2465 | "kind-of": { 2466 | "version": "3.2.2", 2467 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 2468 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2469 | "dev": true, 2470 | "requires": { 2471 | "is-buffer": "^1.1.5" 2472 | } 2473 | } 2474 | } 2475 | }, 2476 | "object-keys": { 2477 | "version": "1.1.1", 2478 | "resolved": "https://r.cnpmjs.org/object-keys/download/object-keys-1.1.1.tgz", 2479 | "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" 2480 | }, 2481 | "object-visit": { 2482 | "version": "1.0.1", 2483 | "resolved": "https://r.cnpmjs.org/object-visit/download/object-visit-1.0.1.tgz", 2484 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 2485 | "dev": true, 2486 | "requires": { 2487 | "isobject": "^3.0.0" 2488 | } 2489 | }, 2490 | "object.assign": { 2491 | "version": "4.1.0", 2492 | "resolved": "https://r.cnpmjs.org/object.assign/download/object.assign-4.1.0.tgz", 2493 | "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", 2494 | "requires": { 2495 | "define-properties": "^1.1.2", 2496 | "function-bind": "^1.1.1", 2497 | "has-symbols": "^1.0.0", 2498 | "object-keys": "^1.0.11" 2499 | } 2500 | }, 2501 | "object.pick": { 2502 | "version": "1.3.0", 2503 | "resolved": "https://r.cnpmjs.org/object.pick/download/object.pick-1.3.0.tgz", 2504 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 2505 | "dev": true, 2506 | "requires": { 2507 | "isobject": "^3.0.1" 2508 | } 2509 | }, 2510 | "once": { 2511 | "version": "1.4.0", 2512 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2513 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2514 | "requires": { 2515 | "wrappy": "1" 2516 | } 2517 | }, 2518 | "ordered-read-streams": { 2519 | "version": "1.0.1", 2520 | "resolved": "https://r.cnpmjs.org/ordered-read-streams/download/ordered-read-streams-1.0.1.tgz", 2521 | "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", 2522 | "requires": { 2523 | "readable-stream": "^2.0.1" 2524 | } 2525 | }, 2526 | "os-browserify": { 2527 | "version": "0.3.0", 2528 | "resolved": "https://r.cnpmjs.org/os-browserify/download/os-browserify-0.3.0.tgz", 2529 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 2530 | "dev": true 2531 | }, 2532 | "p-limit": { 2533 | "version": "2.3.0", 2534 | "resolved": "https://r.cnpmjs.org/p-limit/download/p-limit-2.3.0.tgz", 2535 | "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", 2536 | "dev": true, 2537 | "requires": { 2538 | "p-try": "^2.0.0" 2539 | } 2540 | }, 2541 | "p-locate": { 2542 | "version": "3.0.0", 2543 | "resolved": "https://r.cnpmjs.org/p-locate/download/p-locate-3.0.0.tgz", 2544 | "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", 2545 | "dev": true, 2546 | "requires": { 2547 | "p-limit": "^2.0.0" 2548 | } 2549 | }, 2550 | "p-try": { 2551 | "version": "2.2.0", 2552 | "resolved": "https://r.cnpmjs.org/p-try/download/p-try-2.2.0.tgz", 2553 | "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", 2554 | "dev": true 2555 | }, 2556 | "pako": { 2557 | "version": "1.0.11", 2558 | "resolved": "https://r.cnpmjs.org/pako/download/pako-1.0.11.tgz", 2559 | "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", 2560 | "dev": true 2561 | }, 2562 | "parallel-transform": { 2563 | "version": "1.2.0", 2564 | "resolved": "https://r.cnpmjs.org/parallel-transform/download/parallel-transform-1.2.0.tgz", 2565 | "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", 2566 | "dev": true, 2567 | "requires": { 2568 | "cyclist": "^1.0.1", 2569 | "inherits": "^2.0.3", 2570 | "readable-stream": "^2.1.5" 2571 | } 2572 | }, 2573 | "parse-asn1": { 2574 | "version": "5.1.6", 2575 | "resolved": "https://r.cnpmjs.org/parse-asn1/download/parse-asn1-5.1.6.tgz", 2576 | "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=", 2577 | "dev": true, 2578 | "requires": { 2579 | "asn1.js": "^5.2.0", 2580 | "browserify-aes": "^1.0.0", 2581 | "evp_bytestokey": "^1.0.0", 2582 | "pbkdf2": "^3.0.3", 2583 | "safe-buffer": "^5.1.1" 2584 | } 2585 | }, 2586 | "parse-passwd": { 2587 | "version": "1.0.0", 2588 | "resolved": "https://r.cnpmjs.org/parse-passwd/download/parse-passwd-1.0.0.tgz", 2589 | "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", 2590 | "dev": true 2591 | }, 2592 | "pascalcase": { 2593 | "version": "0.1.1", 2594 | "resolved": "https://r.cnpmjs.org/pascalcase/download/pascalcase-0.1.1.tgz", 2595 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 2596 | "dev": true 2597 | }, 2598 | "path-browserify": { 2599 | "version": "0.0.1", 2600 | "resolved": "https://r.cnpmjs.org/path-browserify/download/path-browserify-0.0.1.tgz", 2601 | "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", 2602 | "dev": true 2603 | }, 2604 | "path-dirname": { 2605 | "version": "1.0.2", 2606 | "resolved": "https://r.cnpmjs.org/path-dirname/download/path-dirname-1.0.2.tgz", 2607 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" 2608 | }, 2609 | "path-exists": { 2610 | "version": "3.0.0", 2611 | "resolved": "https://r.cnpmjs.org/path-exists/download/path-exists-3.0.0.tgz", 2612 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 2613 | "dev": true 2614 | }, 2615 | "path-is-absolute": { 2616 | "version": "1.0.1", 2617 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2618 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 2619 | }, 2620 | "path-key": { 2621 | "version": "2.0.1", 2622 | "resolved": "https://r.cnpmjs.org/path-key/download/path-key-2.0.1.tgz", 2623 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 2624 | "dev": true 2625 | }, 2626 | "pbkdf2": { 2627 | "version": "3.1.1", 2628 | "resolved": "https://r.cnpmjs.org/pbkdf2/download/pbkdf2-3.1.1.tgz", 2629 | "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", 2630 | "dev": true, 2631 | "requires": { 2632 | "create-hash": "^1.1.2", 2633 | "create-hmac": "^1.1.4", 2634 | "ripemd160": "^2.0.1", 2635 | "safe-buffer": "^5.0.1", 2636 | "sha.js": "^2.4.8" 2637 | } 2638 | }, 2639 | "picomatch": { 2640 | "version": "2.2.2", 2641 | "resolved": "https://r.cnpmjs.org/picomatch/download/picomatch-2.2.2.tgz", 2642 | "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", 2643 | "dev": true, 2644 | "optional": true 2645 | }, 2646 | "pify": { 2647 | "version": "4.0.1", 2648 | "resolved": "https://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", 2649 | "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", 2650 | "dev": true 2651 | }, 2652 | "pkg-dir": { 2653 | "version": "3.0.0", 2654 | "resolved": "https://r.cnpmjs.org/pkg-dir/download/pkg-dir-3.0.0.tgz", 2655 | "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", 2656 | "dev": true, 2657 | "requires": { 2658 | "find-up": "^3.0.0" 2659 | } 2660 | }, 2661 | "posix-character-classes": { 2662 | "version": "0.1.1", 2663 | "resolved": "https://r.cnpmjs.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", 2664 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 2665 | "dev": true 2666 | }, 2667 | "process": { 2668 | "version": "0.11.10", 2669 | "resolved": "https://r.cnpmjs.org/process/download/process-0.11.10.tgz", 2670 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 2671 | "dev": true 2672 | }, 2673 | "process-nextick-args": { 2674 | "version": "2.0.1", 2675 | "resolved": "https://r.cnpmjs.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", 2676 | "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" 2677 | }, 2678 | "promise-inflight": { 2679 | "version": "1.0.1", 2680 | "resolved": "https://r.cnpmjs.org/promise-inflight/download/promise-inflight-1.0.1.tgz", 2681 | "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", 2682 | "dev": true 2683 | }, 2684 | "prr": { 2685 | "version": "1.0.1", 2686 | "resolved": "https://r.cnpmjs.org/prr/download/prr-1.0.1.tgz", 2687 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 2688 | "dev": true 2689 | }, 2690 | "public-encrypt": { 2691 | "version": "4.0.3", 2692 | "resolved": "https://r.cnpmjs.org/public-encrypt/download/public-encrypt-4.0.3.tgz", 2693 | "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", 2694 | "dev": true, 2695 | "requires": { 2696 | "bn.js": "^4.1.0", 2697 | "browserify-rsa": "^4.0.0", 2698 | "create-hash": "^1.1.0", 2699 | "parse-asn1": "^5.0.0", 2700 | "randombytes": "^2.0.1", 2701 | "safe-buffer": "^5.1.2" 2702 | }, 2703 | "dependencies": { 2704 | "bn.js": { 2705 | "version": "4.11.9", 2706 | "resolved": "https://r.cnpmjs.org/bn.js/download/bn.js-4.11.9.tgz", 2707 | "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", 2708 | "dev": true 2709 | } 2710 | } 2711 | }, 2712 | "pump": { 2713 | "version": "2.0.1", 2714 | "resolved": "https://r.cnpmjs.org/pump/download/pump-2.0.1.tgz", 2715 | "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", 2716 | "requires": { 2717 | "end-of-stream": "^1.1.0", 2718 | "once": "^1.3.1" 2719 | } 2720 | }, 2721 | "pumpify": { 2722 | "version": "1.5.1", 2723 | "resolved": "https://r.cnpmjs.org/pumpify/download/pumpify-1.5.1.tgz", 2724 | "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", 2725 | "requires": { 2726 | "duplexify": "^3.6.0", 2727 | "inherits": "^2.0.3", 2728 | "pump": "^2.0.0" 2729 | } 2730 | }, 2731 | "punycode": { 2732 | "version": "2.1.1", 2733 | "resolved": "https://r.cnpmjs.org/punycode/download/punycode-2.1.1.tgz", 2734 | "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", 2735 | "dev": true 2736 | }, 2737 | "querystring": { 2738 | "version": "0.2.0", 2739 | "resolved": "https://r.cnpmjs.org/querystring/download/querystring-0.2.0.tgz", 2740 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 2741 | "dev": true 2742 | }, 2743 | "querystring-es3": { 2744 | "version": "0.2.1", 2745 | "resolved": "https://r.cnpmjs.org/querystring-es3/download/querystring-es3-0.2.1.tgz", 2746 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 2747 | "dev": true 2748 | }, 2749 | "randombytes": { 2750 | "version": "2.1.0", 2751 | "resolved": "https://r.cnpmjs.org/randombytes/download/randombytes-2.1.0.tgz", 2752 | "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", 2753 | "dev": true, 2754 | "requires": { 2755 | "safe-buffer": "^5.1.0" 2756 | } 2757 | }, 2758 | "randomfill": { 2759 | "version": "1.0.4", 2760 | "resolved": "https://r.cnpmjs.org/randomfill/download/randomfill-1.0.4.tgz", 2761 | "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", 2762 | "dev": true, 2763 | "requires": { 2764 | "randombytes": "^2.0.5", 2765 | "safe-buffer": "^5.1.0" 2766 | } 2767 | }, 2768 | "readable-stream": { 2769 | "version": "2.3.7", 2770 | "resolved": "https://r.cnpmjs.org/readable-stream/download/readable-stream-2.3.7.tgz", 2771 | "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", 2772 | "requires": { 2773 | "core-util-is": "~1.0.0", 2774 | "inherits": "~2.0.3", 2775 | "isarray": "~1.0.0", 2776 | "process-nextick-args": "~2.0.0", 2777 | "safe-buffer": "~5.1.1", 2778 | "string_decoder": "~1.1.1", 2779 | "util-deprecate": "~1.0.1" 2780 | } 2781 | }, 2782 | "readdirp": { 2783 | "version": "3.4.0", 2784 | "resolved": "https://r.cnpmjs.org/readdirp/download/readdirp-3.4.0.tgz", 2785 | "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=", 2786 | "dev": true, 2787 | "optional": true, 2788 | "requires": { 2789 | "picomatch": "^2.2.1" 2790 | } 2791 | }, 2792 | "regex-not": { 2793 | "version": "1.0.2", 2794 | "resolved": "https://r.cnpmjs.org/regex-not/download/regex-not-1.0.2.tgz", 2795 | "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", 2796 | "dev": true, 2797 | "requires": { 2798 | "extend-shallow": "^3.0.2", 2799 | "safe-regex": "^1.1.0" 2800 | } 2801 | }, 2802 | "remove-bom-buffer": { 2803 | "version": "3.0.0", 2804 | "resolved": "https://r.cnpmjs.org/remove-bom-buffer/download/remove-bom-buffer-3.0.0.tgz", 2805 | "integrity": "sha1-wr8eN3Ug0yT2I4kuM8EMrCwlK1M=", 2806 | "requires": { 2807 | "is-buffer": "^1.1.5", 2808 | "is-utf8": "^0.2.1" 2809 | } 2810 | }, 2811 | "remove-bom-stream": { 2812 | "version": "1.2.0", 2813 | "resolved": "https://r.cnpmjs.org/remove-bom-stream/download/remove-bom-stream-1.2.0.tgz", 2814 | "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", 2815 | "requires": { 2816 | "remove-bom-buffer": "^3.0.0", 2817 | "safe-buffer": "^5.1.0", 2818 | "through2": "^2.0.3" 2819 | } 2820 | }, 2821 | "remove-trailing-separator": { 2822 | "version": "1.1.0", 2823 | "resolved": "https://r.cnpmjs.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", 2824 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" 2825 | }, 2826 | "repeat-element": { 2827 | "version": "1.1.3", 2828 | "resolved": "https://r.cnpmjs.org/repeat-element/download/repeat-element-1.1.3.tgz", 2829 | "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", 2830 | "dev": true 2831 | }, 2832 | "repeat-string": { 2833 | "version": "1.6.1", 2834 | "resolved": "https://r.cnpmjs.org/repeat-string/download/repeat-string-1.6.1.tgz", 2835 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2836 | "dev": true 2837 | }, 2838 | "replace-ext": { 2839 | "version": "1.0.1", 2840 | "resolved": "https://r.cnpmjs.org/replace-ext/download/replace-ext-1.0.1.tgz", 2841 | "integrity": "sha1-LW2ZbQShWFXZZ0Q2Md1fd4JbAWo=" 2842 | }, 2843 | "require-directory": { 2844 | "version": "2.1.1", 2845 | "resolved": "https://r.cnpmjs.org/require-directory/download/require-directory-2.1.1.tgz", 2846 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2847 | "dev": true 2848 | }, 2849 | "require-main-filename": { 2850 | "version": "2.0.0", 2851 | "resolved": "https://r.cnpmjs.org/require-main-filename/download/require-main-filename-2.0.0.tgz", 2852 | "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", 2853 | "dev": true 2854 | }, 2855 | "resolve-cwd": { 2856 | "version": "2.0.0", 2857 | "resolved": "https://r.cnpmjs.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", 2858 | "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", 2859 | "dev": true, 2860 | "requires": { 2861 | "resolve-from": "^3.0.0" 2862 | } 2863 | }, 2864 | "resolve-dir": { 2865 | "version": "1.0.1", 2866 | "resolved": "https://r.cnpmjs.org/resolve-dir/download/resolve-dir-1.0.1.tgz", 2867 | "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", 2868 | "dev": true, 2869 | "requires": { 2870 | "expand-tilde": "^2.0.0", 2871 | "global-modules": "^1.0.0" 2872 | }, 2873 | "dependencies": { 2874 | "global-modules": { 2875 | "version": "1.0.0", 2876 | "resolved": "https://r.cnpmjs.org/global-modules/download/global-modules-1.0.0.tgz", 2877 | "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", 2878 | "dev": true, 2879 | "requires": { 2880 | "global-prefix": "^1.0.1", 2881 | "is-windows": "^1.0.1", 2882 | "resolve-dir": "^1.0.0" 2883 | } 2884 | } 2885 | } 2886 | }, 2887 | "resolve-from": { 2888 | "version": "3.0.0", 2889 | "resolved": "https://r.cnpmjs.org/resolve-from/download/resolve-from-3.0.0.tgz", 2890 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", 2891 | "dev": true 2892 | }, 2893 | "resolve-options": { 2894 | "version": "1.1.0", 2895 | "resolved": "https://r.cnpmjs.org/resolve-options/download/resolve-options-1.1.0.tgz", 2896 | "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", 2897 | "requires": { 2898 | "value-or-function": "^3.0.0" 2899 | } 2900 | }, 2901 | "resolve-url": { 2902 | "version": "0.2.1", 2903 | "resolved": "https://r.cnpmjs.org/resolve-url/download/resolve-url-0.2.1.tgz", 2904 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 2905 | "dev": true 2906 | }, 2907 | "ret": { 2908 | "version": "0.1.15", 2909 | "resolved": "https://r.cnpmjs.org/ret/download/ret-0.1.15.tgz", 2910 | "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", 2911 | "dev": true 2912 | }, 2913 | "rimraf": { 2914 | "version": "2.7.1", 2915 | "resolved": "https://r.cnpmjs.org/rimraf/download/rimraf-2.7.1.tgz", 2916 | "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", 2917 | "dev": true, 2918 | "requires": { 2919 | "glob": "^7.1.3" 2920 | } 2921 | }, 2922 | "ripemd160": { 2923 | "version": "2.0.2", 2924 | "resolved": "https://r.cnpmjs.org/ripemd160/download/ripemd160-2.0.2.tgz", 2925 | "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", 2926 | "dev": true, 2927 | "requires": { 2928 | "hash-base": "^3.0.0", 2929 | "inherits": "^2.0.1" 2930 | } 2931 | }, 2932 | "run-queue": { 2933 | "version": "1.0.3", 2934 | "resolved": "https://r.cnpmjs.org/run-queue/download/run-queue-1.0.3.tgz", 2935 | "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", 2936 | "dev": true, 2937 | "requires": { 2938 | "aproba": "^1.1.1" 2939 | } 2940 | }, 2941 | "safe-buffer": { 2942 | "version": "5.1.2", 2943 | "resolved": "https://r.cnpmjs.org/safe-buffer/download/safe-buffer-5.1.2.tgz", 2944 | "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" 2945 | }, 2946 | "safe-regex": { 2947 | "version": "1.1.0", 2948 | "resolved": "https://r.cnpmjs.org/safe-regex/download/safe-regex-1.1.0.tgz", 2949 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 2950 | "dev": true, 2951 | "requires": { 2952 | "ret": "~0.1.10" 2953 | } 2954 | }, 2955 | "safer-buffer": { 2956 | "version": "2.1.2", 2957 | "resolved": "https://r.cnpmjs.org/safer-buffer/download/safer-buffer-2.1.2.tgz", 2958 | "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", 2959 | "dev": true 2960 | }, 2961 | "schema-utils": { 2962 | "version": "1.0.0", 2963 | "resolved": "https://r.cnpmjs.org/schema-utils/download/schema-utils-1.0.0.tgz", 2964 | "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", 2965 | "dev": true, 2966 | "requires": { 2967 | "ajv": "^6.1.0", 2968 | "ajv-errors": "^1.0.0", 2969 | "ajv-keywords": "^3.1.0" 2970 | } 2971 | }, 2972 | "semver": { 2973 | "version": "5.7.1", 2974 | "resolved": "https://r.cnpmjs.org/semver/download/semver-5.7.1.tgz", 2975 | "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", 2976 | "dev": true 2977 | }, 2978 | "serialize-javascript": { 2979 | "version": "4.0.0", 2980 | "resolved": "https://r.cnpmjs.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz", 2981 | "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=", 2982 | "dev": true, 2983 | "requires": { 2984 | "randombytes": "^2.1.0" 2985 | } 2986 | }, 2987 | "set-blocking": { 2988 | "version": "2.0.0", 2989 | "resolved": "https://r.cnpmjs.org/set-blocking/download/set-blocking-2.0.0.tgz", 2990 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2991 | "dev": true 2992 | }, 2993 | "set-value": { 2994 | "version": "2.0.1", 2995 | "resolved": "https://r.cnpmjs.org/set-value/download/set-value-2.0.1.tgz", 2996 | "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", 2997 | "dev": true, 2998 | "requires": { 2999 | "extend-shallow": "^2.0.1", 3000 | "is-extendable": "^0.1.1", 3001 | "is-plain-object": "^2.0.3", 3002 | "split-string": "^3.0.1" 3003 | }, 3004 | "dependencies": { 3005 | "extend-shallow": { 3006 | "version": "2.0.1", 3007 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 3008 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3009 | "dev": true, 3010 | "requires": { 3011 | "is-extendable": "^0.1.0" 3012 | } 3013 | } 3014 | } 3015 | }, 3016 | "setimmediate": { 3017 | "version": "1.0.5", 3018 | "resolved": "https://r.cnpmjs.org/setimmediate/download/setimmediate-1.0.5.tgz", 3019 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 3020 | "dev": true 3021 | }, 3022 | "sha.js": { 3023 | "version": "2.4.11", 3024 | "resolved": "https://r.cnpmjs.org/sha.js/download/sha.js-2.4.11.tgz", 3025 | "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", 3026 | "dev": true, 3027 | "requires": { 3028 | "inherits": "^2.0.1", 3029 | "safe-buffer": "^5.0.1" 3030 | } 3031 | }, 3032 | "shebang-command": { 3033 | "version": "1.2.0", 3034 | "resolved": "https://r.cnpmjs.org/shebang-command/download/shebang-command-1.2.0.tgz", 3035 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 3036 | "dev": true, 3037 | "requires": { 3038 | "shebang-regex": "^1.0.0" 3039 | } 3040 | }, 3041 | "shebang-regex": { 3042 | "version": "1.0.0", 3043 | "resolved": "https://r.cnpmjs.org/shebang-regex/download/shebang-regex-1.0.0.tgz", 3044 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 3045 | "dev": true 3046 | }, 3047 | "snapdragon": { 3048 | "version": "0.8.2", 3049 | "resolved": "https://r.cnpmjs.org/snapdragon/download/snapdragon-0.8.2.tgz", 3050 | "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", 3051 | "dev": true, 3052 | "requires": { 3053 | "base": "^0.11.1", 3054 | "debug": "^2.2.0", 3055 | "define-property": "^0.2.5", 3056 | "extend-shallow": "^2.0.1", 3057 | "map-cache": "^0.2.2", 3058 | "source-map": "^0.5.6", 3059 | "source-map-resolve": "^0.5.0", 3060 | "use": "^3.1.0" 3061 | }, 3062 | "dependencies": { 3063 | "define-property": { 3064 | "version": "0.2.5", 3065 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", 3066 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3067 | "dev": true, 3068 | "requires": { 3069 | "is-descriptor": "^0.1.0" 3070 | } 3071 | }, 3072 | "extend-shallow": { 3073 | "version": "2.0.1", 3074 | "resolved": "https://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", 3075 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3076 | "dev": true, 3077 | "requires": { 3078 | "is-extendable": "^0.1.0" 3079 | } 3080 | } 3081 | } 3082 | }, 3083 | "snapdragon-node": { 3084 | "version": "2.1.1", 3085 | "resolved": "https://r.cnpmjs.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", 3086 | "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", 3087 | "dev": true, 3088 | "requires": { 3089 | "define-property": "^1.0.0", 3090 | "isobject": "^3.0.0", 3091 | "snapdragon-util": "^3.0.1" 3092 | }, 3093 | "dependencies": { 3094 | "define-property": { 3095 | "version": "1.0.0", 3096 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-1.0.0.tgz", 3097 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 3098 | "dev": true, 3099 | "requires": { 3100 | "is-descriptor": "^1.0.0" 3101 | } 3102 | }, 3103 | "is-accessor-descriptor": { 3104 | "version": "1.0.0", 3105 | "resolved": "https://r.cnpmjs.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", 3106 | "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", 3107 | "dev": true, 3108 | "requires": { 3109 | "kind-of": "^6.0.0" 3110 | } 3111 | }, 3112 | "is-data-descriptor": { 3113 | "version": "1.0.0", 3114 | "resolved": "https://r.cnpmjs.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", 3115 | "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", 3116 | "dev": true, 3117 | "requires": { 3118 | "kind-of": "^6.0.0" 3119 | } 3120 | }, 3121 | "is-descriptor": { 3122 | "version": "1.0.2", 3123 | "resolved": "https://r.cnpmjs.org/is-descriptor/download/is-descriptor-1.0.2.tgz", 3124 | "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", 3125 | "dev": true, 3126 | "requires": { 3127 | "is-accessor-descriptor": "^1.0.0", 3128 | "is-data-descriptor": "^1.0.0", 3129 | "kind-of": "^6.0.2" 3130 | } 3131 | } 3132 | } 3133 | }, 3134 | "snapdragon-util": { 3135 | "version": "3.0.1", 3136 | "resolved": "https://r.cnpmjs.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", 3137 | "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", 3138 | "dev": true, 3139 | "requires": { 3140 | "kind-of": "^3.2.0" 3141 | }, 3142 | "dependencies": { 3143 | "kind-of": { 3144 | "version": "3.2.2", 3145 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 3146 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3147 | "dev": true, 3148 | "requires": { 3149 | "is-buffer": "^1.1.5" 3150 | } 3151 | } 3152 | } 3153 | }, 3154 | "source-list-map": { 3155 | "version": "2.0.1", 3156 | "resolved": "https://r.cnpmjs.org/source-list-map/download/source-list-map-2.0.1.tgz", 3157 | "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", 3158 | "dev": true 3159 | }, 3160 | "source-map": { 3161 | "version": "0.5.7", 3162 | "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.5.7.tgz", 3163 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3164 | "dev": true 3165 | }, 3166 | "source-map-resolve": { 3167 | "version": "0.5.3", 3168 | "resolved": "https://r.cnpmjs.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz", 3169 | "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", 3170 | "dev": true, 3171 | "requires": { 3172 | "atob": "^2.1.2", 3173 | "decode-uri-component": "^0.2.0", 3174 | "resolve-url": "^0.2.1", 3175 | "source-map-url": "^0.4.0", 3176 | "urix": "^0.1.0" 3177 | } 3178 | }, 3179 | "source-map-support": { 3180 | "version": "0.5.19", 3181 | "resolved": "https://r.cnpmjs.org/source-map-support/download/source-map-support-0.5.19.tgz", 3182 | "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", 3183 | "dev": true, 3184 | "requires": { 3185 | "buffer-from": "^1.0.0", 3186 | "source-map": "^0.6.0" 3187 | }, 3188 | "dependencies": { 3189 | "source-map": { 3190 | "version": "0.6.1", 3191 | "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", 3192 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 3193 | "dev": true 3194 | } 3195 | } 3196 | }, 3197 | "source-map-url": { 3198 | "version": "0.4.0", 3199 | "resolved": "https://r.cnpmjs.org/source-map-url/download/source-map-url-0.4.0.tgz", 3200 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 3201 | "dev": true 3202 | }, 3203 | "split-string": { 3204 | "version": "3.1.0", 3205 | "resolved": "https://r.cnpmjs.org/split-string/download/split-string-3.1.0.tgz", 3206 | "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", 3207 | "dev": true, 3208 | "requires": { 3209 | "extend-shallow": "^3.0.0" 3210 | } 3211 | }, 3212 | "ssri": { 3213 | "version": "6.0.1", 3214 | "resolved": "https://r.cnpmjs.org/ssri/download/ssri-6.0.1.tgz", 3215 | "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", 3216 | "dev": true, 3217 | "requires": { 3218 | "figgy-pudding": "^3.5.1" 3219 | } 3220 | }, 3221 | "static-extend": { 3222 | "version": "0.1.2", 3223 | "resolved": "https://r.cnpmjs.org/static-extend/download/static-extend-0.1.2.tgz", 3224 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 3225 | "dev": true, 3226 | "requires": { 3227 | "define-property": "^0.2.5", 3228 | "object-copy": "^0.1.0" 3229 | }, 3230 | "dependencies": { 3231 | "define-property": { 3232 | "version": "0.2.5", 3233 | "resolved": "https://r.cnpmjs.org/define-property/download/define-property-0.2.5.tgz", 3234 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 3235 | "dev": true, 3236 | "requires": { 3237 | "is-descriptor": "^0.1.0" 3238 | } 3239 | } 3240 | } 3241 | }, 3242 | "stream-browserify": { 3243 | "version": "2.0.2", 3244 | "resolved": "https://r.cnpmjs.org/stream-browserify/download/stream-browserify-2.0.2.tgz", 3245 | "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", 3246 | "dev": true, 3247 | "requires": { 3248 | "inherits": "~2.0.1", 3249 | "readable-stream": "^2.0.2" 3250 | } 3251 | }, 3252 | "stream-each": { 3253 | "version": "1.2.3", 3254 | "resolved": "https://r.cnpmjs.org/stream-each/download/stream-each-1.2.3.tgz", 3255 | "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", 3256 | "dev": true, 3257 | "requires": { 3258 | "end-of-stream": "^1.1.0", 3259 | "stream-shift": "^1.0.0" 3260 | } 3261 | }, 3262 | "stream-http": { 3263 | "version": "2.8.3", 3264 | "resolved": "https://r.cnpmjs.org/stream-http/download/stream-http-2.8.3.tgz", 3265 | "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", 3266 | "dev": true, 3267 | "requires": { 3268 | "builtin-status-codes": "^3.0.0", 3269 | "inherits": "^2.0.1", 3270 | "readable-stream": "^2.3.6", 3271 | "to-arraybuffer": "^1.0.0", 3272 | "xtend": "^4.0.0" 3273 | } 3274 | }, 3275 | "stream-shift": { 3276 | "version": "1.0.1", 3277 | "resolved": "https://r.cnpmjs.org/stream-shift/download/stream-shift-1.0.1.tgz", 3278 | "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=" 3279 | }, 3280 | "string-width": { 3281 | "version": "3.1.0", 3282 | "resolved": "https://r.cnpmjs.org/string-width/download/string-width-3.1.0.tgz", 3283 | "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", 3284 | "dev": true, 3285 | "requires": { 3286 | "emoji-regex": "^7.0.1", 3287 | "is-fullwidth-code-point": "^2.0.0", 3288 | "strip-ansi": "^5.1.0" 3289 | } 3290 | }, 3291 | "string_decoder": { 3292 | "version": "1.1.1", 3293 | "resolved": "https://r.cnpmjs.org/string_decoder/download/string_decoder-1.1.1.tgz", 3294 | "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", 3295 | "requires": { 3296 | "safe-buffer": "~5.1.0" 3297 | } 3298 | }, 3299 | "strip-ansi": { 3300 | "version": "5.2.0", 3301 | "resolved": "https://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", 3302 | "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", 3303 | "dev": true, 3304 | "requires": { 3305 | "ansi-regex": "^4.1.0" 3306 | } 3307 | }, 3308 | "supports-color": { 3309 | "version": "6.1.0", 3310 | "resolved": "https://r.cnpmjs.org/supports-color/download/supports-color-6.1.0.tgz", 3311 | "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", 3312 | "dev": true, 3313 | "requires": { 3314 | "has-flag": "^3.0.0" 3315 | } 3316 | }, 3317 | "tapable": { 3318 | "version": "1.1.3", 3319 | "resolved": "https://r.cnpmjs.org/tapable/download/tapable-1.1.3.tgz", 3320 | "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", 3321 | "dev": true 3322 | }, 3323 | "terser": { 3324 | "version": "4.8.0", 3325 | "resolved": "https://r.cnpmjs.org/terser/download/terser-4.8.0.tgz", 3326 | "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", 3327 | "dev": true, 3328 | "requires": { 3329 | "commander": "^2.20.0", 3330 | "source-map": "~0.6.1", 3331 | "source-map-support": "~0.5.12" 3332 | }, 3333 | "dependencies": { 3334 | "source-map": { 3335 | "version": "0.6.1", 3336 | "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", 3337 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 3338 | "dev": true 3339 | } 3340 | } 3341 | }, 3342 | "terser-webpack-plugin": { 3343 | "version": "1.4.5", 3344 | "resolved": "https://r.cnpmjs.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz", 3345 | "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=", 3346 | "dev": true, 3347 | "requires": { 3348 | "cacache": "^12.0.2", 3349 | "find-cache-dir": "^2.1.0", 3350 | "is-wsl": "^1.1.0", 3351 | "schema-utils": "^1.0.0", 3352 | "serialize-javascript": "^4.0.0", 3353 | "source-map": "^0.6.1", 3354 | "terser": "^4.1.2", 3355 | "webpack-sources": "^1.4.0", 3356 | "worker-farm": "^1.7.0" 3357 | }, 3358 | "dependencies": { 3359 | "source-map": { 3360 | "version": "0.6.1", 3361 | "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", 3362 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 3363 | "dev": true 3364 | } 3365 | } 3366 | }, 3367 | "through2": { 3368 | "version": "2.0.5", 3369 | "resolved": "https://r.cnpmjs.org/through2/download/through2-2.0.5.tgz", 3370 | "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", 3371 | "requires": { 3372 | "readable-stream": "~2.3.6", 3373 | "xtend": "~4.0.1" 3374 | } 3375 | }, 3376 | "through2-filter": { 3377 | "version": "3.0.0", 3378 | "resolved": "https://r.cnpmjs.org/through2-filter/download/through2-filter-3.0.0.tgz", 3379 | "integrity": "sha1-cA54bfI2fCyIzYqlvkz5weeDElQ=", 3380 | "requires": { 3381 | "through2": "~2.0.0", 3382 | "xtend": "~4.0.0" 3383 | } 3384 | }, 3385 | "timers-browserify": { 3386 | "version": "2.0.11", 3387 | "resolved": "https://r.cnpmjs.org/timers-browserify/download/timers-browserify-2.0.11.tgz", 3388 | "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", 3389 | "dev": true, 3390 | "requires": { 3391 | "setimmediate": "^1.0.4" 3392 | } 3393 | }, 3394 | "to-absolute-glob": { 3395 | "version": "2.0.2", 3396 | "resolved": "https://r.cnpmjs.org/to-absolute-glob/download/to-absolute-glob-2.0.2.tgz", 3397 | "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", 3398 | "requires": { 3399 | "is-absolute": "^1.0.0", 3400 | "is-negated-glob": "^1.0.0" 3401 | } 3402 | }, 3403 | "to-arraybuffer": { 3404 | "version": "1.0.1", 3405 | "resolved": "https://r.cnpmjs.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", 3406 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 3407 | "dev": true 3408 | }, 3409 | "to-object-path": { 3410 | "version": "0.3.0", 3411 | "resolved": "https://r.cnpmjs.org/to-object-path/download/to-object-path-0.3.0.tgz", 3412 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 3413 | "dev": true, 3414 | "requires": { 3415 | "kind-of": "^3.0.2" 3416 | }, 3417 | "dependencies": { 3418 | "kind-of": { 3419 | "version": "3.2.2", 3420 | "resolved": "https://r.cnpmjs.org/kind-of/download/kind-of-3.2.2.tgz", 3421 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3422 | "dev": true, 3423 | "requires": { 3424 | "is-buffer": "^1.1.5" 3425 | } 3426 | } 3427 | } 3428 | }, 3429 | "to-regex": { 3430 | "version": "3.0.2", 3431 | "resolved": "https://r.cnpmjs.org/to-regex/download/to-regex-3.0.2.tgz", 3432 | "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", 3433 | "dev": true, 3434 | "requires": { 3435 | "define-property": "^2.0.2", 3436 | "extend-shallow": "^3.0.2", 3437 | "regex-not": "^1.0.2", 3438 | "safe-regex": "^1.1.0" 3439 | } 3440 | }, 3441 | "to-regex-range": { 3442 | "version": "2.1.1", 3443 | "resolved": "https://r.cnpmjs.org/to-regex-range/download/to-regex-range-2.1.1.tgz", 3444 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 3445 | "dev": true, 3446 | "requires": { 3447 | "is-number": "^3.0.0", 3448 | "repeat-string": "^1.6.1" 3449 | } 3450 | }, 3451 | "to-through": { 3452 | "version": "2.0.0", 3453 | "resolved": "https://r.cnpmjs.org/to-through/download/to-through-2.0.0.tgz", 3454 | "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", 3455 | "requires": { 3456 | "through2": "^2.0.3" 3457 | } 3458 | }, 3459 | "tslib": { 3460 | "version": "1.13.0", 3461 | "resolved": "https://r.cnpmjs.org/tslib/download/tslib-1.13.0.tgz", 3462 | "integrity": "sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM=", 3463 | "dev": true 3464 | }, 3465 | "tty-browserify": { 3466 | "version": "0.0.0", 3467 | "resolved": "https://r.cnpmjs.org/tty-browserify/download/tty-browserify-0.0.0.tgz", 3468 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 3469 | "dev": true 3470 | }, 3471 | "typedarray": { 3472 | "version": "0.0.6", 3473 | "resolved": "https://r.cnpmjs.org/typedarray/download/typedarray-0.0.6.tgz", 3474 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 3475 | "dev": true 3476 | }, 3477 | "unc-path-regex": { 3478 | "version": "0.1.2", 3479 | "resolved": "https://r.cnpmjs.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz", 3480 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" 3481 | }, 3482 | "union-value": { 3483 | "version": "1.0.1", 3484 | "resolved": "https://r.cnpmjs.org/union-value/download/union-value-1.0.1.tgz", 3485 | "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", 3486 | "dev": true, 3487 | "requires": { 3488 | "arr-union": "^3.1.0", 3489 | "get-value": "^2.0.6", 3490 | "is-extendable": "^0.1.1", 3491 | "set-value": "^2.0.1" 3492 | } 3493 | }, 3494 | "unique-filename": { 3495 | "version": "1.1.1", 3496 | "resolved": "https://r.cnpmjs.org/unique-filename/download/unique-filename-1.1.1.tgz", 3497 | "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", 3498 | "dev": true, 3499 | "requires": { 3500 | "unique-slug": "^2.0.0" 3501 | } 3502 | }, 3503 | "unique-slug": { 3504 | "version": "2.0.2", 3505 | "resolved": "https://r.cnpmjs.org/unique-slug/download/unique-slug-2.0.2.tgz", 3506 | "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", 3507 | "dev": true, 3508 | "requires": { 3509 | "imurmurhash": "^0.1.4" 3510 | } 3511 | }, 3512 | "unique-stream": { 3513 | "version": "2.3.1", 3514 | "resolved": "https://r.cnpmjs.org/unique-stream/download/unique-stream-2.3.1.tgz", 3515 | "integrity": "sha1-xl0RDppK35psWUiygFPZqNBMvqw=", 3516 | "requires": { 3517 | "json-stable-stringify-without-jsonify": "^1.0.1", 3518 | "through2-filter": "^3.0.0" 3519 | } 3520 | }, 3521 | "unset-value": { 3522 | "version": "1.0.0", 3523 | "resolved": "https://r.cnpmjs.org/unset-value/download/unset-value-1.0.0.tgz", 3524 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 3525 | "dev": true, 3526 | "requires": { 3527 | "has-value": "^0.3.1", 3528 | "isobject": "^3.0.0" 3529 | }, 3530 | "dependencies": { 3531 | "has-value": { 3532 | "version": "0.3.1", 3533 | "resolved": "https://r.cnpmjs.org/has-value/download/has-value-0.3.1.tgz", 3534 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 3535 | "dev": true, 3536 | "requires": { 3537 | "get-value": "^2.0.3", 3538 | "has-values": "^0.1.4", 3539 | "isobject": "^2.0.0" 3540 | }, 3541 | "dependencies": { 3542 | "isobject": { 3543 | "version": "2.1.0", 3544 | "resolved": "https://r.cnpmjs.org/isobject/download/isobject-2.1.0.tgz", 3545 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 3546 | "dev": true, 3547 | "requires": { 3548 | "isarray": "1.0.0" 3549 | } 3550 | } 3551 | } 3552 | }, 3553 | "has-values": { 3554 | "version": "0.1.4", 3555 | "resolved": "https://r.cnpmjs.org/has-values/download/has-values-0.1.4.tgz", 3556 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 3557 | "dev": true 3558 | } 3559 | } 3560 | }, 3561 | "upath": { 3562 | "version": "1.2.0", 3563 | "resolved": "https://r.cnpmjs.org/upath/download/upath-1.2.0.tgz", 3564 | "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", 3565 | "dev": true, 3566 | "optional": true 3567 | }, 3568 | "uri-js": { 3569 | "version": "4.4.0", 3570 | "resolved": "https://r.cnpmjs.org/uri-js/download/uri-js-4.4.0.tgz", 3571 | "integrity": "sha1-qnFCYd55PoqCNHp7zJznTobyhgI=", 3572 | "dev": true, 3573 | "requires": { 3574 | "punycode": "^2.1.0" 3575 | } 3576 | }, 3577 | "urix": { 3578 | "version": "0.1.0", 3579 | "resolved": "https://r.cnpmjs.org/urix/download/urix-0.1.0.tgz", 3580 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 3581 | "dev": true 3582 | }, 3583 | "url": { 3584 | "version": "0.11.0", 3585 | "resolved": "https://r.cnpmjs.org/url/download/url-0.11.0.tgz", 3586 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 3587 | "dev": true, 3588 | "requires": { 3589 | "punycode": "1.3.2", 3590 | "querystring": "0.2.0" 3591 | }, 3592 | "dependencies": { 3593 | "punycode": { 3594 | "version": "1.3.2", 3595 | "resolved": "https://r.cnpmjs.org/punycode/download/punycode-1.3.2.tgz", 3596 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 3597 | "dev": true 3598 | } 3599 | } 3600 | }, 3601 | "use": { 3602 | "version": "3.1.1", 3603 | "resolved": "https://r.cnpmjs.org/use/download/use-3.1.1.tgz", 3604 | "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", 3605 | "dev": true 3606 | }, 3607 | "util": { 3608 | "version": "0.11.1", 3609 | "resolved": "https://r.cnpmjs.org/util/download/util-0.11.1.tgz", 3610 | "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", 3611 | "dev": true, 3612 | "requires": { 3613 | "inherits": "2.0.3" 3614 | }, 3615 | "dependencies": { 3616 | "inherits": { 3617 | "version": "2.0.3", 3618 | "resolved": "https://r.cnpmjs.org/inherits/download/inherits-2.0.3.tgz", 3619 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 3620 | "dev": true 3621 | } 3622 | } 3623 | }, 3624 | "util-deprecate": { 3625 | "version": "1.0.2", 3626 | "resolved": "https://r.cnpmjs.org/util-deprecate/download/util-deprecate-1.0.2.tgz", 3627 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 3628 | }, 3629 | "v8-compile-cache": { 3630 | "version": "2.1.1", 3631 | "resolved": "https://r.cnpmjs.org/v8-compile-cache/download/v8-compile-cache-2.1.1.tgz", 3632 | "integrity": "sha1-VLw83UMxe8qR413K8wWxpyN950U=", 3633 | "dev": true 3634 | }, 3635 | "value-or-function": { 3636 | "version": "3.0.0", 3637 | "resolved": "https://r.cnpmjs.org/value-or-function/download/value-or-function-3.0.0.tgz", 3638 | "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" 3639 | }, 3640 | "vinyl": { 3641 | "version": "2.2.0", 3642 | "resolved": "https://r.cnpmjs.org/vinyl/download/vinyl-2.2.0.tgz", 3643 | "integrity": "sha1-2FsH2pbkWNJbL/4Z/s6fLKoT7YY=", 3644 | "requires": { 3645 | "clone": "^2.1.1", 3646 | "clone-buffer": "^1.0.0", 3647 | "clone-stats": "^1.0.0", 3648 | "cloneable-readable": "^1.0.0", 3649 | "remove-trailing-separator": "^1.0.1", 3650 | "replace-ext": "^1.0.0" 3651 | } 3652 | }, 3653 | "vinyl-fs": { 3654 | "version": "3.0.3", 3655 | "resolved": "https://r.cnpmjs.org/vinyl-fs/download/vinyl-fs-3.0.3.tgz", 3656 | "integrity": "sha1-yFhJQF9nQo/qu71cXb3WT0fTG8c=", 3657 | "requires": { 3658 | "fs-mkdirp-stream": "^1.0.0", 3659 | "glob-stream": "^6.1.0", 3660 | "graceful-fs": "^4.0.0", 3661 | "is-valid-glob": "^1.0.0", 3662 | "lazystream": "^1.0.0", 3663 | "lead": "^1.0.0", 3664 | "object.assign": "^4.0.4", 3665 | "pumpify": "^1.3.5", 3666 | "readable-stream": "^2.3.3", 3667 | "remove-bom-buffer": "^3.0.0", 3668 | "remove-bom-stream": "^1.2.0", 3669 | "resolve-options": "^1.1.0", 3670 | "through2": "^2.0.0", 3671 | "to-through": "^2.0.0", 3672 | "value-or-function": "^3.0.0", 3673 | "vinyl": "^2.0.0", 3674 | "vinyl-sourcemap": "^1.1.0" 3675 | } 3676 | }, 3677 | "vinyl-sourcemap": { 3678 | "version": "1.1.0", 3679 | "resolved": "https://r.cnpmjs.org/vinyl-sourcemap/download/vinyl-sourcemap-1.1.0.tgz", 3680 | "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", 3681 | "requires": { 3682 | "append-buffer": "^1.0.2", 3683 | "convert-source-map": "^1.5.0", 3684 | "graceful-fs": "^4.1.6", 3685 | "normalize-path": "^2.1.1", 3686 | "now-and-later": "^2.0.0", 3687 | "remove-bom-buffer": "^3.0.0", 3688 | "vinyl": "^2.0.0" 3689 | } 3690 | }, 3691 | "vm-browserify": { 3692 | "version": "1.1.2", 3693 | "resolved": "https://r.cnpmjs.org/vm-browserify/download/vm-browserify-1.1.2.tgz", 3694 | "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", 3695 | "dev": true 3696 | }, 3697 | "watchpack": { 3698 | "version": "1.7.4", 3699 | "resolved": "https://r.cnpmjs.org/watchpack/download/watchpack-1.7.4.tgz", 3700 | "integrity": "sha1-bp2lOzyAuy1lCBiPWyAEEIZs0ws=", 3701 | "dev": true, 3702 | "requires": { 3703 | "chokidar": "^3.4.1", 3704 | "graceful-fs": "^4.1.2", 3705 | "neo-async": "^2.5.0", 3706 | "watchpack-chokidar2": "^2.0.0" 3707 | } 3708 | }, 3709 | "watchpack-chokidar2": { 3710 | "version": "2.0.0", 3711 | "resolved": "https://r.cnpmjs.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz", 3712 | "integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=", 3713 | "dev": true, 3714 | "optional": true, 3715 | "requires": { 3716 | "chokidar": "^2.1.8" 3717 | }, 3718 | "dependencies": { 3719 | "anymatch": { 3720 | "version": "2.0.0", 3721 | "resolved": "https://r.cnpmjs.org/anymatch/download/anymatch-2.0.0.tgz", 3722 | "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", 3723 | "dev": true, 3724 | "optional": true, 3725 | "requires": { 3726 | "micromatch": "^3.1.4", 3727 | "normalize-path": "^2.1.1" 3728 | }, 3729 | "dependencies": { 3730 | "normalize-path": { 3731 | "version": "2.1.1", 3732 | "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-2.1.1.tgz", 3733 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 3734 | "dev": true, 3735 | "optional": true, 3736 | "requires": { 3737 | "remove-trailing-separator": "^1.0.1" 3738 | } 3739 | } 3740 | } 3741 | }, 3742 | "binary-extensions": { 3743 | "version": "1.13.1", 3744 | "resolved": "https://r.cnpmjs.org/binary-extensions/download/binary-extensions-1.13.1.tgz", 3745 | "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", 3746 | "dev": true, 3747 | "optional": true 3748 | }, 3749 | "chokidar": { 3750 | "version": "2.1.8", 3751 | "resolved": "https://r.cnpmjs.org/chokidar/download/chokidar-2.1.8.tgz", 3752 | "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", 3753 | "dev": true, 3754 | "optional": true, 3755 | "requires": { 3756 | "anymatch": "^2.0.0", 3757 | "async-each": "^1.0.1", 3758 | "braces": "^2.3.2", 3759 | "fsevents": "^1.2.7", 3760 | "glob-parent": "^3.1.0", 3761 | "inherits": "^2.0.3", 3762 | "is-binary-path": "^1.0.0", 3763 | "is-glob": "^4.0.0", 3764 | "normalize-path": "^3.0.0", 3765 | "path-is-absolute": "^1.0.0", 3766 | "readdirp": "^2.2.1", 3767 | "upath": "^1.1.1" 3768 | } 3769 | }, 3770 | "fsevents": { 3771 | "version": "1.2.13", 3772 | "resolved": "https://r.cnpmjs.org/fsevents/download/fsevents-1.2.13.tgz", 3773 | "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", 3774 | "dev": true, 3775 | "optional": true, 3776 | "requires": { 3777 | "bindings": "^1.5.0", 3778 | "nan": "^2.12.1" 3779 | } 3780 | }, 3781 | "is-binary-path": { 3782 | "version": "1.0.1", 3783 | "resolved": "https://r.cnpmjs.org/is-binary-path/download/is-binary-path-1.0.1.tgz", 3784 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 3785 | "dev": true, 3786 | "optional": true, 3787 | "requires": { 3788 | "binary-extensions": "^1.0.0" 3789 | } 3790 | }, 3791 | "is-glob": { 3792 | "version": "4.0.1", 3793 | "resolved": "https://r.cnpmjs.org/is-glob/download/is-glob-4.0.1.tgz", 3794 | "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", 3795 | "dev": true, 3796 | "optional": true, 3797 | "requires": { 3798 | "is-extglob": "^2.1.1" 3799 | } 3800 | }, 3801 | "normalize-path": { 3802 | "version": "3.0.0", 3803 | "resolved": "https://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", 3804 | "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", 3805 | "dev": true, 3806 | "optional": true 3807 | }, 3808 | "readdirp": { 3809 | "version": "2.2.1", 3810 | "resolved": "https://r.cnpmjs.org/readdirp/download/readdirp-2.2.1.tgz", 3811 | "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", 3812 | "dev": true, 3813 | "optional": true, 3814 | "requires": { 3815 | "graceful-fs": "^4.1.11", 3816 | "micromatch": "^3.1.10", 3817 | "readable-stream": "^2.0.2" 3818 | } 3819 | } 3820 | } 3821 | }, 3822 | "webpack": { 3823 | "version": "4.44.1", 3824 | "resolved": "https://r.cnpmjs.org/webpack/download/webpack-4.44.1.tgz", 3825 | "integrity": "sha1-F+af/58yG48RfR/acU7fwLk5zCE=", 3826 | "dev": true, 3827 | "requires": { 3828 | "@webassemblyjs/ast": "1.9.0", 3829 | "@webassemblyjs/helper-module-context": "1.9.0", 3830 | "@webassemblyjs/wasm-edit": "1.9.0", 3831 | "@webassemblyjs/wasm-parser": "1.9.0", 3832 | "acorn": "^6.4.1", 3833 | "ajv": "^6.10.2", 3834 | "ajv-keywords": "^3.4.1", 3835 | "chrome-trace-event": "^1.0.2", 3836 | "enhanced-resolve": "^4.3.0", 3837 | "eslint-scope": "^4.0.3", 3838 | "json-parse-better-errors": "^1.0.2", 3839 | "loader-runner": "^2.4.0", 3840 | "loader-utils": "^1.2.3", 3841 | "memory-fs": "^0.4.1", 3842 | "micromatch": "^3.1.10", 3843 | "mkdirp": "^0.5.3", 3844 | "neo-async": "^2.6.1", 3845 | "node-libs-browser": "^2.2.1", 3846 | "schema-utils": "^1.0.0", 3847 | "tapable": "^1.1.3", 3848 | "terser-webpack-plugin": "^1.4.3", 3849 | "watchpack": "^1.7.4", 3850 | "webpack-sources": "^1.4.1" 3851 | } 3852 | }, 3853 | "webpack-cli": { 3854 | "version": "3.3.12", 3855 | "resolved": "https://r.cnpmjs.org/webpack-cli/download/webpack-cli-3.3.12.tgz", 3856 | "integrity": "sha1-lOmtoIFFPNCqYJyZ5QABL9OtLUo=", 3857 | "dev": true, 3858 | "requires": { 3859 | "chalk": "^2.4.2", 3860 | "cross-spawn": "^6.0.5", 3861 | "enhanced-resolve": "^4.1.1", 3862 | "findup-sync": "^3.0.0", 3863 | "global-modules": "^2.0.0", 3864 | "import-local": "^2.0.0", 3865 | "interpret": "^1.4.0", 3866 | "loader-utils": "^1.4.0", 3867 | "supports-color": "^6.1.0", 3868 | "v8-compile-cache": "^2.1.1", 3869 | "yargs": "^13.3.2" 3870 | } 3871 | }, 3872 | "webpack-sources": { 3873 | "version": "1.4.3", 3874 | "resolved": "https://r.cnpmjs.org/webpack-sources/download/webpack-sources-1.4.3.tgz", 3875 | "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", 3876 | "dev": true, 3877 | "requires": { 3878 | "source-list-map": "^2.0.0", 3879 | "source-map": "~0.6.1" 3880 | }, 3881 | "dependencies": { 3882 | "source-map": { 3883 | "version": "0.6.1", 3884 | "resolved": "https://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", 3885 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", 3886 | "dev": true 3887 | } 3888 | } 3889 | }, 3890 | "which": { 3891 | "version": "1.3.1", 3892 | "resolved": "https://r.cnpmjs.org/which/download/which-1.3.1.tgz", 3893 | "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", 3894 | "dev": true, 3895 | "requires": { 3896 | "isexe": "^2.0.0" 3897 | } 3898 | }, 3899 | "which-module": { 3900 | "version": "2.0.0", 3901 | "resolved": "https://r.cnpmjs.org/which-module/download/which-module-2.0.0.tgz", 3902 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 3903 | "dev": true 3904 | }, 3905 | "worker-farm": { 3906 | "version": "1.7.0", 3907 | "resolved": "https://r.cnpmjs.org/worker-farm/download/worker-farm-1.7.0.tgz", 3908 | "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", 3909 | "dev": true, 3910 | "requires": { 3911 | "errno": "~0.1.7" 3912 | } 3913 | }, 3914 | "wrap-ansi": { 3915 | "version": "5.1.0", 3916 | "resolved": "https://r.cnpmjs.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", 3917 | "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", 3918 | "dev": true, 3919 | "requires": { 3920 | "ansi-styles": "^3.2.0", 3921 | "string-width": "^3.0.0", 3922 | "strip-ansi": "^5.0.0" 3923 | } 3924 | }, 3925 | "wrappy": { 3926 | "version": "1.0.2", 3927 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3928 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 3929 | }, 3930 | "xtend": { 3931 | "version": "4.0.2", 3932 | "resolved": "https://r.cnpmjs.org/xtend/download/xtend-4.0.2.tgz", 3933 | "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=" 3934 | }, 3935 | "y18n": { 3936 | "version": "4.0.0", 3937 | "resolved": "https://r.cnpmjs.org/y18n/download/y18n-4.0.0.tgz", 3938 | "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", 3939 | "dev": true 3940 | }, 3941 | "yallist": { 3942 | "version": "3.1.1", 3943 | "resolved": "https://r.cnpmjs.org/yallist/download/yallist-3.1.1.tgz", 3944 | "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", 3945 | "dev": true 3946 | }, 3947 | "yargs": { 3948 | "version": "13.3.2", 3949 | "resolved": "https://r.cnpmjs.org/yargs/download/yargs-13.3.2.tgz", 3950 | "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", 3951 | "dev": true, 3952 | "requires": { 3953 | "cliui": "^5.0.0", 3954 | "find-up": "^3.0.0", 3955 | "get-caller-file": "^2.0.1", 3956 | "require-directory": "^2.1.1", 3957 | "require-main-filename": "^2.0.0", 3958 | "set-blocking": "^2.0.0", 3959 | "string-width": "^3.0.0", 3960 | "which-module": "^2.0.0", 3961 | "y18n": "^4.0.0", 3962 | "yargs-parser": "^13.1.2" 3963 | } 3964 | }, 3965 | "yargs-parser": { 3966 | "version": "13.1.2", 3967 | "resolved": "https://r.cnpmjs.org/yargs-parser/download/yargs-parser-13.1.2.tgz", 3968 | "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", 3969 | "dev": true, 3970 | "requires": { 3971 | "camelcase": "^5.0.0", 3972 | "decamelize": "^1.2.0" 3973 | } 3974 | } 3975 | } 3976 | } 3977 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tinypng-script-with-cache", 3 | "author": "Momo707577045", 4 | "license": "ISC", 5 | "version": "1.0.9", 6 | "description": "无依赖的 tinypng 压缩脚本", 7 | "main": "./dist/mtp.js", 8 | "bin": { 9 | "mtp": "./bin/mtp.js" 10 | }, 11 | "keywords": [ 12 | "tinypng", 13 | "image", 14 | "minify", 15 | "minifier", 16 | "compress", 17 | "script", 18 | "cache", 19 | "filter" 20 | ], 21 | "dependencies": { 22 | "vinyl-fs": "^3.0.3", 23 | "md5": "^2.1.0", 24 | "pretty-bytes": "^0.1.2", 25 | "request": "^2.31.0", 26 | "through2": "^0.4.2" 27 | }, 28 | 29 | "repository": { 30 | "type": "git", 31 | "url": "git+https://github.com/Momo707577045/tinypng-script-with-cache.git" 32 | }, 33 | "bugs": { 34 | "url": "https://github.com/Momo707577045/tinypng-script-with-cache/issues" 35 | }, 36 | "homepage": "https://github.com/Momo707577045/tinypng-script-with-cache#readme", 37 | "devDependencies": { 38 | "webpack": "^4.44.1", 39 | "webpack-cli": "^3.3.12" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /test-img-origin/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img-origin/001.png -------------------------------------------------------------------------------- /test-img-origin/empty-contents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img-origin/empty-contents.png -------------------------------------------------------------------------------- /test-img-origin/index-1/002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img-origin/index-1/002.jpg -------------------------------------------------------------------------------- /test-img-origin/index-1/img/003.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img-origin/index-1/img/003.jpeg -------------------------------------------------------------------------------- /test-img-origin/unsupported-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img-origin/unsupported-file.png -------------------------------------------------------------------------------- /test-img/001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img/001.png -------------------------------------------------------------------------------- /test-img/index-1/002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img/index-1/002.jpg -------------------------------------------------------------------------------- /test-img/index-1/img/003.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Momo707577045/tinypng-script-with-cache/1e1fa34fd26d36b6ca1ef5bb1e4c030ed4b8dfd1/test-img/index-1/img/003.jpeg -------------------------------------------------------------------------------- /tinypng-mjw.js: -------------------------------------------------------------------------------- 1 | const vfs = require('vinyl-fs'); 2 | let tinypng = require('./tinypng-with-cache') 3 | 4 | let apiKeyList = [] // 接口 key 默认为空 5 | let basePath = process.cwd() // 默认运行脚本所在目录 6 | let createMd5FormOrigin = false // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。用于「初次项目接入」及手动清理冗余的「图片md5信息」 7 | 8 | // 如果有全局传值 9 | if (global.tinypngConf) { 10 | basePath = tinypngConf.basePath || basePath 11 | apiKeyList = tinypngConf.apiKeyList || apiKeyList 12 | createMd5FormOrigin = tinypngConf.createMd5FormOrigin || createMd5FormOrigin 13 | } 14 | 15 | // 动态参数传值 16 | basePath = process.argv[2] || basePath 17 | createMd5FormOrigin = process.argv[3] || createMd5FormOrigin 18 | apiKeyList = process.argv[4] ? process.argv[4].split(',') : apiKeyList 19 | 20 | let fileFilter = tinypngConf.fileFilter || [ 21 | basePath + '/**/*.png', 22 | basePath + '/**/*.jpg', 23 | basePath + '/**/*.jpeg', 24 | `!${basePath}/**/node_modules/**`, // 忽略无需遍历的文件,路径匹配语法参考:https://www.gulpjs.com.cn/docs/getting-started/explaining-globs/ 25 | `!${basePath}/**/dist/**`, 26 | ] 27 | 28 | console.log({ 29 | basePath, 30 | apiKeyList, 31 | fileFilter, 32 | createMd5FormOrigin, 33 | }) 34 | 35 | if (!apiKeyList.length) { 36 | return console.error('tinypng-script-with-cache', 'tinypny key 列表不能为空!') 37 | } 38 | 39 | vfs.src(fileFilter, { 40 | base: './', // 对文件使用相路径,为了后面覆盖源文件 41 | nodir: true, // 忽略文件夹 42 | }) 43 | .pipe(tinypng({ 44 | apiKeyList, 45 | reportFilePath: basePath + '/tinypngReport.json', // 不设置,则不进行日志记录 46 | md5RecordFilePath: basePath + '/tinypngMd5Record.json', // 不设置,则不进行缓存过滤 47 | minCompressPercentLimit: 10, // 默认值为零,最小压缩百分比限制,为保证图片质量,当压缩比例低于该值时,保持源文件,避免过分压缩,损伤图片质量 48 | createMd5FormOrigin, // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。用于「初次项目接入」及手动清理冗余的「图片md5信息」 49 | })) 50 | .pipe(vfs.dest('./', { overwrite: true })) // 覆写原文件 -------------------------------------------------------------------------------- /tinypng-with-cache.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const md5 = require('md5') 3 | const request = require('request') 4 | const through = require('through2') 5 | const prettyBytes = require('pretty-bytes') 6 | const SCRIPT_NAME = 'tinypng-script-with-cache' // 插件名 7 | 8 | let AUTH_TOKEN = '' // 根据 aypi key 生成的请求头, 9 | let _createMd5FormOrigin = false // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。只会在接入本项目时用一次。 10 | let _minCompressPercentLimit = 0 // 默认值为零,最小压缩百分比限制,为保证图片质量,当压缩比例低于该值时,保持源文件,避免过分压缩,损伤图片质量 11 | let _md5RecordFilePath = '' // 压缩后图片 md5 信息文件所在路径 12 | let _reportFilePath = '' // 报告文件路径 13 | let _apiKeyList = [] // key 列表 14 | let recordList = [] // 压缩日志列表 15 | let md5RecordList = [] // 图片压缩后的 md5 记录数组 16 | let keyIndex = 0 // 当前使用第几个 Key 17 | let intervalId = -1 // 加载中计时器 id 18 | let currentFileName = '' // 当前压缩中的文件 19 | 20 | let compressionInfo = { 21 | num: 0, // 压缩的文件数 22 | saveSize: 0, // 节省的体积 23 | originSize: 0, // 文件未被压缩前总体积 24 | savePercent: 0, // 压缩百分比 25 | } 26 | 27 | console._log = (...params) => { 28 | process.stdout.write(`\r`) 29 | console.log(...params) 30 | } 31 | 32 | // 进程退出前执行操作 33 | process.on('exit', () => recordResult(true)) 34 | 35 | // 记录压缩结果 36 | function recordResult (withLog) { 37 | const record = `共压缩 ${compressionInfo.num} 个文件,压缩前 ${prettyBytes(compressionInfo.originSize)},压缩后 ${prettyBytes(compressionInfo.originSize - compressionInfo.saveSize)},节省 ${prettyBytes(compressionInfo.saveSize)} 空间,压缩百分比 ${((compressionInfo.saveSize / (compressionInfo.originSize || 1)) * 100).toFixed(0)}%` 38 | withLog && console._log(record) 39 | const _recordList = [].concat(recordList) 40 | _recordList.push(record) 41 | _md5RecordFilePath && fs.writeFileSync(_md5RecordFilePath, JSON.stringify(md5RecordList, null, 2)) 42 | _reportFilePath && fs.writeFileSync(_reportFilePath, JSON.stringify(_recordList, null, 2)) 43 | } 44 | 45 | // 加载中动画 46 | function spin () { 47 | let index = 0 48 | let dotList = '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏' 49 | clearInterval(intervalId) 50 | intervalId = setInterval(() => { 51 | if (currentFileName) { 52 | index++ 53 | process.stdout.write(`\r${dotList[index % dotList.length]} 压缩中 ${currentFileName}`) 54 | } 55 | }, 200) 56 | } 57 | 58 | // 主函数 59 | function main ({ apiKeyList = [], md5RecordFilePath, reportFilePath, minCompressPercentLimit = 0, createMd5FormOrigin = false }) { 60 | _apiKeyList = apiKeyList 61 | _md5RecordFilePath = md5RecordFilePath 62 | _reportFilePath = reportFilePath 63 | _minCompressPercentLimit = minCompressPercentLimit 64 | _createMd5FormOrigin = createMd5FormOrigin 65 | AUTH_TOKEN = Buffer.from('api:' + _apiKeyList[keyIndex]).toString('base64') 66 | console._log(`当前使用第一个 apiKey: ${_apiKeyList[keyIndex]}`) 67 | spin() 68 | try { 69 | md5RecordList = JSON.parse(fs.readFileSync(_md5RecordFilePath) || '[]') 70 | } catch (e) { 71 | 72 | } 73 | 74 | // gulp 进入的主流程 75 | return through.obj(function (file, enc, callback) { 76 | if (file.isStream()) { 77 | console.error(SCRIPT_NAME, 'Stream is not supported') 78 | } else if (file.isNull()) { 79 | this.push(file) 80 | return callback() 81 | } else if (file.isBuffer()) { // 正常处理的类型 82 | if (_createMd5FormOrigin) { // 不进行压缩操作,只生成现有图片的 md5 信息,并作为缓存。只会在接入本项目时用一次。 83 | md5RecordList.push(md5(file.contents)) // 记录到缓存中 84 | this.push(file) 85 | return callback() 86 | } 87 | 88 | // 目标文件在缓存中存在,且内容未发生变化 89 | if (_md5RecordFilePath && md5RecordList.indexOf(md5(file.contents)) > -1) { 90 | this.push(file) 91 | return callback() 92 | } 93 | 94 | currentFileName = file.relative // 设置压缩中的图片名 95 | let prevSize = file.contents.length // 压缩前的大小 96 | if(!prevSize){ 97 | console.log(`${currentFileName} 文件信息错误,无法获取文件大小,跳过压缩`) 98 | return callback() 99 | } 100 | 101 | // 正常压缩 102 | tinypng(file, (data) => { 103 | const compressPercent = (1 - data.length / prevSize) * 100// 压缩百分比 104 | const compressPercentStr = compressPercent.toFixed(0) + '%' // 压缩百分比 105 | if (compressPercent < _minCompressPercentLimit) { // 无效压缩,保存源文件 106 | md5RecordList.push(md5(file.contents)) // 记录到缓存中 107 | console._log(`压缩比例低于安全线,保存源文件: ${file.relative} 【${compressPercentStr}】`) 108 | } else { // 有效压缩 109 | file.contents = data 110 | compressionInfo.num++ 111 | compressionInfo.saveSize += prevSize - data.length 112 | compressionInfo.originSize += prevSize 113 | md5RecordList.push(md5(data)) // 记录到缓存中 114 | let record = '压缩成功 ' 115 | record += `前: ${prettyBytes(prevSize)}`.padEnd(15) 116 | record += `后: ${prettyBytes(data.length)}`.padEnd(15) 117 | record += `压缩: ${prettyBytes(prevSize - data.length)}`.padEnd(18) 118 | record += `压缩百分比: ${((prevSize - data.length) / (prevSize || 1) * 100).toFixed(2)}%`.padEnd(18) 119 | record += `${file.relative} ` 120 | recordList.push(record) 121 | console._log(record) 122 | } 123 | this.push(file) 124 | recordResult() 125 | // _md5RecordFilePath && fs.writeFileSync(_md5RecordFilePath, JSON.stringify(md5RecordList, null, 2)) // 每个文件压缩后,都保留一次 md5 信息。防止中途中断进程,浪费已压缩的记录。 126 | return callback() 127 | }) 128 | } 129 | }, function () { // 遍历完成,退出 130 | clearInterval(intervalId) 131 | }) 132 | } 133 | 134 | // 检测 key 文件,使用下一个 key 135 | function checkApiKey (errorMsg, tryNextKeyCb, skipFileCb) { 136 | const keyErrorList = [ // key 错误信息 137 | 'Credentials are invalid.', // apiKey 无效 138 | 'Your monthly limit has been exceeded.', // 已超本月免费的 500 张限制 139 | ] 140 | if (keyErrorList.indexOf(errorMsg) > -1) { 141 | if (keyIndex < _apiKeyList.length - 1) { 142 | keyIndex++ 143 | console._log(`apiKey 已超使用限制,切换使用第 ${keyIndex + 1} 个 apiKey: ${_apiKeyList[keyIndex]}`) 144 | AUTH_TOKEN = Buffer.from('api:' + _apiKeyList[keyIndex]).toString('base64') // 使用下一个 key 145 | tryNextKeyCb() // 重试压缩 146 | } else { 147 | clearInterval(intervalId) 148 | console._log('提供的 apiKey 已均不可用,压缩结束') 149 | } 150 | } else { // 其他错误信息 151 | console._log('[error] : 文件不可压缩 - ', errorMsg) 152 | skipFileCb() // 跳过该文件的压缩 153 | } 154 | } 155 | 156 | // 压缩文件 157 | function tinypng (file, cb) { 158 | request({ 159 | method: 'POST', 160 | strictSSL: false, 161 | body: file.contents, 162 | url: 'https://api.tinypng.com/shrink', 163 | headers: { 164 | 'Accept': '*/*', 165 | 'Cache-Control': 'no-cache', 166 | 'Content-Type': 'application/x-www-form-urlencoded', 167 | 'Authorization': 'Basic ' + AUTH_TOKEN 168 | }, 169 | }, function (error, response, body) { 170 | if (!error) { 171 | const results = JSON.parse(body) 172 | if (results.output && results.output.url) { // 获得实际下载的地址 173 | request.head(results.output.url, function (error) { // 通过head 请求,提前请求,确保资源存在 174 | if (!error) { 175 | request({ 176 | headers: { 'Content-Type': 'application/octet-stream' }, 177 | strictSSL: false, 178 | encoding: null, // 获取二进制数据,必须设置该值 179 | url: results.output.url, 180 | }, function (error, response, body) { 181 | cb(body) 182 | }) 183 | } else { 184 | console._log('[error] : 文件下载错误 - ', results.message) 185 | } 186 | }) 187 | } else { 188 | // 检测 key 无效的错误码,从 key 列表中使用下一个 key 189 | checkApiKey(results.message, tinypng.bind(null, file, cb), cb.bind(null, file.contents)) 190 | } 191 | } else { 192 | // console._log('[error] : 上传出错 - ', error) 193 | checkApiKey(error.message, tinypng.bind(null, file, cb), cb.bind(null, file.contents)) 194 | } 195 | }) 196 | } 197 | 198 | 199 | module.exports = main 200 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | console.log(__dirname + '/dist') 2 | module.exports = { 3 | target: 'node', 4 | mode: "production", 5 | entry: './tinypng-mjw.js', 6 | output: { 7 | filename: 'mtp.js', // 打包代码时,加上 hash 戳 8 | path: __dirname + '/dist', 9 | } 10 | } 11 | --------------------------------------------------------------------------------