diff --git a/CHANGELOG.md b/CHANGELOG.md
index dd7f8f77a68e..8991f761b0c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,144 @@
-# [](https://github.com/NervJS/taro/compare/v1.3.34...v) (2019-12-31)
+# [](https://github.com/NervJS/taro/compare/v2.0.0-beta.13...v) (2019-12-31)
+
+
+
+
+# [2.0.0-beta.13](https://github.com/NervJS/taro/compare/v1.3.34...v2.0.0-beta.13) (2019-12-31)
+
+
+### Bug Fixes
+
+* **cli:** 2.0.0-beta.8. 编译RN报错 'babel' of undefined close [#5093](https://github.com/NervJS/taro/issues/5093) ([3a84775](https://github.com/NervJS/taro/commit/3a84775))
+* **cli:** 修正快应用依赖项安装命令在windows不兼容问题 ([#4954](https://github.com/NervJS/taro/issues/4954)) ([6e15d16](https://github.com/NervJS/taro/commit/6e15d16))
+* **cli:** 增加运行提示 ([ff7463d](https://github.com/NervJS/taro/commit/ff7463d))
+* **cli:** 插件编译失败,close [#5149](https://github.com/NervJS/taro/issues/5149) ([9267765](https://github.com/NervJS/taro/commit/9267765))
+* **cli:** 更新默认模板 ([a5cbb98](https://github.com/NervJS/taro/commit/a5cbb98))
+* **cli:** 解决 cli 编译时缺少 [@types](https://github.com/types)/react 依赖问题 ([#4997](https://github.com/NervJS/taro/issues/4997)) ([3649db5](https://github.com/NervJS/taro/commit/3649db5))
+* **components-qa:** 改进 button 动画效果展示,引入 css 属性描述文件 ([#4898](https://github.com/NervJS/taro/issues/4898)) ([9c336f5](https://github.com/NervJS/taro/commit/9c336f5))
+* **mini-runner:** 优化 watch 时文件编译速度 ([d8e180c](https://github.com/NervJS/taro/commit/d8e180c))
+* **mini-runner:** 修复 defineConstants 小程序表现与 H5 不一致问题 close [#5078](https://github.com/NervJS/taro/issues/5078) ([a560edb](https://github.com/NervJS/taro/commit/a560edb))
+* **mini-runner:** 修复 sass 变量失效的问题,close [#4893](https://github.com/NervJS/taro/issues/4893) ([e1e979d](https://github.com/NervJS/taro/commit/e1e979d))
+* **mini-runner:** 修复 watch 时修改页面导致组件无法及时更新的问题 ([b5394c7](https://github.com/NervJS/taro/commit/b5394c7))
+* **mini-runner:** 修复 watch 时增加组件文件的 bug,close [#5140](https://github.com/NervJS/taro/issues/5140) ([769ded0](https://github.com/NervJS/taro/commit/769ded0))
+* **mini-runner:** 修复 watch 时文件报错导致无法重新编译的问题,fix [#4949](https://github.com/NervJS/taro/issues/4949) ([70dde62](https://github.com/NervJS/taro/commit/70dde62))
+* **mini-runner:** 修复 windows 下编译后 taro 引用错误的问题 ([6798787](https://github.com/NervJS/taro/commit/6798787))
+* **mini-runner:** 修复使用 preval 报错的问题 ([24701e6](https://github.com/NervJS/taro/commit/24701e6))
+* **mini-runner:** 修复分包页面丢失的问题 ([98c82da](https://github.com/NervJS/taro/commit/98c82da))
+* **mini-runner:** 修复包未安装不报错的问题 ([09dd6b7](https://github.com/NervJS/taro/commit/09dd6b7))
+* **mini-runner:** 修复多端文件引用的问题,close [#5175](https://github.com/NervJS/taro/issues/5175) ([def32f5](https://github.com/NervJS/taro/commit/def32f5))
+* **mini-runner:** 修复小程序编译时样式中引用静态资源转换为 base64 ([955784f](https://github.com/NervJS/taro/commit/955784f))
+* **mini-runner:** 修复引用原生组件报错的问题 ([03967de](https://github.com/NervJS/taro/commit/03967de))
+* **mini-runner:** 修复引用原生组件编译后样式文件缺失的问题 ([9d58a87](https://github.com/NervJS/taro/commit/9d58a87))
+* **mini-runner:** 修复组件 watch 时改动不生效的问题 ([8cfd5bb](https://github.com/NervJS/taro/commit/8cfd5bb))
+* **mini-runner:** 修复静态资源引用的 bug ([a0ccc36](https://github.com/NervJS/taro/commit/a0ccc36))
+* **mini-runner:** 修复页面 hooks config 失效问题 ([4635bec](https://github.com/NervJS/taro/commit/4635bec))
+* **mini-runner:** 修正快应用pages中ux文件未正确生成问题 ([#4969](https://github.com/NervJS/taro/issues/4969)) ([2c61570](https://github.com/NervJS/taro/commit/2c61570))
+* **mini-runner:** 加入 preval 支持 ([b0c68cf](https://github.com/NervJS/taro/commit/b0c68cf))
+* **mini-runner:** 增加快应用公共属性的自动更新,优化button动画直接调用 ([#5044](https://github.com/NervJS/taro/issues/5044)) ([cca8c72](https://github.com/NervJS/taro/commit/cca8c72))
+* **mini-runner:** 快应用页面路径编译错误 ([52032dd](https://github.com/NervJS/taro/commit/52032dd))
+* **mini-runner:** 支持自定义 tabBar ([801bb80](https://github.com/NervJS/taro/commit/801bb80))
+* **mini-runner:** 暴露 commonChunks 配置以供自定义公共 chunks 生成 ([3d3118e](https://github.com/NervJS/taro/commit/3d3118e))
+* **mini-runner:** 更新编译时提示 ([174c7b2](https://github.com/NervJS/taro/commit/174c7b2))
+* **mini-runner:** 组件中 $componentPath 路径生成不对 ([4d4d080](https://github.com/NervJS/taro/commit/4d4d080))
+* **mini-runner:** 组件引入支持统一从一个入口文件中引入 ([d8898f1](https://github.com/NervJS/taro/commit/d8898f1))
+* **mini-runner:** 组件引用支持 import as 语法 ([e4616eb](https://github.com/NervJS/taro/commit/e4616eb))
+* **mini-runner:** 编译时移除组件文件引用,遗漏了 npm 包中组件,close [#5139](https://github.com/NervJS/taro/issues/5139) ([bf2af74](https://github.com/NervJS/taro/commit/bf2af74))
+* **mini-runner:** 编译时需要移除对组件文件的引用 ([03a7672](https://github.com/NervJS/taro/commit/03a7672))
+* **mini-runner:** 降低 babel-plugin-preval 版本以保证使用 async await 时不报错 ([e703bd6](https://github.com/NervJS/taro/commit/e703bd6))
+* **taro:** update getStorage return typings ([#5170](https://github.com/NervJS/taro/issues/5170)) ([38279ec](https://github.com/NervJS/taro/commit/38279ec))
+* **taro:** 增加递归查找中止条件,修正拼写错误 ([#5045](https://github.com/NervJS/taro/issues/5045)) ([7dac473](https://github.com/NervJS/taro/commit/7dac473))
+* **taro-cli:** update package list 新增 [@tarojs](https://github.com/tarojs)/mini-runner,对列表排序 ([cd264dd](https://github.com/NervJS/taro/commit/cd264dd))
+* **taro-runner-utils:** 优化代码,修复找不到类型定义的问题 ([765c8de](https://github.com/NervJS/taro/commit/765c8de))
+* **taro-webpack-runner:** 修复 sassLoaderOption 未定义的问题 ([60bfe5c](https://github.com/NervJS/taro/commit/60bfe5c))
+* **types:** add enableFlex to ScrollViewProps ([#5142](https://github.com/NervJS/taro/issues/5142)) ([c984109](https://github.com/NervJS/taro/commit/c984109))
+* for video objectFit ([cd36ca1](https://github.com/NervJS/taro/commit/cd36ca1))
+* **cli:** lerna 加入 taro-mini-runner && 接入 webpack 生成小程序文件 ([ed9e755](https://github.com/NervJS/taro/commit/ed9e755))
+* **cli:** 修复 doctor 对 config 的检测 ([127d6d2](https://github.com/NervJS/taro/commit/127d6d2))
+* **cli:** 修复 watch 时文件修改不对的问题 ([aa9f99e](https://github.com/NervJS/taro/commit/aa9f99e))
+* **cli:** 修复代码合并的问题 ([1a5a903](https://github.com/NervJS/taro/commit/1a5a903))
+* **cli:** 修复目录创建 ([9f19372](https://github.com/NervJS/taro/commit/9f19372))
+* **cli:** 修复配置文件中读取不到 process.env.TARO_ENV 的问题 ([121ba14](https://github.com/NervJS/taro/commit/121ba14))
+* **mini-runner:** 修复对 alias 的支持 ([2e09509](https://github.com/NervJS/taro/commit/2e09509))
+* **mini-runner:** 移除无用代码 ([931a208](https://github.com/NervJS/taro/commit/931a208))
+* somethings no need ([0598df6](https://github.com/NervJS/taro/commit/0598df6))
+* **cli:** 支持引用 node_modules 中组件 ([18bc2bc](https://github.com/NervJS/taro/commit/18bc2bc))
+* **cli:** 普通文件经过编译器编译必须传入 isNormal ([3bc5450](https://github.com/NervJS/taro/commit/3bc5450))
+* **cli:** 更新默认模板 ([d17a8c5](https://github.com/NervJS/taro/commit/d17a8c5))
+* **cli:** 清理代码 ([179be5c](https://github.com/NervJS/taro/commit/179be5c))
+* **cli:** 编译器参数调整 ([4771c21](https://github.com/NervJS/taro/commit/4771c21))
+* **components:** h5 image 删除无关代码 ([#4998](https://github.com/NervJS/taro/issues/4998)) ([1d17269](https://github.com/NervJS/taro/commit/1d17269))
+* **components:** 修复 Image 组件在 react 环境下报错的问题 ([ac039e8](https://github.com/NervJS/taro/commit/ac039e8))
+* **components-qa:** 修复页面 onReachBottom 事件不触发的问题 ([b3b21bf](https://github.com/NervJS/taro/commit/b3b21bf))
+* **jd:** 修复合并代码导致的京东小程序的编译问题 ([de78fe4](https://github.com/NervJS/taro/commit/de78fe4))
+* **mini-runner:** npm 中文件不会经过 taro 包替换操作 ([975efa2](https://github.com/NervJS/taro/commit/975efa2))
+* **mini-runner:** 优化 webpack 编译时样式处理 ([48ba4d8](https://github.com/NervJS/taro/commit/48ba4d8))
+* **mini-runner:** 修复 builder 的 hooks 调用 ([e9a25b8](https://github.com/NervJS/taro/commit/e9a25b8))
+* **mini-runner:** 修复 tabbar 编译及组件 watch 的问题 ([77d7aeb](https://github.com/NervJS/taro/commit/77d7aeb))
+* **mini-runner:** 修复 watch bug ([c84b683](https://github.com/NervJS/taro/commit/c84b683))
+* **mini-runner:** 修复对 css modules 的支持 ([5019023](https://github.com/NervJS/taro/commit/5019023))
+* **mini-runner:** 修复小程序编译报错 ([1e8aef1](https://github.com/NervJS/taro/commit/1e8aef1))
+* **mini-runner:** 修复快应用打包报错的问题 ([ca7bdb7](https://github.com/NervJS/taro/commit/ca7bdb7))
+* **mini-runner:** 修复快应用编译后页面标题展示不正确的问题 ([de5dc7b](https://github.com/NervJS/taro/commit/de5dc7b))
+* **mini-runner:** 修复普通小程序编译的问题 ([7251ea3](https://github.com/NervJS/taro/commit/7251ea3))
+* **mini-runner:** 只有 taro 的包不能经过依赖包名替换 ([c861872](https://github.com/NervJS/taro/commit/c861872))
+* **mini-runner:** 打包优化,引用自 npm 包中的组件不抽离至 vendors 中 ([6e8a4ff](https://github.com/NervJS/taro/commit/6e8a4ff))
+* **mini-runner:** 提前解析快应用页面 ([d469c84](https://github.com/NervJS/taro/commit/d469c84))
+* **mini-runner:** 支持快应用编译后模板与样式的检测 ([e38ebc7](https://github.com/NervJS/taro/commit/e38ebc7))
+* **quickapp:** pull-down-refresh page-scroll ([1c2fa60](https://github.com/NervJS/taro/commit/1c2fa60))
+* quickapp api upload from docs ([c263ee6](https://github.com/NervJS/taro/commit/c263ee6))
+* **taro:** 修复快应用下拉刷新问题 ([5a7638e](https://github.com/NervJS/taro/commit/5a7638e))
+* position linter for quickapp 1060+ ([42eb4c4](https://github.com/NervJS/taro/commit/42eb4c4))
+* use rimraf instead of rm to fixed Windows build error ([37af02e](https://github.com/NervJS/taro/commit/37af02e))
+* **mini-runner:** 修复引用 npm 中组件间存在依赖时依赖路径解析错误的问题 ([27612a3](https://github.com/NervJS/taro/commit/27612a3))
+* **mini-runner:** 加上文件编译提示 ([4597d1a](https://github.com/NervJS/taro/commit/4597d1a))
+* **taro:** 小程序 webpack 编译静态文件路径 ([2e13173](https://github.com/NervJS/taro/commit/2e13173))
+* **taro-quickapp:** 修复快应用事件绑定异常问题 ([3f1aa7d](https://github.com/NervJS/taro/commit/3f1aa7d))
+* **template:** 更新 Taro 2.0 的模版和下载地址 [#4837](https://github.com/NervJS/taro/issues/4837) ([71b34eb](https://github.com/NervJS/taro/commit/71b34eb))
+* pxtransform disable on quick-app ([2a26e20](https://github.com/NervJS/taro/commit/2a26e20))
+* **transformer:** 修复测试用例 ([5f78126](https://github.com/NervJS/taro/commit/5f78126))
+* **transformer:** 修复错误类型 ([f012d26](https://github.com/NervJS/taro/commit/f012d26))
+* **transformer:** 支持直接 import default ([62f71a5](https://github.com/NervJS/taro/commit/62f71a5))
+* **webpack:** 修复文件压缩的问题 ([a58909d](https://github.com/NervJS/taro/commit/a58909d))
+
+
+### Features
+
+* **taro-runner-utils:** 添加单元测试和优化注释 ([97a1642](https://github.com/NervJS/taro/commit/97a1642))
+* webpack-runner 和 mini-runner 代码优化 ([d799097](https://github.com/NervJS/taro/commit/d799097))
+* **cli:** cli 支持事件 && 小程序编译配置向 H5 看齐 ([13ab8b0](https://github.com/NervJS/taro/commit/13ab8b0))
+* **cli:** 借助 tapable 改造 ([b77f00a](https://github.com/NervJS/taro/commit/b77f00a))
+* **cli:** 增加 tapable 包 ([413f9f7](https://github.com/NervJS/taro/commit/413f9f7))
+* **cli:** 将 app/页面/组件 添加到入口文件进行编译 ([97cc0e1](https://github.com/NervJS/taro/commit/97cc0e1))
+* **cli:** 尝试接入 webpack 来编译各端小程序 ([338650a](https://github.com/NervJS/taro/commit/338650a))
+* **cli:** 拆分逻辑到 loader ([e5a9fca](https://github.com/NervJS/taro/commit/e5a9fca))
+* **cli:** 调整文件编译 ([f209936](https://github.com/NervJS/taro/commit/f209936))
+* **components-qa:** 增强快应用button组件,增加属性判断及点击变色等 ([#4882](https://github.com/NervJS/taro/issues/4882)) ([83322ec](https://github.com/NervJS/taro/commit/83322ec))
+* **docs:** 更新 2.0 版本使用 async-await 的文档 [#4837](https://github.com/NervJS/taro/issues/4837) ([6ccfe83](https://github.com/NervJS/taro/commit/6ccfe83))
+* **mini-runner:** 优化 watch ([07134d7](https://github.com/NervJS/taro/commit/07134d7))
+* **mini-runner:** 保证快应用文件生成正确 ([236ebaa](https://github.com/NervJS/taro/commit/236ebaa))
+* **mini-runner:** 加入 watch ([678ddd4](https://github.com/NervJS/taro/commit/678ddd4))
+* **mini-runner:** 增加 Taro 模块专有处理插件 ([2ea3205](https://github.com/NervJS/taro/commit/2ea3205))
+* **mini-runner:** 支持与原生小程序代码混写 ([56369d4](https://github.com/NervJS/taro/commit/56369d4))
+* **mini-runner:** 支持分包 ([6abb72b](https://github.com/NervJS/taro/commit/6abb72b))
+* **mini-runner:** 支持编译 tabBar 上引用的资源编译 ([43a129a](https://github.com/NervJS/taro/commit/43a129a))
+* **mini-runner:** 生成快应用页面及组件 ([4fd3152](https://github.com/NervJS/taro/commit/4fd3152))
+* **taro:** cli 配合 mini-runner 重构 && 支持使用 mini-runner 编译插件 ([f80016f](https://github.com/NervJS/taro/commit/f80016f))
+* **taro-cli:** 配置文件分开存放,优化 taro config 输出 ([860c3b9](https://github.com/NervJS/taro/commit/860c3b9))
+* **taro-runner-utils:** 添加 [@tarojs](https://github.com/tarojs)/runner-utils 包 ([201a991](https://github.com/NervJS/taro/commit/201a991))
+* audio context ([2796e46](https://github.com/NervJS/taro/commit/2796e46))
+* mock for quickapp ([a26c41a](https://github.com/NervJS/taro/commit/a26c41a))
+* stop trans asset for quickapp ([dbc27c5](https://github.com/NervJS/taro/commit/dbc27c5))
+* **taro:** 加入快应用编译支持 ([0d7e5c8](https://github.com/NervJS/taro/commit/0d7e5c8))
+* **taro:** 调整小程序和 H5 的编译配置 ([0b47af5](https://github.com/NervJS/taro/commit/0b47af5))
+* **taro-cli:** 调整 rn 编译配置 ([8578d17](https://github.com/NervJS/taro/commit/8578d17))
+* **taro-mini-runner:** 优化文件生成 ([65c699d](https://github.com/NervJS/taro/commit/65c699d))
+* **taro-mini-runner:** 如果是组件需要补充 component:true 配置 ([302e878](https://github.com/NervJS/taro/commit/302e878))
+* **taro-mini-runner:** 引入拆分的公共 chunks ([1041ffe](https://github.com/NervJS/taro/commit/1041ffe))
+* **taro-mini-runner:** 拆分文件编译成为 plugin ([8eb3d43](https://github.com/NervJS/taro/commit/8eb3d43))
+* **taro-mini-runner:** 生成多端类型文件 ([9029d25](https://github.com/NervJS/taro/commit/9029d25))
+* **taro-mini-runner:** 生成页面以及组件的 usingComponents 配置 ([15dede3](https://github.com/NervJS/taro/commit/15dede3))
+* checkout from auto-docs ([b0ec706](https://github.com/NervJS/taro/commit/b0ec706))
diff --git a/README.md b/README.md
index 3e8f217b0a6f..2936addc1161 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,12 @@
> 👽 Taro['tɑ:roʊ],泰罗·奥特曼,宇宙警备队总教官,实力最强的奥特曼。
+## 版本
+
+
当前 2.0 版本处在 beta 测试阶段,可能存在些许问题,若想稳定使用,请安装至 1.3.31 版本
+
+[1.x 版本文档](https://nervjs.github.io/taro/docs/1.3.29/README.html)
+
## 简介
**Taro** 是一套遵循 [React](https://reactjs.org/) 语法规范的 **多端开发** 解决方案。现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务同时在不同的端都要求有所表现的时候,针对不同的端编写多套代码的成本显然非常高,这时只编写一套代码就能适配到多端的能力就显得极为重要。
@@ -132,9 +138,9 @@ Taro 方案的初心就是为了打造一个多端开发的解决方案。目前
## 特别鸣谢
-[![nanjingboy](https://avatars1.githubusercontent.com/u/1390888?s=100&v=4)](https://github.com/nanjingboy/) | [![jsNewbee](https://avatars3.githubusercontent.com/u/20449400?s=100&v=4)](https://github.com/js-newbee/) | [![Qiyu8](https://avatars2.githubusercontent.com/u/15245051?s=100&v=4)](https://github.com/Qiyu8/)
-:---:|:---:|:---:
-[nanjingboy](https://github.com/nanjingboy/) | [jsNewbee](https://github.com/js-newbee/) | [Qiyu8](https://github.com/Qiyu8/)
+[![nanjingboy](https://avatars1.githubusercontent.com/u/1390888?s=100&v=4)](https://github.com/nanjingboy/) | [![jsNewbee](https://avatars3.githubusercontent.com/u/20449400?s=100&v=4)](https://github.com/js-newbee/) | [![Qiyu8](https://avatars2.githubusercontent.com/u/15245051?s=100&v=4)](https://github.com/Qiyu8/) | [![Hanqin](https://avatars3.githubusercontent.com/u/6348297?s=100&v=4)](https://github.com/shenghanqin/)
+:---:|:---:|:---:|:---:
+[nanjingboy](https://github.com/nanjingboy/) | [jsNewbee](https://github.com/js-newbee/) | [Qiyu8](https://github.com/Qiyu8/)| [Hanqin](https://github.com/shenghanqin/)
## 贡献者们
diff --git a/build/docs.js b/build/docs.js
index 18929e5f8221..2247108f1378 100644
--- a/build/docs.js
+++ b/build/docs.js
@@ -3,8 +3,18 @@ const ghPages = require('gh-pages')
const ora = require('ora')
const spinner = ora('Publishing gitbooks...').start()
-cp.exec('npm run docs', err => {
- if (!err) {
+const docs = cp.spawn('npm', ['run', 'docs'])
+
+docs.stdout.on('data', data => {
+ console.log(data)
+})
+
+docs.stderr.on('data', data => {
+ console.error(data)
+})
+
+docs.on('close', code => {
+ if (code === 0) {
ghPages.publish('./website/build/taro', err => {
if (!err) {
spinner.succeed('Publish successfully.')
@@ -13,6 +23,10 @@ cp.exec('npm run docs', err => {
}
})
} else {
- spinner.fail(err)
+ spinner.fail(`文档站点编译出错,出错码 ${code}`)
}
})
+
+docs.on('error', error => {
+ console.log(error)
+})
diff --git a/docs/README.md b/docs/README.md
index de3f9da5b5e4..5dff200eabbc 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -2,6 +2,8 @@
title: Taro 介绍
---
+> 这是 Taro 2.x 版本的文档,若要查看 1.x 版本的文档,请[点击这里选择版本](/taro/versions.html)。
+
## 简介
**Taro** 是一套遵循 [React](https://reactjs.org/) 语法规范的 **多端开发** 解决方案。
diff --git a/docs/async-await.md b/docs/async-await.md
index 35e29fb50858..46df985322c6 100644
--- a/docs/async-await.md
+++ b/docs/async-await.md
@@ -2,19 +2,40 @@
title: 异步编程
---
-Taro 支持使用 `async functions` 来让开发者获得不错的异步编程体验,开启 `async functions` 支持需要安装包 `@tarojs/async-await`
+> Taro 2.x 版本中使用 `async-await` 不再需要 `@tarojs/async-await`。
+
+Taro 支持使用 `async functions` 来让开发者获得不错的异步编程体验,开启 `async functions` 支持需要安装包 `babel-plugin-transform-runtime` 和 `babel-runtime`。
```bash
-$ yarn add @tarojs/async-await
-# 或者使用 npm
-$ npm install --save @tarojs/async-await
+$ yarn add babel-plugin-transform-runtime --dev
+$ yarn add babel-runtime
```
-随后在项目入口文件 `app.js` 中直接 `import` ,就可以开始使用 `async functions` 功能了
+随后修改项目 [`babel` 配置](./config-detail.md#babel),增加插件 `babel-plugin-transform-runtime`。
-```javascript
-// src/app.js
-import '@tarojs/async-await'
+```js
+babel: {
+ sourceMap: true,
+ presets: [
+ [
+ 'env',
+ {
+ modules: false
+ }
+ ]
+ ],
+ plugins: [
+ 'transform-decorators-legacy',
+ 'transform-class-properties',
+ 'transform-object-rest-spread',
+ ['transform-runtime', {
+ "helpers": false,
+ "polyfill": false,
+ "regenerator": true,
+ "moduleName": 'babel-runtime'
+ }]
+ ]
+}
```
-> 值得注意的事,使用 `@tarojs/async-await` 一定要记得按照[开发前注意](./before-dev-remind.md)中提示的内容进行操作,否则会出现报错
+> 值得注意的事,使用 `async functions` 一定要记得按照[开发前注意](./before-dev-remind.md)中提示的内容进行操作,否则会出现报错
diff --git a/docs/components/forms/button.md b/docs/components/forms/button.md
index d4c25a854391..4ee472c692f8 100755
--- a/docs/components/forms/button.md
+++ b/docs/components/forms/button.md
@@ -7,17 +7,17 @@ sidebar_label: Button
> 属性及支持度
-| H5 | ReactNative| 属性名 | 类型 | 默认值 | 说明 |
-| :-: | :-: | :- | :- | :- | :- |
-| ✔ | ✔ | type | String | default | 按钮的样式类型 |
-| ✔ | ✔ | size | String | default | 按钮的大小 px |
-| ✔ | ✔ | plain | Boolean | false | 按钮是否镂空,背景色透明 |
-| ✔ | ✔ | disabled | Boolean | false | 是否禁用 |
-| ✔ | ✔ | loading | Boolean | false | 名称前是否带 loading 图标 |
-| ✔ | X (支持 hoverStyle 属性,但框架未支持 hoverClass) | hoverClass | String | button-hover | 指定按钮按下去的样式类。当 hover-class='none' 时,没有点击态效果 |
-| ✔ | ✔ | hoverStartTime | Number | 20 | 按住后多久出现点击态,单位毫秒 |
-| ✔ | ✔ | hoverStayTime | Number | 70 | 手指松开后点击态保留时间,单位毫秒 |
-| X | X | onGetUserInfo | Handler | | 微信小程序open-type='getUserInfo'时,用户点击该按钮,会返回获取到的用户信息,从返回参数的 detail 中获取到的值同 wx.getUserInfo |
+| H5 | ReactNative| Quickapp| 属性名 | 类型 | 默认值 | 说明 |
+| :-: | :-: | :-: | :- | :- | :- | :- |
+| ✔ | ✔ | ✔ | type | String | default | 按钮的样式类型 |
+| ✔ | ✔ | ✔ | size | String | default | 按钮的大小 px |
+| ✔ | ✔ | ✔ | plain | Boolean | false | 按钮是否镂空,背景色透明 |
+| ✔ | ✔ | ✔ | disabled | Boolean | false | 是否禁用 |
+| ✔ | ✔ | ✔ | loading | Boolean | false | 名称前是否带 loading 图标 |
+| ✔ | X (支持 hoverStyle 属性,但框架未支持 hoverClass) | X(支持 active 伪类状态变化) | hoverClass | String | button-hover | 指定按钮按下去的样式类。当 hover-class='none' 时,没有点击态效果 |
+| ✔ | ✔ | X | hoverStartTime | Number | 20 | 按住后多久出现点击态,单位毫秒 |
+| ✔ | ✔ | X | hoverStayTime | Number | 70 | 手指松开后点击态保留时间,单位毫秒 |
+| X | X | X | onGetUserInfo | Handler | | 微信小程序open-type='getUserInfo'时,用户点击该按钮,会返回获取到的用户信息,从返回参数的 detail 中获取到的值同 wx.getUserInfo |
>其他相关属性请看各小程序官方文档
diff --git a/docs/config-detail.md b/docs/config-detail.md
index 8c42a588c205..32a7dc60416b 100644
--- a/docs/config-detail.md
+++ b/docs/config-detail.md
@@ -16,9 +16,41 @@ title: 编译配置详情
## plugins
-`plugins` 用来设置一些各个端通用的编译过程配置,例如 `babel` 配置,JS/CSS 压缩配置等。
+`plugins` 用来设置编译过程插件,插件机制基于 实现,目前暴露了两个钩子 `beforeBuild` 和 `afterBuild`
-### plugins.babel
+其中,`beforeBuild` 将在整体编译前触发,可以获取到编译的相关配置,同时也能进行修改
+
+`afterBuild` 将在 webpack 编译完后执行,可以获取到编译后的结果
+
+具体使用方式如下:
+
+首先定义一个插件
+
+```js
+class BuildPlugin {
+ apply (builder) {
+ builder.hooks.beforeBuild.tap('BuildPlugin', (config) => {
+ console.log(config)
+ })
+
+ builder.hooks.afterBuild.tap('BuildPlugin', (stats) => {
+ console.log(stats)
+ })
+ }
+}
+```
+
+接下来在 `plugins` 字段中进行配置
+
+```js
+{
+ plugins: [
+ new BuildPlugin()
+ ]
+}
+```
+
+## babel
用来配置 `babel`,默认配置如下,可以自行添加自己需要的额外的 `presets` 及 `plugins`。
@@ -36,9 +68,9 @@ babel: {
}
```
-### plugins.uglify
+## uglify
-用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `plugins.uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `plugins.uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
+用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
```jsx
uglify: {
@@ -49,9 +81,9 @@ uglify: {
}
```
-### plugins.csso
+## csso
-用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `plugins.csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `plugins.csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
+用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
```jsx
csso: {
@@ -62,7 +94,8 @@ csso: {
}
```
-### plugins.sass
+## sass
+
用来配置 `sass` 工具,设置打包过程中的 SCSS 代码编译。
具体配置可以参考[node-sass](https://www.npmjs.com/package/node-sass)
当需要全局注入scss文件时,可以添加三个额外参数:`resource` 、 `projectDirectory` (v1.2.25开始支持)、`data`(v1.3.0开始支持),具体配置方式如下:
@@ -145,11 +178,11 @@ env: {
## defineConstants
-用来配置一些全局变量供代码中进行使用,例如:
+用来配置一些全局变量供代码中进行使用,配置方式与 [Webpack DefinePlugin](https://webpack.js.org/plugins/define-plugin/) 类似,例如:
```js
defineConstants: {
- A: '"a"' // JSON.stringify('a')
+ A: JSON.stringify('a') // '"a"'
}
```
@@ -237,35 +270,200 @@ copy: {
}
```
-## weapp
+## mini
专属于小程序的配置。
-### weapp.compile
+### mini.compile
小程序编译过程的相关配置。
-#### weapp.compile.compressTemplate
+#### mini.compile.compressTemplate
决定小程序打包时是否需要压缩 wxml
-#### weapp.compile.exclude
+#### mini.compile.exclude
配置小程序编译过程中排除不需要经过 Taro 编译的文件,数组类型,写文件路径,文件路径必须以源码所在 `src` 目录开头:
```jsx
-weapp: {
+mini: {
compile: {
exclude: ['src/components/ec-canvas/echarts.js']
}
}
```
-### weapp.module
+### mini.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 raw-loader 的例子,用于在项目中直接引用 md 文件
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /\.md$/,
+ use: [{
+ loader: 'raw-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+#### mini.commonChunks
+
+配置打包时抽离的公共文件,如果是普通编译,则默认值为 `['runtime', 'vendors']`,如果是编译为微信小程序插件,则默认值为 `['plugin/runtime', 'plugin/vendors']`。
+
+`commonChunks` 的配置值主要依据 webpack 配置 [`optimization.runtimeChunk`](https://webpack.js.org/configuration/optimization/#optimizationruntimechunk) 和 [`optimization.splitChunks`](https://webpack.js.org/plugins/split-chunks-plugin/),Taro 中默认的配置分别为
+
+
+```javascript
+optimization: {
+ runtimeChunk: {
+ name: 'runtime'
+ },
+ splitChunks: {
+ chunks: 'all',
+ maxInitialRequests: Infinity,
+ minSize: 0,
+ name: 'vendors',
+ cacheGroups: {
+ vendors: {
+ test (module) {
+ return /[\\/]node_modules[\\/]/.test(module.resource) && module.miniType !== PARSE_AST_TYPE.COMPONENT
+ }
+ }
+ }
+ }
+}
+```
+
+如果有自行拆分公共文件的需求,请先通过 `webpackChain` 配置覆盖 `optimization.runtimeChunk` 与 `optimization.splitChunks` 配置,再通过 `commonChunks` 配置指定的公共入口文件。
+
+### mini.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### mini.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### mini.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### mini.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### mini.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### mini.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### mini.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.imageUrlLoaderOption
-配置一些小程序端用到的插件模块配置,例如 `postcss` 等。
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
-#### weapp.module.postcss
+### mini.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+}
+```
+
+### mini.postcss
配置 `postcss` 相关插件:
@@ -399,36 +597,6 @@ h5 编译后的静态文件目录。
}
```
-### [DEPRECATED]h5.webpack
-
-自定义 Webpack 配置。这个配置项支持两种形式的配置:
-
-1. 如果该配置项以**对象**的形态呈现,Taro 将会使用 `webpack-merge` 将这个对象合并到默认的配置项中。
-例子:
-
-```jsx
-webpack: {
- resolve: {
- alias: {
- 'test': './test'
- }
- }
-}
-```
-
-2. 如果该配置以**函数**的形态呈现,那这个函数将会接收到两个参数:默认配置(defaultConfig)和 Webpack 实例(webpack)。Taro 将会以该函数的返回值作为最终的 Webpack 配置。
-
-例子:
-
-```jsx
-webpack (defaultConfig, webpack) {
- defaultConfig.plugins.push(
- new webpack.EnvironmentPlugin(['NODE_ENV'])
- )
- return defaultConfig
-}
-```
-
### h5.router
路由相关的配置,支持路由模式、路由基准路径以及自定义路由的配置。
@@ -634,11 +802,11 @@ stylus-loader 的附加配置。配置项参考[官方文档](https://github.com
}
```
-### h5.module
+### h5.postcss
-配置一些 H5 端用到的插件模块配置,暂时只有 `postcss`。
+配置 H5 的 `postcss` 插件。
-#### h5.module.postcss.autoprefixer
+#### h5.postcss.autoprefixer
可以进行 `autoprefixer` 的配置。配置项参考[官方文档](https://github.com/postcss/autoprefixer),例如:
@@ -653,7 +821,7 @@ postcss: {
}
```
-#### h5.module.postcss.pxtransform
+#### h5.postcss.pxtransform
可以进行 `pxtransform` 的配置。配置项参考[官方文档](https://github.com/Pines-Cheng/postcss-pxtransform/),例如:
@@ -668,7 +836,7 @@ postcss: {
}
```
-#### h5.module.postcss.cssModules
+#### h5.postcss.cssModules
可以进行 H5 端 CSS Modules 配置,配置如下:
diff --git a/docs/config.md b/docs/config.md
index da63b54c22d9..6b2d95cbb7fa 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -22,14 +22,14 @@ const config = {
sourceRoot: 'src',
// 项目产出目录
outputRoot: 'dist',
- // 通用插件配置
- plugins: {
- babel: {
- sourceMap: true,
- presets: ['env'],
- plugins: ['transform-class-properties', 'transform-decorators-legacy', 'transform-object-rest-spread']
- }
+ // babel 编译配置
+ babel: {
+ sourceMap: true,
+ presets: ['env'],
+ plugins: ['transform-class-properties', 'transform-decorators-legacy', 'transform-object-rest-spread']
},
+ // 编译插件配置
+ plugins: [],
// 全局变量设置
defineConstants: {},
// 文件 copy 配置
@@ -40,18 +40,16 @@ const config = {
}
},
// 小程序端专用配置
- weapp: {
- module: {
- postcss: {
- autoprefixer: {
- enable: true
- },
- // 小程序端样式引用本地资源内联配置
- url: {
- enable: true,
- config: {
- limit: 10240
- }
+ mini: {
+ postcss: {
+ autoprefixer: {
+ enable: true
+ },
+ // 小程序端样式引用本地资源内联配置
+ url: {
+ enable: true,
+ config: {
+ limit: 10240
}
}
},
@@ -63,11 +61,9 @@ const config = {
h5: {
publicPath: '/',
staticDirectory: 'static',
- module: {
- postcss: {
- autoprefixer: {
- enable: true
- }
+ postcss: {
+ autoprefixer: {
+ enable: true
}
},
// 自定义 Webpack 配置
diff --git a/docs/debug-config.md b/docs/debug-config.md
new file mode 100644
index 000000000000..238e792e9e7a
--- /dev/null
+++ b/docs/debug-config.md
@@ -0,0 +1,99 @@
+---
+title: 单步调测配置
+---
+
+> 通过本身 `VSCode` 提供的跨平台代码单步调测能力,能够极大提升基于 `Taro` 开发框架的应用开发速度,因其他平台已有比较成熟的工具可以使用,着重降低 Windows 平台配置复杂度。
+
+## 一、开发环境搭建
+
+首先准备 `Taro` 在 Windows 下的基础开发环境,详情如下(已有开发环境可略过):
+
+#### 1. 安装 Node.js
+建议安装 `10.15` 以上版本,官方下载地址:[Node.js](https://nodejs.org/dist/v12.14.0/node-v12.14.0-x64.msi " node.js")
+
+#### 2. 安装 VSCode
+
+安装完最新 `VSCode` 后,建议安装如下插件:
+- `ESlint` — 代码规范
+- `TSlint` — 语法检查
+
+#### 3. Taro 源码下载
+下载地址:[Taro](https://github.com/NervJS/taro.git "Taro"),默认为 2.x 分支,如有需要,请切换到开发分支
+
+#### 4. 全局安装 Node-sass 、Lerna 和 Rollup
+```shell
+npm i -g node-sass --sass_binary site=https://npm.taobao.org/mirrors/node_sass/
+yarn global add lerna
+yarn global add rollup
+```
+> Node-sass 比较特殊,建议提前进行安装,规避可能出现的各种异常错误。
+
+#### 5. 源码依赖安装
+1.使用 `VSCode` 打开 `Taro` 源码目录,在根目录下执行 `yarn` ,安装项目所需依赖库(首次安装所花时间较长,请耐心等待)
+
+2.待 `yarn` 执行完毕后,执行 `yarn bootstrap` 解析子包之间的依赖关系
+
+## 二、单步调试配置
+
+#### 1. 拷贝测试项目
+进入 `taro cli` 目录,将需要调试的测试项目拷贝至根目录,以测试项目命名 `test` 为例
+
+#### 2. 在测试项目中添加 `js` 入口
+进入测试项目根目录,新增 `debug.js` 调试入口文件,文件内容如下:
+```javascript
+const Builder = require('../dist/build').default
+const appPath = process.cwd()
+const builder = new Builder(appPath)
+
+builder.build({
+ type: 'weapp',
+ watch: 'watch'
+ })
+```
+> 调试入口文件名可自定义设置
+
+#### 3. 增加 VSCode 调试参数配置
+打开 `taro cli` 所在 Windows 文件夹,进入目录下的 `.vscode` 子目录,在 `lanuch.json` 文件中新增调试入口参数,设置如下:
+```shell
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "node",
+ "name": "debug.js",
+ "request": "launch",
+ "sourceMaps": true,
+ "args": [
+ "--runInBand",
+ "-r",
+ "ts-node/register"
+ ],
+ "cwd": "${workspaceFolder}/packages/taro-cli/debug",
+ "console": "integratedTerminal",
+ "internalConsoleOptions": "neverOpen",
+ "program": "${workspaceFolder}/packages/taro-cli/test/debug.js"
+ }
+ ]
+}
+```
+> 若 `.vscode` 目录或 `lanuch.json` 文件不存在,需手动创建;同时 `name` 、`cwd` 、`program` 三个参数根据测试项目的实际名称、目录进行调整
+
+#### 2. 编译子包
+在 `node.js` 调试过程中只能调用 `js` 文件,调试过程所依赖的 `taro` 子模块,需要进入子模块根目录,执行编译命令,将 `ts` 代码编译打包成 `js` 代码之后,才能进行调试,主要编译如下关键子包:
+
+| 模块名称 | 功能描述 | 编译方式 |
+| :------------ |:---------------:| -----:|
+| taro-cli | Taro开发工具转换总入口 | yarn dev |
+| taroize | Taro小程序编译器,主要负责小程序转Taro | yarn dev |
+| taro-mini-runner | Taro编译时,webpack插件化管理打包任务 | yarn dev |
+| taro-transformer-wx | Taro解析模块,解析AST目录树 | yarn dev |
+
+#### 3.链接未发布的库
+为了测试代码更改效果,或依赖未正式发布的包,可通过软链接的方式,将最新代码链接到测试目录下进行测试,同时保持子模块的 `watch` 状态,可以实时更新修改代码,此处以 `taro-mini-runner` 举例:
+
+1.首先进入 `taro-mini-runner` 根目录,执行 `yarn link` 命令
+
+2.进入测试项目 `test` 的根目录,执行 `Debug and Run` , `yarn link taro-mini-runner` 命令进行软链接
+
+#### 4.启动调试
+在编译后的 `js` 文件中打断点,在 `VSCode` 左侧按钮列表中,选择启动调试 `Debug and Run` 按钮,在出现的选择框列表中,选择需要启动的测试项目,启动调试,即可开始单步调试。
\ No newline at end of file
diff --git a/docs/react-native.md b/docs/react-native.md
index 040317267b0a..e3dc17d6cec9 100644
--- a/docs/react-native.md
+++ b/docs/react-native.md
@@ -5,6 +5,8 @@ title: React Native 端开发流程
> 本篇主要讲解 Taro React Native 端 环境安装-开发-调试-打包-发布 原理及流程,React Native 开发前注意事项请看 [开发前注意](./before-dev-remind.html)
>
> 适配 RN 端可参考项目:[首个 Taro 多端统一实例 - 网易严选(小程序 + H5 + React Native) - By 趣店 FED](https://github.com/js-newbee/taro-yanxuan)
+>
+>Taro 从 2.0 开始,依赖的 React Native 版本由 0.55.4 升级为 0.59.9。
## 简介
diff --git a/lerna.json b/lerna.json
index 94f49f1b165e..829306494b29 100644
--- a/lerna.json
+++ b/lerna.json
@@ -30,7 +30,9 @@
"packages/taro-quickapp",
"packages/taro-qq",
"packages/taro-jd",
+ "packages/taro-runner-utils",
"packages/taro-webpack-runner",
+ "packages/taro-mini-runner",
"packages/postcss-plugin-constparse",
"packages/eslint-config-taro",
"packages/eslint-plugin-taro",
@@ -54,6 +56,6 @@
"message": "chore(release): publish %s"
}
},
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"npmClient": "npm"
}
diff --git a/package.json b/package.json
index 12839a36e0c5..c91f49309aaf 100644
--- a/package.json
+++ b/package.json
@@ -93,7 +93,7 @@
"rollup-plugin-buble": "^0.19.2",
"rollup-plugin-commonjs": "^9.1.0",
"rollup-plugin-node-resolve": "^3.3.0",
- "rollup-plugin-postcss": "^1.6.1",
+ "rollup-plugin-postcss": "^2.0.3",
"sass-loader": "^6.0.7",
"shelljs": "^0.8.1",
"style-loader": "^0.20.3",
diff --git a/packages/babel-plugin-transform-jsx-to-stylesheet/package.json b/packages/babel-plugin-transform-jsx-to-stylesheet/package.json
index e2e4cb8e2696..cd7f6bf18f3b 100644
--- a/packages/babel-plugin-transform-jsx-to-stylesheet/package.json
+++ b/packages/babel-plugin-transform-jsx-to-stylesheet/package.json
@@ -1,6 +1,6 @@
{
"name": "babel-plugin-transform-jsx-to-stylesheet",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Transform stylesheet selector to style in JSX Elements.",
"license": "MIT",
"main": "src/index.js",
diff --git a/packages/babel-plugin-transform-taroapi/package.json b/packages/babel-plugin-transform-taroapi/package.json
index 16b5059b0bbd..5b732bc56b03 100644
--- a/packages/babel-plugin-transform-taroapi/package.json
+++ b/packages/babel-plugin-transform-taroapi/package.json
@@ -1,6 +1,6 @@
{
"name": "babel-plugin-transform-taroapi",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"main": "dist/index.js",
"license": "MIT",
"scripts": {
@@ -10,7 +10,7 @@
"test": "jest"
},
"devDependencies": {
- "@tarojs/taro-h5": "1.3.34",
+ "@tarojs/taro-h5": "2.0.0-beta.13",
"@types/babel-core": "^6.25.5",
"@types/babel-traverse": "^6.25.4",
"@types/babel-types": "^7.0.4",
diff --git a/packages/css-to-react-native/package.json b/packages/css-to-react-native/package.json
index 2c3a954b2aad..6017fb6db1d4 100644
--- a/packages/css-to-react-native/package.json
+++ b/packages/css-to-react-native/package.json
@@ -1,7 +1,7 @@
{
"name": "taro-css-to-react-native",
"description": "Convert CSS text to a React Native stylesheet object",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"main": "dist/index.js",
"license": "MIT",
"scripts": {
diff --git a/packages/eslint-config-taro/package.json b/packages/eslint-config-taro/package.json
index 450dedff6b49..2e9a16f56889 100644
--- a/packages/eslint-config-taro/package.json
+++ b/packages/eslint-config-taro/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-config-taro",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro specific linting rules for ESLint",
"main": "index.js",
"files": [
@@ -28,6 +28,6 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "eslint-plugin-taro": "1.3.34"
+ "eslint-plugin-taro": "2.0.0-beta.13"
}
}
diff --git a/packages/eslint-plugin-taro/package.json b/packages/eslint-plugin-taro/package.json
index a5dca8573d70..82fef4280ccb 100644
--- a/packages/eslint-plugin-taro/package.json
+++ b/packages/eslint-plugin-taro/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-plugin-taro",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro specific linting plugin for ESLint",
"main": "index.js",
"files": [
diff --git a/packages/postcss-plugin-constparse/package.json b/packages/postcss-plugin-constparse/package.json
index c61b7bc46a56..d491a52921be 100644
--- a/packages/postcss-plugin-constparse/package.json
+++ b/packages/postcss-plugin-constparse/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-plugin-constparse",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "parse constants defined in config",
"main": "index.js",
"author": "Simba",
diff --git a/packages/postcss-pxtransform/package.json b/packages/postcss-pxtransform/package.json
index e06a3971dad4..873733b55641 100644
--- a/packages/postcss-pxtransform/package.json
+++ b/packages/postcss-pxtransform/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-pxtransform",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "PostCSS plugin px 转小程序 rpx及h5 rem 单位",
"keywords": [
"postcss",
diff --git a/packages/postcss-unit-transform/package.json b/packages/postcss-unit-transform/package.json
index 74357f25e1d4..97946ce6a6c9 100644
--- a/packages/postcss-unit-transform/package.json
+++ b/packages/postcss-unit-transform/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-taro-unit-transform",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "小程序单位转换",
"main": "index.js",
"scripts": {
diff --git a/packages/stylelint-config-taro-rn/package.json b/packages/stylelint-config-taro-rn/package.json
index 4342c8990010..0e940ecced5a 100644
--- a/packages/stylelint-config-taro-rn/package.json
+++ b/packages/stylelint-config-taro-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "stylelint-config-taro-rn",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Shareable stylelint config for React Native CSS modules",
"main": "index.js",
"files": [
@@ -28,6 +28,6 @@
"jest": "^23.6.0",
"npmpub": "^4.1.0",
"stylelint": "9.3.0",
- "stylelint-taro-rn": "1.3.34"
+ "stylelint-taro-rn": "2.0.0-beta.13"
}
}
diff --git a/packages/stylelint-taro-rn/package.json b/packages/stylelint-taro-rn/package.json
index 7a6d038da441..58efc5afd704 100644
--- a/packages/stylelint-taro-rn/package.json
+++ b/packages/stylelint-taro-rn/package.json
@@ -1,7 +1,7 @@
{
"name": "stylelint-taro-rn",
"description": "A collection of React Native specific rules for stylelint",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"main": "dist/index.js",
"babel": {
"presets": [
@@ -84,7 +84,7 @@
"babel-core": "^6.26.3",
"babel-plugin-istanbul": "^5.1.0",
"babel-preset-es2015": "^6.24.1",
- "babel-preset-jest": "23.2.0",
+ "babel-preset-jest": "25.0.0",
"coveralls": "^3.0.2",
"eslint": "^5.9.0",
"eslint-config-stylelint": "^11.0.0",
diff --git a/packages/taro-alipay/package.json b/packages/taro-alipay/package.json
index 42b2d1684433..72a0cb1e5d40 100644
--- a/packages/taro-alipay/package.json
+++ b/packages/taro-alipay/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-alipay",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro alipay framework",
"main": "index.js",
"files": [
@@ -24,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-async-await/package.json b/packages/taro-async-await/package.json
index 523e17df6f84..1e1cd2dc9341 100644
--- a/packages/taro-async-await/package.json
+++ b/packages/taro-async-await/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/async-await",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "taro async await",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-cli/bin/taro b/packages/taro-cli/bin/taro
index abd2d2d4ddf4..3399b611dca0 100755
--- a/packages/taro-cli/bin/taro
+++ b/packages/taro-cli/bin/taro
@@ -1,9 +1,10 @@
#! /usr/bin/env node
const program = require('commander')
-const { getPkgVersion, printPkgVersion } = require('../dist/util')
+const { getPkgVersion, printPkgVersion, printVersionTip } = require('../dist/util')
printPkgVersion()
+printVersionTip()
program
.version(getPkgVersion())
diff --git a/packages/taro-cli/bin/taro-build b/packages/taro-cli/bin/taro-build
index 08d2ea63afc2..e08cc1e56841 100755
--- a/packages/taro-cli/bin/taro-build
+++ b/packages/taro-cli/bin/taro-build
@@ -5,7 +5,7 @@ const program = require('commander')
const chalk = require('chalk')
const _ = require('lodash')
-const build = require('../dist/build').default
+const Builder = require('../dist/build').default
const { PROJECT_CONFIG, BUILD_TYPES } = require('../dist/util/constants')
const appPath = process.cwd()
const projectConfPath = path.join(appPath, PROJECT_CONFIG)
@@ -37,10 +37,13 @@ if (env) {
process.env.NODE_ENV = 'production'
}
}
+process.env.TARO_ENV = type
+
+const builder = new Builder(appPath)
if (ui) {
console.log(chalk.green(`开始编译 UI 库`))
- build(appPath, {
+ builder.build({
type: 'ui',
watch,
uiIndex
@@ -52,7 +55,7 @@ if (plugin) {
if (typeof plugin === 'boolean') {
plugin = BUILD_TYPES.WEAPP
}
- build(appPath, {
+ builder.build({
type: BUILD_TYPES.PLUGIN,
platform: plugin,
watch
@@ -65,8 +68,6 @@ if (!fs.existsSync(projectConfPath)) {
process.exit(1)
}
-process.env.TARO_ENV = type
-
const projectConf = require(projectConfPath)(_.merge)
if (typeof page === 'string') {
console.log(chalk.green(`开始编译页面 ${chalk.bold(page)}`))
@@ -76,7 +77,7 @@ if (typeof page === 'string') {
console.log(chalk.green(`开始编译项目 ${chalk.bold(projectConf.projectName)}`))
}
-build(appPath, {
+builder.build({
type,
watch,
port: typeof port === 'string' ? port: undefined,
diff --git a/packages/taro-cli/bin/taro-config b/packages/taro-cli/bin/taro-config
index 79b19239901e..d81b6c0bf271 100755
--- a/packages/taro-cli/bin/taro-config
+++ b/packages/taro-cli/bin/taro-config
@@ -4,6 +4,8 @@ const program = require('commander')
const helper = require('../dist/taro-config')
program
+ .name('taro config')
+ .usage(' [options]')
.option('--json', '以 JSON 形式输出')
.on('--help', function () {
console.log('')
@@ -22,15 +24,15 @@ const [cmd, key, value] = args
switch (cmd) {
case 'get':
- if (!key) return
+ if (!key) return console.log('Usage: taro config get foo')
helper.get(key)
break
case 'set':
- if (!key || !value) return
+ if (!key || !value) return console.log('Usage: taro config set foo bar')
helper.set(key, value)
break
case 'delete':
- if (!key) return
+ if (!key) return console.log('Usage: taro config delete foo')
helper.deleteKey(key)
break
case 'list':
@@ -38,5 +40,6 @@ switch (cmd) {
helper.list(json)
break
default:
+ program.help()
break
}
diff --git a/packages/taro-cli/package.json b/packages/taro-cli/package.json
index e14b8e286a88..79edcb3c65ac 100644
--- a/packages/taro-cli/package.json
+++ b/packages/taro-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/cli",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "cli tool for taro",
"main": "index.js",
"scripts": {
@@ -40,8 +40,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taroize": "1.3.34",
- "@tarojs/transformer-wx": "1.3.34",
+ "@tarojs/taroize": "2.0.0-beta.13",
+ "@tarojs/transformer-wx": "2.0.0-beta.13",
"@types/request": "^2.48.1",
"@typescript-eslint/parser": "^2.0.0",
"adm-zip": "^0.4.13",
@@ -54,7 +54,7 @@
"babel-plugin-remove-dead-code": "^1.3.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-define": "^1.3.0",
- "babel-plugin-transform-jsx-to-stylesheet": "1.3.34",
+ "babel-plugin-transform-jsx-to-stylesheet": "2.0.0-beta.13",
"babel-plugin-transform-react-jsx": "^6.24.1",
"babel-plugin-transform-taroapi": "1.3.15",
"babel-template": "^6.26.0",
@@ -70,21 +70,21 @@
"css-to-react-native-transform": "^1.4.0",
"css-what": "^3.2.0",
"download-git-repo": "^2.0.0",
- "ejs": "^2.6.1",
+ "ejs": "^3.0.1",
"envinfo": "^6.0.1",
"eslint": "^6.1.0",
- "eslint-config-taro": "1.3.34",
+ "eslint-config-taro": "2.0.0-beta.13",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-react": "^7.4.0",
"eslint-plugin-react-hooks": "^1.6.1",
- "eslint-plugin-taro": "1.3.34",
+ "eslint-plugin-taro": "2.0.0-beta.13",
"eslint-plugin-typescript": "^0.12.0",
"fbjs": "^1.0.0",
"find-yarn-workspace-root": "1.2.1",
"fs-extra": "^5.0.0",
"generic-names": "^2.0.1",
"glob": "^7.1.2",
- "inquirer": "^7.0.0",
+ "inquirer": "^5.2.0",
"joi": "^14.0.6",
"klaw": "^3.0.0",
"latest-version": "^4.0.0",
@@ -96,11 +96,11 @@
"ora": "^2.0.0",
"postcss": "^6.0.22",
"postcss-modules-extract-imports": "^1.1.0",
- "postcss-modules-local-by-default": "^3.0.2",
+ "postcss-modules-local-by-default": "^1.2.0",
"postcss-modules-resolve-imports": "^1.3.0",
"postcss-modules-scope": "^1.1.0",
- "postcss-modules-values": "^3.0.0",
- "postcss-pxtransform": "1.3.34",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-pxtransform": "2.0.0-beta.13",
"postcss-reporter": "^6.0.1",
"postcss-taro-unit-transform": "1.2.15",
"postcss-url": "^7.3.2",
@@ -112,9 +112,10 @@
"semver": "^5.5.0",
"shelljs": "^0.8.1",
"stylelint": "9.3.0",
- "stylelint-config-taro-rn": "1.3.34",
- "stylelint-taro-rn": "1.3.34",
- "taro-css-to-react-native": "1.3.34",
+ "stylelint-config-taro-rn": "2.0.0-beta.13",
+ "stylelint-taro-rn": "2.0.0-beta.13",
+ "tapable": "^1.1.3",
+ "taro-css-to-react-native": "2.0.0-beta.13",
"through2": "^2.0.3",
"vinyl": "^2.1.0",
"vinyl-fs": "^3.0.2",
@@ -123,7 +124,7 @@
"yauzl": "2.10.0"
},
"devDependencies": {
- "@tarojs/taro": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
"@types/autoprefixer": "^9.1.1",
"@types/babel-core": "^6.25.5",
"@types/babel-generator": "^6.25.2",
@@ -135,7 +136,9 @@
"@types/klaw": "^3.0.0",
"@types/lodash": "^4.14.119",
"@types/node": "^10.12.18",
+ "@types/react": "^16.9.14",
"@types/shelljs": "^0.8.5",
+ "@types/tapable": "^1.0.4",
"babel-jest": "^23.6.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-preset-env": "^1.7.0",
@@ -144,7 +147,7 @@
"jest": "^23.6.0",
"jest-react-native": "^18.0.0",
"npm-run-all": "^4.1.5",
- "react-native": "^0.55.4",
+ "react-native": "^0.59.9",
"tslint": "^5.12.0",
"tslint-config-prettier": "^1.17.0",
"tslint-config-standard": "^8.0.1",
diff --git a/packages/taro-cli/src/build.ts b/packages/taro-cli/src/build.ts
index a4b0bd36f0b0..b6bdc57f7a55 100644
--- a/packages/taro-cli/src/build.ts
+++ b/packages/taro-cli/src/build.ts
@@ -1,131 +1,121 @@
import * as path from 'path'
import * as fs from 'fs-extra'
-import chalk from 'chalk'
+import { SyncHook, Hook } from 'tapable'
import * as _ from 'lodash'
+import chalk from 'chalk'
+import { IProjectConfig, ICommonPlugin } from '@tarojs/taro/types/compile'
-import * as Util from './util'
-import CONFIG from './config'
import { BUILD_TYPES, PROJECT_CONFIG } from './util/constants'
-import { IBuildConfig } from './util/types'
+import { IBuildOptions } from './util/types'
+import { emptyDirectory } from './util'
+import CONFIG from './config'
-export default async function build (appPath, buildConfig: IBuildConfig) {
- const { type, watch, platform, port, release, page, component, uiIndex } = buildConfig
- const configDir = require(path.join(appPath, PROJECT_CONFIG))(_.merge)
- const outputPath = path.join(appPath, configDir.outputRoot || CONFIG.OUTPUT_DIR)
- if (!fs.existsSync(outputPath)) {
- fs.ensureDirSync(outputPath)
- } else if (type !== BUILD_TYPES.H5 && (type !== BUILD_TYPES.QUICKAPP || !watch)) {
- Util.emptyDirectory(outputPath)
- }
- switch (type) {
- case BUILD_TYPES.H5:
- buildForH5(appPath, { watch, port })
- break
- case BUILD_TYPES.WEAPP:
- buildForWeapp(appPath, { watch, page, component })
- break
- case BUILD_TYPES.SWAN:
- buildForSwan(appPath, { watch, page, component })
- break
- case BUILD_TYPES.ALIPAY:
- buildForAlipay(appPath, { watch, page, component })
- break
- case BUILD_TYPES.TT:
- buildForTt(appPath, { watch, page, component })
- break
- case BUILD_TYPES.RN:
- buildForRN(appPath, { watch })
- break
- case BUILD_TYPES.QUICKAPP:
- buildForQuickApp(appPath, { watch, port, release })
- break
- case BUILD_TYPES.QQ:
- buildForQQ(appPath, { watch, page, component })
- break
- case BUILD_TYPES.JD:
- buildForJD(appPath, { watch })
- break
- case BUILD_TYPES.UI:
- buildForUILibrary(appPath, { watch, uiIndex })
- break
- case BUILD_TYPES.PLUGIN:
- buildForPlugin(appPath, {
- watch,
- platform
- })
- break
- default:
- console.log(chalk.red('输入类型错误,目前只支持 weapp/swan/alipay/tt/h5/quickapp/rn 七端类型'))
- }
+interface IBuilderHooks {
+ beforeBuild: Hook,
+ afterBuild: Hook
}
-function buildForWeapp (appPath: string, buildConfig: IBuildConfig) {
- require('./mini').build(appPath, Object.assign({
- adapter: BUILD_TYPES.WEAPP
- }, buildConfig))
-}
+export default class Builder {
+ hooks: IBuilderHooks
+ appPath: string
+ config: IProjectConfig
+ constructor (appPath: string) {
+ this.hooks = {
+ beforeBuild: new SyncHook(['config']),
+ afterBuild: new SyncHook(['builder'])
+ }
-function buildForSwan (appPath: string, buildConfig: IBuildConfig) {
- require('./mini').build(appPath, Object.assign({
- adapter: BUILD_TYPES.SWAN
- }, buildConfig))
-}
+ this.appPath = appPath
+ this.init()
+ }
-function buildForAlipay (appPath: string, buildConfig: IBuildConfig) {
- require('./mini').build(appPath, Object.assign({
- adapter: BUILD_TYPES.ALIPAY
- }, buildConfig))
-}
+ init () {
+ this.resolveConfig()
+ this.applyPlugins()
+ }
-function buildForTt (appPath: string, buildConfig: IBuildConfig) {
- require('./mini').build(appPath, Object.assign({
- adapter: BUILD_TYPES.TT
- }, buildConfig))
-}
+ resolveConfig () {
+ this.config = require(path.join(this.appPath, PROJECT_CONFIG))(_.merge)
+ }
-function buildForH5 (appPath: string, buildConfig: IBuildConfig) {
- require('./h5').build(appPath, buildConfig)
-}
+ applyPlugins () {
+ const plugins = this.config.plugins || []
+ if (plugins.length) {
+ plugins.forEach((plugin: ICommonPlugin) => {
+ plugin.apply(this)
+ })
+ }
+ }
-function buildForRN (appPath: string, { watch }: IBuildConfig) {
- require('./rn').build(appPath, { watch })
-}
+ emptyFirst ({ watch, type }) {
+ const outputPath = path.join(this.appPath, `${this.config.outputRoot || CONFIG.OUTPUT_DIR}`)
+ if (!fs.existsSync(outputPath)) {
+ fs.ensureDirSync(outputPath)
+ } else if (type !== BUILD_TYPES.H5 && (type !== BUILD_TYPES.QUICKAPP || !watch)) {
+ emptyDirectory(outputPath)
+ }
+ }
-function buildForQuickApp (appPath: string, { watch, port, release }: IBuildConfig) {
- require('./mini').build(appPath, {
- watch,
- adapter: BUILD_TYPES.QUICKAPP,
- port,
- release
- })
-}
+ build (buildOptions: IBuildOptions) {
+ this.hooks.beforeBuild.call(this.config)
+ const { type, watch, platform, port, uiIndex } = buildOptions
+ this.emptyFirst({ type, watch })
+ switch (type) {
+ case BUILD_TYPES.H5:
+ this.buildForH5(this.appPath, { watch, port })
+ break
+ case BUILD_TYPES.WEAPP:
+ case BUILD_TYPES.SWAN:
+ case BUILD_TYPES.ALIPAY:
+ case BUILD_TYPES.TT:
+ case BUILD_TYPES.QUICKAPP:
+ case BUILD_TYPES.QQ:
+ case BUILD_TYPES.JD:
+ this.buildForMini(this.appPath, buildOptions)
+ break
+ case BUILD_TYPES.RN:
+ this.buildForRN(this.appPath, { watch })
+ break
+ case BUILD_TYPES.UI:
+ this.buildForUILibrary(this.appPath, { watch, uiIndex })
+ break
+ case BUILD_TYPES.PLUGIN:
+ this.buildForPlugin(this.appPath, {
+ watch,
+ platform
+ })
+ break
+ default:
+ console.log(chalk.red('输入类型错误,目前只支持 weapp/swan/alipay/tt/qq/h5/quickapp/rn 八端类型'))
+ }
+ }
-function buildForQQ (appPath: string, buildConfig: IBuildConfig) {
- require('./mini').build(appPath, Object.assign({
- adapter: BUILD_TYPES.QQ
- }, buildConfig))
-}
+ buildForH5 (appPath: string, buildOptions: IBuildOptions) {
+ require('./h5').build(appPath, buildOptions)
+ }
-function buildForJD (appPath: string, { watch }: IBuildConfig) {
- require('./mini').build(appPath, {
- watch,
- adapter: BUILD_TYPES.JD
- })
-}
+ buildForMini (appPath: string, buildOptions: IBuildOptions) {
+ require('./mini').build(appPath, buildOptions, null, this)
+ }
-function buildForUILibrary (appPath: string, { watch, uiIndex }: IBuildConfig) {
- require('./ui/index').build(appPath, { watch, uiIndex })
-}
+ buildForRN (appPath: string, { watch }) {
+ require('./rn').build(appPath, { watch })
+ }
-function buildForPlugin (appPath: string, { watch, platform }) {
- const typeMap = {
- [BUILD_TYPES.WEAPP]: '微信',
- [BUILD_TYPES.ALIPAY]: '支付宝'
+ buildForUILibrary (appPath: string, { watch, uiIndex }) {
+ require('./ui/index').build(appPath, { watch, uiIndex })
}
- if (platform !== BUILD_TYPES.WEAPP && platform !== BUILD_TYPES.ALIPAY) {
- console.log(chalk.red('目前插件编译仅支持 微信/支付宝 小程序!'))
- return
+
+ buildForPlugin (appPath: string, { watch, platform }) {
+ const typeMap = {
+ [BUILD_TYPES.WEAPP]: '微信',
+ [BUILD_TYPES.ALIPAY]: '支付宝'
+ }
+ if (platform !== BUILD_TYPES.WEAPP && platform !== BUILD_TYPES.ALIPAY) {
+ console.log(chalk.red('目前插件编译仅支持 微信/支付宝 小程序!'))
+ return
+ }
+ console.log(chalk.green(`开始编译${typeMap[platform]}小程序插件`))
+ require('./plugin').build(appPath, { watch, platform }, this)
}
- console.log(chalk.green(`开始编译${typeMap[platform]}小程序插件`))
- require('./plugin').build(appPath, { watch, platform })
}
diff --git a/packages/taro-cli/src/config/uglify.ts b/packages/taro-cli/src/config/uglify.ts
deleted file mode 100644
index 43ea6b431bb8..000000000000
--- a/packages/taro-cli/src/config/uglify.ts
+++ /dev/null
@@ -1 +0,0 @@
-export default { }
diff --git a/packages/taro-cli/src/convertor/index.ts b/packages/taro-cli/src/convertor/index.ts
index 0f55b6c1d1dc..dc6d0147c07a 100644
--- a/packages/taro-cli/src/convertor/index.ts
+++ b/packages/taro-cli/src/convertor/index.ts
@@ -7,7 +7,7 @@ import * as prettier from 'prettier'
import traverse, { NodePath } from 'babel-traverse'
import * as t from 'babel-types'
import * as taroize from '@tarojs/taroize'
-import * as wxTransformer from '@tarojs/transformer-wx'
+import wxTransformer from '@tarojs/transformer-wx'
import * as postcss from 'postcss'
import * as unitTransform from 'postcss-taro-unit-transform'
@@ -407,7 +407,6 @@ export default class Convertor {
const transformResult = wxTransformer({
code,
sourcePath: file,
- outputPath: outputFilePath,
isNormal: true,
isTyped: REG_TYPESCRIPT.test(file)
})
diff --git a/packages/taro-cli/src/doctor/configSchema.ts b/packages/taro-cli/src/doctor/configSchema.ts
index c7575888d2e2..94b657dcccdf 100644
--- a/packages/taro-cli/src/doctor/configSchema.ts
+++ b/packages/taro-cli/src/doctor/configSchema.ts
@@ -10,10 +10,7 @@ const schema = Joi.object().keys({
'sourceRoot': Joi.string().required(),
'outputRoot': Joi.string().required(),
- // NOTE: 考虑是否增加第三方模块的配置检查
- 'plugins': Joi.object().pattern(
- Joi.string(), Joi.object()
- ),
+ 'plugins': Joi.array().items(Joi.object()),
'env': Joi.object().pattern(
Joi.string(), Joi.string()
@@ -35,12 +32,29 @@ const schema = Joi.object().keys({
})
}),
- 'weapp': Joi.object().keys({
+ 'mini': Joi.object().keys({
'compile': Joi.object().keys({
'exclude': Joi.array().items(Joi.string()),
'include': Joi.array().items(Joi.string())
}),
- 'module': Joi.object(), // 第三方配置
+ 'customFilesTypes': Joi.object().keys({
+ 'TEMPL': Joi.string(),
+ 'STYLE': Joi.string(),
+ 'SCRIPT': Joi.string(),
+ 'CONFIG': Joi.string()
+ }),
+ 'webpackChain': Joi.func(),
+ 'output': Joi.object(),
+ 'postcss': Joi.object(), // 第三方配置
+ 'cssLoaderOption': Joi.object(), // 第三方配置
+ 'styleLoaderOption': Joi.object(), // 第三方配置
+ 'sassLoaderOption': Joi.object(), // 第三方配置
+ 'lessLoaderOption': Joi.object(), // 第三方配置
+ 'stylusLoaderOption': Joi.object(), // 第三方配置
+ 'mediaUrlLoaderOption': Joi.object(), // 第三方配置
+ 'fontUrlLoaderOption': Joi.object(), // 第三方配置
+ 'imageUrlLoaderOption': Joi.object(), // 第三方配置
+ 'miniCssExtractPluginOption': Joi.object(), // 第三方配置
'jsxAttributeNameReplace': Joi.object().pattern(
Joi.string(), Joi.string()
)
@@ -50,12 +64,27 @@ const schema = Joi.object().keys({
Joi.string(), Joi.string()
),
+ 'babel': Joi.object(),
+ 'csso': Joi.object().keys({
+ 'enable': Joi.bool(),
+ 'config': Joi.object()
+ }),
+ 'uglify': Joi.object().keys({
+ 'enable': Joi.bool(),
+ 'config': Joi.object()
+ }),
+ 'sass': Joi.object().keys({
+ 'enable': Joi.bool(),
+ 'config': Joi.object()
+ }),
+
'h5': Joi.object().keys({
'devServer': Joi.object(), // 第三方配置
'publicPath': Joi.string(),
'staticDirectory': Joi.string(),
'chunkDirectory': Joi.string(),
'webpackChain': Joi.func(),
+ 'output': Joi.object(),
'esnextModules': Joi.array().items(Joi.string()),
@@ -84,6 +113,7 @@ const schema = Joi.object().keys({
),
'enableSourceMap': Joi.bool(),
'enableExtract': Joi.bool(),
+ 'transformOnly': Joi.bool(),
'cssLoaderOption': Joi.object(), // 第三方配置
'styleLoaderOption': Joi.object(), // 第三方配置
'sassLoaderOption': Joi.object(), // 第三方配置
@@ -94,15 +124,13 @@ const schema = Joi.object().keys({
'imageUrlLoaderOption': Joi.object(), // 第三方配置
'miniCssExtractPluginOption': Joi.object(), // 第三方配置
- 'module': Joi.object().keys({
- 'postcss': Joi.object().pattern(
- Joi.string(),
- Joi.object().keys({
- 'enable': Joi.bool(),
- 'config': Joi.object() // 第三方配置
- })
- )
- })
+ 'postcss': Joi.object().pattern(
+ Joi.string(),
+ Joi.object().keys({
+ 'enable': Joi.bool(),
+ 'config': Joi.object() // 第三方配置
+ })
+ )
})
})
diff --git a/packages/taro-cli/src/h5/index.ts b/packages/taro-cli/src/h5/index.ts
index 92197c37f01e..3345e89a0de1 100644
--- a/packages/taro-cli/src/h5/index.ts
+++ b/packages/taro-cli/src/h5/index.ts
@@ -1,5 +1,6 @@
import { PageConfig } from '@tarojs/taro'
-import * as wxTransformer from '@tarojs/transformer-wx'
+import { IProjectConfig, IH5Config, IH5RouterConfig, IDeviceRatio } from '@tarojs/taro/types/compile'
+import wxTransformer from '@tarojs/transformer-wx'
import * as babel from 'babel-core'
import traverse, { NodePath, TraverseOptions } from 'babel-traverse'
import * as t from 'babel-types'
@@ -31,7 +32,7 @@ import {
} from '../util/astConvert'
import { BUILD_TYPES, processTypeEnum, PROJECT_CONFIG, REG_SCRIPTS, REG_TYPESCRIPT } from '../util/constants'
import * as npmProcess from '../util/npm'
-import { IBuildConfig, IDeviceRatio, IH5Config, IH5RouterConfig, IOption, IProjectConfig } from '../util/types'
+import { IBuildOptions, IOption } from '../util/types'
import {
APIS_NEED_TO_APPEND_THIS,
deviceRatioConfigName,
@@ -189,7 +190,7 @@ class Compiler {
return Promise.all(readPromises)
}
- async buildDist ({ watch, port }: IBuildConfig) {
+ async buildDist ({ watch, port }: IBuildOptions) {
const isMultiRouterMode = get(this.h5Config, 'router.mode') === 'multi'
const entryFileName = this.entryFileName
const projectConfig = this.projectConfig
@@ -233,6 +234,10 @@ class Compiler {
},
isWatch: !!watch,
outputRoot: outputDir,
+ babel: projectConfig.babel,
+ csso: projectConfig.csso,
+ uglify: projectConfig.uglify,
+ sass: projectConfig.sass,
plugins: projectConfig.plugins,
port,
sourceRoot
@@ -1451,7 +1456,7 @@ class Compiler {
export { Compiler }
-export async function build (appPath: string, buildConfig: IBuildConfig) {
+export async function build (appPath: string, buildConfig: IBuildOptions) {
process.env.TARO_ENV = BUILD_TYPES.H5
await checkCliAndFrameworkVersion(appPath, BUILD_TYPES.H5)
const compiler = new Compiler(appPath)
diff --git a/packages/taro-cli/src/index.ts b/packages/taro-cli/src/index.ts
index 3073694620dc..b99811b576ec 100644
--- a/packages/taro-cli/src/index.ts
+++ b/packages/taro-cli/src/index.ts
@@ -1,12 +1,12 @@
import Convertor from './convertor'
-import build from './build'
+import Builder from './build'
import doctor from './doctor'
import Project from './create/project'
import { Compiler as H5Compiler } from './h5/index'
export default {
Convertor,
- build,
+ Builder,
doctor,
Project,
H5Compiler
@@ -14,7 +14,7 @@ export default {
export {
Convertor,
- build,
+ Builder,
doctor,
Project,
H5Compiler
diff --git a/packages/taro-cli/src/mini/astProcess.ts b/packages/taro-cli/src/mini/astProcess.ts
deleted file mode 100644
index 5f91df8f3fc5..000000000000
--- a/packages/taro-cli/src/mini/astProcess.ts
+++ /dev/null
@@ -1,1085 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import * as babel from 'babel-core'
-import * as t from 'babel-types'
-import generate from 'babel-generator'
-import traverse, { NodePath } from 'babel-traverse'
-import * as _ from 'lodash'
-import { Config as IConfig } from '@tarojs/taro'
-import getHashName from '../util/hash'
-
-const template = require('babel-template')
-
-import {
- REG_SCRIPT,
- REG_TYPESCRIPT,
- REG_JSON,
- REG_FONT,
- REG_IMAGE,
- REG_MEDIA,
- REG_STYLE,
- CSS_EXT,
- processTypeEnum,
- BUILD_TYPES,
- NODE_MODULES_REG,
- PARSE_AST_TYPE,
- taroJsComponents,
- taroJsRedux,
- taroJsFramework,
- DEVICE_RATIO_NAME
-} from '../util/constants'
-import {
- resolveScriptPath,
- printLog,
- promoteRelativePath,
- isNpmPkg,
- isAliasPath,
- replaceAliasPath,
- traverseObjectNode,
- isQuickappPkg,
- getBabelConfig,
- extnameExpRegOf,
- generateAlipayPath
-} from '../util'
-import {
- convertObjectToAstExpression,
- convertArrayToAstExpression,
- convertSourceStringToAstExpression
-} from '../util/astConvert'
-import babylonConfig from '../config/babylon'
-import { getExactedNpmFilePath, getNotExistNpmList } from '../util/npmExact'
-import { excludeReplaceTaroFrameworkPkgs } from '../util/resolve_npm_files'
-
-import { IComponentObj } from './interface'
-import {
- getBuildData,
- isFileToBePage
-} from './helper'
-import { processStyleUseCssModule } from './compileStyle'
-import { QUICKAPP_SPECIAL_COMPONENTS } from './constants'
-
-function generateCssModuleMapFilename (styleFilePath) {
- const {
- sourceDir,
- outputDir,
- nodeModulesPath,
- npmOutputDir
- } = getBuildData()
- const cssModuleMapFilename = path.basename(styleFilePath) + '.map.js'
- let cssModuleMapFile
- if (NODE_MODULES_REG.test(styleFilePath)) {
- cssModuleMapFile = path.join(path.dirname(styleFilePath), cssModuleMapFilename).replace(nodeModulesPath, npmOutputDir)
- } else {
- cssModuleMapFile = path.join(path.dirname(styleFilePath), cssModuleMapFilename).replace(sourceDir, outputDir)
- }
- return cssModuleMapFile
-}
-
-function createCssModuleMap (styleFilePath, tokens) {
- const cssModuleMapFile = generateCssModuleMapFilename(styleFilePath)
- printLog(processTypeEnum.GENERATE, 'CSS Modules map', cssModuleMapFile)
- fs.ensureDirSync(path.dirname(cssModuleMapFile))
- fs.writeFileSync(cssModuleMapFile, `module.exports = ${JSON.stringify(tokens, null, 2)};\n`)
-}
-
-interface IAnalyzeImportUrlOptions {
- astPath: any,
- value: string,
- sourceFilePath: string,
- filePath: string,
- styleFiles: string[],
- scriptFiles: string[],
- jsonFiles: string[],
- mediaFiles: string[]
-}
-
-function analyzeImportUrl ({
- astPath,
- value,
- sourceFilePath,
- filePath,
- styleFiles,
- scriptFiles,
- jsonFiles,
- mediaFiles
-}: IAnalyzeImportUrlOptions): void {
- const valueExtname = path.extname(value)
- const node = astPath.node
- const {
- nodeModulesPath,
- npmOutputDir,
- sourceDir,
- outputDir,
- npmConfig,
- projectConfig,
- buildAdapter
- } = getBuildData()
- const publicPath = (projectConfig.weapp || ({} as any)).publicPath
- if (value.indexOf('.') === 0) {
- let importPath = path.resolve(path.dirname(sourceFilePath), value)
- importPath = resolveScriptPath(importPath)
- if (isFileToBePage(importPath)) {
- astPath.remove()
- } else {
- if (REG_SCRIPT.test(valueExtname) || REG_TYPESCRIPT.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- let fPath = value
- if (fs.existsSync(vpath) && vpath !== sourceFilePath) {
- fPath = vpath
- }
- if (scriptFiles.indexOf(fPath) < 0) {
- scriptFiles.push(fPath)
- }
- node.source.value = value.replace(valueExtname, '.js')
- } else if (REG_JSON.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- if (jsonFiles.indexOf(vpath) < 0) {
- jsonFiles.push(vpath)
- }
- if (fs.existsSync(vpath)) {
- const obj = JSON.parse(fs.readFileSync(vpath).toString())
- const specifiers = node.specifiers
- let defaultSpecifier = null
- specifiers.forEach(item => {
- if (item.type === 'ImportDefaultSpecifier') {
- defaultSpecifier = item.local.name
- }
- })
- if (defaultSpecifier) {
- let objArr: t.NullLiteral | t.Expression = t.nullLiteral()
- if (Array.isArray(obj)) {
- objArr = t.arrayExpression(convertArrayToAstExpression(obj))
- } else {
- objArr = t.objectExpression(convertObjectToAstExpression(obj))
- }
- astPath.replaceWith(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(defaultSpecifier), objArr)]))
- }
- }
- } else if (REG_FONT.test(valueExtname) || REG_IMAGE.test(valueExtname) || REG_MEDIA.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- if (!fs.existsSync(vpath)) {
- printLog(processTypeEnum.ERROR, '引用文件', `文件 ${sourceFilePath} 中引用 ${value} 不存在!`)
- return
- }
- if (mediaFiles.indexOf(vpath) < 0) {
- mediaFiles.push(vpath)
- }
- const specifiers = node.specifiers
- let defaultSpecifier = null
- specifiers.forEach(item => {
- if (item.type === 'ImportDefaultSpecifier') {
- defaultSpecifier = item.local.name
- }
- })
- let showPath
- if (NODE_MODULES_REG.test(vpath)) {
- showPath = vpath.replace(nodeModulesPath, `/${npmConfig.name}`)
- } else {
- showPath = vpath.replace(sourceDir, '')
- if (publicPath) {
- const hashName = getHashName(vpath)
- showPath = (/\/$/.test(publicPath) ? publicPath : publicPath + '/') + hashName
- }
- }
- if (defaultSpecifier) {
- astPath.replaceWith(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(defaultSpecifier), t.stringLiteral(showPath.replace(/\\/g, '/')))]))
- } else {
- astPath.remove()
- }
- } else if (REG_STYLE.test(valueExtname)) {
- const stylePath = path.resolve(path.dirname(sourceFilePath), value)
- if (styleFiles.indexOf(stylePath) < 0) {
- styleFiles.push(stylePath)
- }
- astPath.remove()
- } else {
- let vpath = resolveScriptPath(path.resolve(sourceFilePath, '..', value))
- let outputVpath
- if (NODE_MODULES_REG.test(vpath)) {
- outputVpath = vpath.replace(nodeModulesPath, npmOutputDir)
- } else {
- outputVpath = vpath.replace(sourceDir, outputDir)
- }
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- outputVpath = generateAlipayPath(outputVpath)
- }
- let relativePath = path.relative(filePath, outputVpath)
- if (vpath && vpath !== sourceFilePath) {
- if (!fs.existsSync(vpath)) {
- printLog(processTypeEnum.ERROR, '引用文件', `文件 ${sourceFilePath} 中引用 ${value} 不存在!`)
- } else {
- if (fs.lstatSync(vpath).isDirectory()) {
- if (fs.existsSync(path.join(vpath, 'index.js'))) {
- vpath = path.join(vpath, 'index.js')
- relativePath = path.join(relativePath, 'index.js')
- } else {
- printLog(processTypeEnum.ERROR, '引用目录', `文件 ${sourceFilePath} 中引用了目录 ${value}!`)
- return
- }
- }
- if (scriptFiles.indexOf(vpath) < 0) {
- scriptFiles.push(vpath)
- }
- relativePath = promoteRelativePath(relativePath)
- relativePath = relativePath.replace(extnameExpRegOf(relativePath), '.js')
- node.source.value = relativePath
- }
- }
- }
- }
- }
-}
-
-export interface IParseAstReturn {
- code: string,
- styleFiles: string[],
- scriptFiles: string[],
- jsonFiles: string[],
- mediaFiles: string[]
- configObj: IConfig,
- componentClassName: string,
- taroSelfComponents: Set,
- hasEnablePageScroll: boolean
-}
-
-export function parseAst (
- type: PARSE_AST_TYPE,
- ast: t.File,
- depComponents: IComponentObj[],
- sourceFilePath: string,
- filePath: string,
- npmSkip: boolean = false
-): IParseAstReturn {
- const styleFiles: string[] = []
- const scriptFiles: string[] = []
- const jsonFiles: string[] = []
- const mediaFiles: string[] = []
-
- const {
- appPath,
- nodeModulesPath,
- npmOutputDir,
- sourceDir,
- outputDir,
- buildAdapter,
- constantsReplaceList,
- isProduction,
- npmConfig,
- alias: pathAlias,
- compileConfig,
- projectConfig,
- quickappManifest
- } = getBuildData()
- const publicPath = (projectConfig.weapp || {} as any).publicPath
- const notExistNpmList = getNotExistNpmList()
- const taroMiniAppFramework = `@tarojs/taro-${buildAdapter}`
- let configObj: IConfig = {}
- let componentClassName: string = ''
- let taroJsReduxConnect: string = ''
- let taroImportDefaultName
- let needExportDefault = false
- let exportTaroReduxConnected: string | null = null
- const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
- const cannotRemoves = [taroJsFramework, 'react', 'nervjs']
- let hasComponentDidHide
- let hasComponentDidShow
- let hasComponentWillMount
- let hasEnablePageScroll
- let needSetConfigFromHooks = false
- let configFromHooks
- if (isQuickApp) {
- cannotRemoves.push(taroJsComponents)
- }
- const taroSelfComponents = new Set()
- ast = babel.transformFromAst(ast, '', {
- plugins: [
- [require('babel-plugin-preval')],
- [require('babel-plugin-danger-remove-unused-import'), { ignore: cannotRemoves }],
- [require('babel-plugin-transform-define').default, constantsReplaceList]
- ]
- }).ast as t.File
- traverse(ast, {
- ClassDeclaration (astPath) {
- const node = astPath.node
- let hasCreateData = false
- if (node.superClass) {
- astPath.traverse({
- ClassMethod (astPath) {
- if (astPath.get('key').isIdentifier({ name: '_createData' })) {
- hasCreateData = true
- }
- }
- })
- if (hasCreateData) {
- needExportDefault = true
- astPath.traverse({
- ClassMethod (astPath) {
- const node = astPath.node
- if (node.kind === 'constructor') {
- astPath.traverse({
- ExpressionStatement (astPath) {
- const node = astPath.node
- if (node.expression &&
- node.expression.type === 'AssignmentExpression' &&
- node.expression.operator === '=') {
- const left = node.expression.left
- if (left.type === 'MemberExpression' &&
- left.object.type === 'ThisExpression' &&
- left.property.type === 'Identifier' &&
- left.property.name === 'config') {
- configObj = traverseObjectNode(node.expression.right, buildAdapter)
- }
- }
- }
- })
- }
- }
- })
- if (node.id === null) {
- componentClassName = '_TaroComponentClass'
- astPath.replaceWith(
- t.classDeclaration(
- t.identifier(componentClassName),
- node.superClass as t.Expression,
- node.body as t.ClassBody,
- node.decorators as t.Decorator[] || []
- )
- )
- } else if (node.id.name === 'App') {
- componentClassName = '_App'
- astPath.replaceWith(
- t.classDeclaration(
- t.identifier(componentClassName),
- node.superClass as t.Expression,
- node.body as t.ClassBody,
- node.decorators as t.Decorator[] || []
- )
- )
- } else {
- componentClassName = node.id.name
- }
- }
- }
- },
-
- ClassExpression (astPath) {
- const node = astPath.node
- if (node.superClass) {
- let hasCreateData = false
- astPath.traverse({
- ClassMethod (astPath) {
- if (astPath.get('key').isIdentifier({ name: '_createData' })) {
- hasCreateData = true
- }
- }
- })
- if (hasCreateData) {
- needExportDefault = true
- if (node.id === null) {
- const parentNode = astPath.parentPath.node as any
- if (t.isVariableDeclarator(astPath.parentPath)) {
- componentClassName = parentNode.id.name
- } else {
- componentClassName = '_TaroComponentClass'
- }
- astPath.replaceWith(
- t.classExpression(
- t.identifier(componentClassName),
- node.superClass as t.Expression,
- node.body as t.ClassBody,
- node.decorators as t.Decorator[] || []
- )
- )
- } else if (node.id.name === 'App') {
- componentClassName = '_App'
- astPath.replaceWith(
- t.classExpression(
- t.identifier(componentClassName),
- node.superClass as t.Expression,
- node.body as t.ClassBody,
- node.decorators as t.Decorator[] || []
- )
- )
- } else {
- componentClassName = node.id.name
- }
- }
- }
- },
-
- AssignmentExpression (astPath) {
- const node = astPath.node
- const left = node.left
- if (t.isMemberExpression(left) && t.isIdentifier(left.object)) {
- if (left.object.name === componentClassName
- && t.isIdentifier(left.property)
- && left.property.name === 'config') {
- needSetConfigFromHooks = true
- configFromHooks = node.right
- configObj = traverseObjectNode(node.right, buildAdapter)
- }
- }
- },
-
- ClassMethod (astPath) {
- const keyName = (astPath.get('key').node as t.Identifier).name
- if (keyName === 'componentWillMount') {
- hasComponentWillMount = true
- } else if (keyName === 'componentDidShow') {
- hasComponentDidShow = true
- } else if (keyName === 'componentDidHide') {
- hasComponentDidHide = true
- } else if (keyName === 'onPageScroll' || keyName === 'onReachBottom') {
- hasEnablePageScroll = true
- }
- },
-
- ClassProperty (astPath) {
- const node = astPath.node
- const keyName = node.key.name
- const valuePath = astPath.get('value')
- if (keyName === 'config') {
- configObj = traverseObjectNode(node, buildAdapter)
- } else if (valuePath.isFunctionExpression() || valuePath.isArrowFunctionExpression()) {
- if (keyName === 'componentWillMount') {
- hasComponentWillMount = true
- } else if (keyName === 'componentDidShow') {
- hasComponentDidShow = true
- } else if (keyName === 'componentDidHide') {
- hasComponentDidHide = true
- }
- }
- },
-
- ImportDeclaration (astPath) {
- const node = astPath.node
- const source = node.source
- let value = source.value
- const specifiers = node.specifiers
- // alias 替换
- if (isAliasPath(value, pathAlias)) {
- value = replaceAliasPath(sourceFilePath, value, pathAlias)
- source.value = value
- }
-
- const quickappPkgs = quickappManifest ? quickappManifest.features : []
- if (isNpmPkg(value) && !(isQuickApp && isQuickappPkg(value, quickappPkgs)) && !notExistNpmList.has(value)) {
- if (value === taroJsComponents) {
- if (isQuickApp) {
- specifiers.forEach(specifier => {
- const name = specifier.local.name
- if (!QUICKAPP_SPECIAL_COMPONENTS.has(name)) {
- taroSelfComponents.add(_.kebabCase(name))
- }
- })
- }
- astPath.remove()
- } else {
- let isDepComponent = false
- if (depComponents && depComponents.length) {
- depComponents.forEach(item => {
- if (item.path === value) {
- isDepComponent = true
- }
- })
- }
- if (isDepComponent) {
- astPath.remove()
- } else {
- const specifiers = node.specifiers
- if (value === taroJsFramework) {
- let defaultSpecifier: string | null = null
- specifiers.forEach(item => {
- if (item.type === 'ImportDefaultSpecifier') {
- defaultSpecifier = item.local.name
- }
- })
- if (defaultSpecifier) {
- taroImportDefaultName = defaultSpecifier
- }
- excludeReplaceTaroFrameworkPkgs.add(taroMiniAppFramework)
- if (!Array.from(excludeReplaceTaroFrameworkPkgs).some(item => sourceFilePath.replace(/\\/g, '/').indexOf(item) >= 0)) {
- value = taroMiniAppFramework
- }
- } else if (value === taroJsRedux) {
- specifiers.forEach(item => {
- if (item.type === 'ImportSpecifier') {
- const local = item.local
- if (local.type === 'Identifier' && local.name === 'connect') {
- taroJsReduxConnect = item.imported.name
- }
- }
- })
- }
- if (!npmSkip) {
- source.value = getExactedNpmFilePath({
- npmName: value,
- sourceFilePath,
- filePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root: appPath,
- npmOutputDir,
- compileConfig,
- env: projectConfig.env || {},
- uglify: projectConfig!.plugins!.uglify || { enable: true },
- babelConfig: getBabelConfig(projectConfig!.plugins!.babel) || {},
- quickappManifest
- })
- } else {
- source.value = value
- }
- }
- }
- } else if (CSS_EXT.indexOf(path.extname(value)) !== -1 && specifiers.length > 0) { // 对 使用 import style from './style.css' 语法引入的做转化处理
- printLog(processTypeEnum.GENERATE, '替换代码', `为文件 ${sourceFilePath} 生成 css modules`)
- const styleFilePath = path.join(path.dirname(sourceFilePath), value)
- const styleCode = fs.readFileSync(styleFilePath).toString()
- processStyleUseCssModule({
- css: styleCode,
- filePath: styleFilePath
- }).then(result => {
- const tokens = result.root.exports || {}
- createCssModuleMap(styleFilePath, tokens)
- })
- const cssModuleMapFile = generateCssModuleMapFilename(styleFilePath)
- astPath.node.source = t.stringLiteral(astPath.node.source.value.replace(path.basename(styleFilePath), path.basename(cssModuleMapFile)))
- if (styleFiles.indexOf(styleFilePath) < 0) { // add this css file to queue
- styleFiles.push(styleFilePath)
- }
- } else if (path.isAbsolute(value)) {
- printLog(processTypeEnum.ERROR, '引用文件', `文件 ${sourceFilePath} 中引用 ${value} 是绝对路径!`)
- }
- },
-
- CallExpression (astPath) {
- const node = astPath.node
- const callee = node.callee as (t.Identifier | t.MemberExpression)
- if (t.isMemberExpression(callee)) {
- if (taroImportDefaultName && (callee.object as t.Identifier).name === taroImportDefaultName && (callee.property as t.Identifier).name === 'render') {
- astPath.remove()
- }
- } else if (callee.name === 'require') {
- const args = node.arguments as t.StringLiteral[]
- let value = args[0].value
- const parentNode = astPath.parentPath.parentPath.node as t.VariableDeclaration
- if (isAliasPath(value, pathAlias)) {
- value = replaceAliasPath(sourceFilePath, value, pathAlias)
- args[0].value = value
- }
- const quickappPkgs = quickappManifest ? quickappManifest.features : []
- if (isNpmPkg(value) && !(isQuickApp && isQuickappPkg(value, quickappPkgs)) && !notExistNpmList.has(value)) {
- if (value === taroJsComponents) {
- if (isQuickApp) {
- if (parentNode.declarations.length === 1 && parentNode.declarations[0].init) {
- const id = parentNode.declarations[0].id
- if (id.type === 'ObjectPattern') {
- const properties = id.properties as any
- properties.forEach(p => {
- if (p.type === 'ObjectProperty' && p.value.type === 'Identifier') {
- taroSelfComponents.add(_.kebabCase(p.value.name))
- }
- })
- }
- }
- }
- astPath.remove()
- } else {
- let isDepComponent = false
- if (depComponents && depComponents.length) {
- depComponents.forEach(item => {
- if (item.path === value) {
- isDepComponent = true
- }
- })
- }
- if (isDepComponent) {
- astPath.remove()
- } else {
- if (t.isVariableDeclaration(astPath.parentPath.parentPath)) {
- if (parentNode.declarations.length === 1 && parentNode.declarations[0].init) {
- const id = parentNode.declarations[0].id
- if (value === taroJsFramework && id.type === 'Identifier') {
- taroImportDefaultName = id.name
- excludeReplaceTaroFrameworkPkgs.add(taroMiniAppFramework)
- if (!Array.from(excludeReplaceTaroFrameworkPkgs).some(item => sourceFilePath.replace(/\\/g, '/').indexOf(item) >= 0)) {
- value = taroMiniAppFramework
- }
- } else if (value === taroJsRedux) {
- const declarations = parentNode.declarations
- declarations.forEach(item => {
- const id = item.id
- if (id.type === 'ObjectPattern') {
- const properties = id.properties as any
- properties.forEach(p => {
- if (p.type === 'ObjectProperty') {
- if (p.value.type === 'Identifier' && p.value.name === 'connect') {
- taroJsReduxConnect = p.key.name
- }
- }
- })
- }
- })
- }
- }
- }
- if (!npmSkip) {
- args[0].value = getExactedNpmFilePath({
- npmName: value,
- sourceFilePath,
- filePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root: appPath,
- npmOutputDir,
- compileConfig,
- env: projectConfig.env || {},
- uglify: projectConfig!.plugins!.uglify || { enable: true },
- babelConfig: getBabelConfig(projectConfig!.plugins!.babel) || {},
- quickappManifest
- })
- } else {
- args[0].value = value
- }
- }
- }
- } else if (CSS_EXT.indexOf(path.extname(value)) !== -1 && t.isVariableDeclarator(astPath.parentPath)) { // 对 使用 const style = require('./style.css') 语法引入的做转化处理
- printLog(processTypeEnum.GENERATE, '替换代码', `为文件 ${sourceFilePath} 生成 css modules`)
- const styleFilePath = path.join(path.dirname(sourceFilePath), value)
- const styleCode = fs.readFileSync(styleFilePath).toString()
- processStyleUseCssModule({
- css: styleCode,
- filePath: styleFilePath
- }).then(result => {
- const tokens = result.root.exports || {}
- createCssModuleMap(styleFilePath, tokens)
- })
- const cssModuleMapFile = generateCssModuleMapFilename(styleFilePath)
- args[0].value = args[0].value.replace(path.basename(styleFilePath), path.basename(cssModuleMapFile))
- if (styleFiles.indexOf(styleFilePath) < 0) { // add this css file to queue
- styleFiles.push(styleFilePath)
- }
- } else if (path.isAbsolute(value)) {
- printLog(processTypeEnum.ERROR, '引用文件', `文件 ${sourceFilePath} 中引用 ${value} 是绝对路径!`)
- }
- }
- },
-
- ExportDefaultDeclaration (astPath) {
- const node = astPath.node
- const declaration = node.declaration
- needExportDefault = false
- if (
- declaration &&
- (declaration.type === 'ClassDeclaration' || declaration.type === 'ClassExpression')
- ) {
- const superClass = declaration.superClass
- if (superClass) {
- let hasCreateData = false
- astPath.traverse({
- ClassMethod (astPath) {
- if (astPath.get('key').isIdentifier({ name: '_createData' })) {
- hasCreateData = true
- }
- }
- })
- if (hasCreateData) {
- needExportDefault = true
- if (declaration.id === null) {
- componentClassName = '_TaroComponentClass'
- } else if (declaration.id.name === 'App') {
- componentClassName = '_App'
- } else {
- componentClassName = declaration.id.name
- }
- const isClassDcl = declaration.type === 'ClassDeclaration'
- const classDclProps = [t.identifier(componentClassName), superClass, declaration.body, declaration.decorators || []]
- astPath.replaceWith(isClassDcl ? t.classDeclaration.apply(null, classDclProps) : t.classExpression.apply(null, classDclProps))
- }
- }
- } else if (declaration.type === 'CallExpression') {
- const callee = declaration.callee
- if (callee && callee.type === 'CallExpression') {
- const subCallee = callee.callee
- if (subCallee.type === 'Identifier' && subCallee.name === taroJsReduxConnect) {
- const args = declaration.arguments as t.Identifier[]
- if (args.length === 1 && args[0].name === componentClassName) {
- needExportDefault = true
- exportTaroReduxConnected = `${componentClassName}__Connected`
- astPath.replaceWith(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(`${componentClassName}__Connected`), t.callExpression(declaration.callee as t.Expression, declaration.arguments as Array))]))
- }
- }
- }
- } else if (declaration.type === 'Identifier') {
- const name = declaration.name
- if (name === componentClassName || name === exportTaroReduxConnected) {
- needExportDefault = true
- astPath.remove()
- }
- }
- },
-
- ExportNamedDeclaration (astPath) {
- const node = astPath.node
- const source = node.source
- if (source && source.type === 'StringLiteral') {
- const value = source.value
- analyzeImportUrl({ astPath, value, sourceFilePath, filePath, styleFiles, scriptFiles, jsonFiles, mediaFiles })
- }
- },
-
- ExportAllDeclaration (astPath) {
- const node = astPath.node
- const source = node.source
- if (source && source.type === 'StringLiteral') {
- const value = source.value
- analyzeImportUrl({ astPath, value, sourceFilePath, filePath, styleFiles, scriptFiles, jsonFiles, mediaFiles })
- }
- },
-
- Program: {
- exit (astPath) {
- astPath.traverse({
- ClassBody (astPath) {
- if (isQuickApp) {
- const node = astPath.node
- if (!hasComponentWillMount) {
- node.body.push(t.classMethod(
- 'method', t.identifier('hasComponentWillMount'), [],
- t.blockStatement([]), false, false))
- }
- if (!hasComponentDidShow) {
- node.body.push(t.classMethod(
- 'method', t.identifier('componentDidShow'), [],
- t.blockStatement([]), false, false))
- }
- if (!hasComponentDidHide) {
- node.body.push(t.classMethod(
- 'method', t.identifier('componentDidHide'), [],
- t.blockStatement([]), false, false))
- }
- node.body.push(t.classMethod(
- 'method', t.identifier('__listenToSetNavigationBarEvent'), [],
- t.blockStatement([convertSourceStringToAstExpression(
- `if (!Taro.eventCenter.callbacks['TaroEvent:setNavigationBar']) {
- Taro.eventCenter.on('TaroEvent:setNavigationBar', params => {
- if (params.title) {
- this.$scope.$page.setTitleBar({ text: params.title })
- }
- if (params.frontColor) {
- this.$scope.$page.setTitleBar({ textColor: params.frontColor })
- }
- if (params.backgroundColor) {
- this.$scope.$page.setTitleBar({ backgroundColor: params.backgroundColor })
- }
- })
- }`
- )]), false, false))
- node.body.push(t.classMethod(
- 'method', t.identifier('__offListenToSetNavigationBarEvent'), [],
- t.blockStatement([convertSourceStringToAstExpression(
- `Taro.eventCenter.off('TaroEvent:setNavigationBar')`
- )]), false, false))
- }
- if (needSetConfigFromHooks) {
- const classPath = astPath.findParent((p: NodePath) => p.isClassExpression() || p.isClassDeclaration()) as NodePath
- classPath.node.body.body.unshift(
- t.classProperty(
- t.identifier('config'),
- configFromHooks as t.ObjectExpression
- )
- )
- }
- },
- ClassMethod (astPath) {
- if (isQuickApp) {
- const node = astPath.node
- const keyName = (node.key as t.Identifier).name
- if (keyName === 'componentDidShow' || keyName === 'componentWillMount') {
- node.body.body.unshift(convertSourceStringToAstExpression(`this.__listenToSetNavigationBarEvent()`))
- } else if (keyName === 'componentDidHide') {
- node.body.body.unshift(convertSourceStringToAstExpression(`this.__offListenToSetNavigationBarEvent()`))
- }
- }
- },
- ImportDeclaration (astPath) {
- const node = astPath.node
- const source = node.source
- const value = source.value
- analyzeImportUrl({ astPath, value, sourceFilePath, filePath, styleFiles, scriptFiles, jsonFiles, mediaFiles })
- },
- CallExpression (astPath) {
- const node = astPath.node
- const callee = node.callee as t.Identifier
- if (callee.name === 'require') {
- const args = node.arguments as t.StringLiteral[]
- const value = args[0].value
- const valueExtname = path.extname(value)
- if (value.indexOf('.') === 0) {
- let importPath = path.resolve(path.dirname(sourceFilePath), value)
- importPath = resolveScriptPath(importPath)
- if (isFileToBePage(importPath)) {
- if (astPath.parent.type === 'AssignmentExpression' || 'ExpressionStatement') {
- astPath.parentPath.remove()
- } else if (astPath.parent.type === 'VariableDeclarator') {
- astPath.parentPath.parentPath.remove()
- } else {
- astPath.remove()
- }
- } else {
- if (REG_STYLE.test(valueExtname)) {
- const stylePath = path.resolve(path.dirname(sourceFilePath), value)
- if (styleFiles.indexOf(stylePath) < 0) {
- styleFiles.push(stylePath)
- }
- if (astPath.parent.type === 'AssignmentExpression' || 'ExpressionStatement') {
- astPath.parentPath.remove()
- } else if (astPath.parent.type === 'VariableDeclarator') {
- astPath.parentPath.parentPath.remove()
- } else {
- astPath.remove()
- }
- } else if (REG_JSON.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- if (jsonFiles.indexOf(vpath) < 0) {
- jsonFiles.push(vpath)
- }
- if (fs.existsSync(vpath)) {
- const obj = JSON.parse(fs.readFileSync(vpath).toString())
- let objArr: t.NullLiteral | t.Expression | t.ObjectProperty[] = t.nullLiteral()
- if (Array.isArray(obj)) {
- objArr = t.arrayExpression(convertArrayToAstExpression(obj))
- } else {
- objArr = convertObjectToAstExpression(obj)
- }
- astPath.replaceWith(t.objectExpression(objArr as any))
- }
- } else if (REG_SCRIPT.test(valueExtname) || REG_TYPESCRIPT.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- let fPath = value
- if (fs.existsSync(vpath) && vpath !== sourceFilePath) {
- fPath = vpath
- }
- if (scriptFiles.indexOf(fPath) < 0) {
- scriptFiles.push(fPath)
- }
- } else if (REG_FONT.test(valueExtname) || REG_IMAGE.test(valueExtname) || REG_MEDIA.test(valueExtname)) {
- const vpath = path.resolve(sourceFilePath, '..', value)
- if (mediaFiles.indexOf(vpath) < 0) {
- mediaFiles.push(vpath)
- }
- let showPath
- if (NODE_MODULES_REG.test(vpath)) {
- showPath = vpath.replace(nodeModulesPath, `/${npmConfig.name}`)
- } else {
- showPath = vpath.replace(sourceDir, '')
- if (publicPath) {
- const hashName = getHashName(vpath)
- showPath = (/\/$/.test(publicPath) ? publicPath : publicPath + '/') + hashName
- }
- }
- astPath.replaceWith(t.stringLiteral(showPath.replace(/\\/g, '/')))
- } else {
- let vpath = resolveScriptPath(path.resolve(sourceFilePath, '..', value))
- let outputVpath
- if (NODE_MODULES_REG.test(vpath)) {
- outputVpath = vpath.replace(nodeModulesPath, npmOutputDir)
- } else {
- outputVpath = vpath.replace(sourceDir, outputDir)
- }
- let relativePath = path.relative(filePath, outputVpath)
- if (vpath) {
- if (!fs.existsSync(vpath)) {
- printLog(processTypeEnum.ERROR, '引用文件', `文件 ${sourceFilePath} 中引用 ${value} 不存在!`)
- } else {
- if (fs.lstatSync(vpath).isDirectory()) {
- if (fs.existsSync(path.join(vpath, 'index.js'))) {
- vpath = path.join(vpath, 'index.js')
- relativePath = path.join(relativePath, 'index.js')
- } else {
- printLog(processTypeEnum.ERROR, '引用目录', `文件 ${sourceFilePath} 中引用了目录 ${value}!`)
- return
- }
- }
- if (scriptFiles.indexOf(vpath) < 0) {
- scriptFiles.push(vpath)
- }
- relativePath = promoteRelativePath(relativePath)
- relativePath = relativePath.replace(extnameExpRegOf(relativePath), '.js')
- args[0].value = relativePath
- }
- }
- }
- }
- }
- }
- }
- })
- const node = astPath.node as t.Program
- const exportVariableName = exportTaroReduxConnected || componentClassName
- if (needExportDefault && !isQuickApp) {
- const exportDefault = template(`export default ${exportVariableName}`, babylonConfig as any)()
- node.body.push(exportDefault as any)
- }
- const taroMiniAppFrameworkPath = !npmSkip ? getExactedNpmFilePath({
- npmName: taroMiniAppFramework,
- sourceFilePath,
- filePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root: appPath,
- npmOutputDir,
- compileConfig,
- env: projectConfig.env || {},
- uglify: projectConfig!.plugins!.uglify || { enable: true },
- babelConfig: getBabelConfig(projectConfig!.plugins!.babel) || {},
- quickappManifest
- }) : taroMiniAppFramework
- switch (type) {
- case PARSE_AST_TYPE.ENTRY:
- const pxTransformConfig = {
- designWidth: projectConfig.designWidth || 750
- }
- if (projectConfig.hasOwnProperty(DEVICE_RATIO_NAME)) {
- pxTransformConfig[DEVICE_RATIO_NAME] = projectConfig.deviceRatio
- }
- if (isQuickApp) {
- if (!taroImportDefaultName) {
- node.body.unshift(
- template(`import Taro from '${taroMiniAppFrameworkPath}'`, babylonConfig as any)() as any
- )
- }
- node.body.push(template(`export default require('${taroMiniAppFrameworkPath}').default.createApp(${exportVariableName})`, babylonConfig as any)() as any)
- } else {
- node.body.push(template(`App(require('${taroMiniAppFrameworkPath}').default.createApp(${exportVariableName}))`, babylonConfig as any)() as any)
- }
- node.body.push(template(`Taro.initPxTransform(${JSON.stringify(pxTransformConfig)})`, babylonConfig as any)() as any)
- break
- case PARSE_AST_TYPE.PAGE:
- if (buildAdapter === BUILD_TYPES.WEAPP || buildAdapter === BUILD_TYPES.QQ) {
- node.body.push(template(`Component(require('${taroMiniAppFrameworkPath}').default.createComponent(${exportVariableName}, true))`, babylonConfig as any)() as any)
- } else if (isQuickApp) {
- const pagePath = sourceFilePath.replace(sourceDir, '').replace(/\\/g, '/').replace(extnameExpRegOf(sourceFilePath), '')
- if (!taroImportDefaultName) {
- node.body.unshift(
- template(`import Taro from '${taroMiniAppFrameworkPath}'`, babylonConfig as any)() as any
- )
- }
- node.body.push(template(`export default require('${taroMiniAppFrameworkPath}').default.createComponent(${exportVariableName}, '${pagePath}')`, babylonConfig as any)() as any)
- } else {
- node.body.push(template(`Page(require('${taroMiniAppFrameworkPath}').default.createComponent(${exportVariableName}, true))`, babylonConfig as any)() as any)
- }
- break
- case PARSE_AST_TYPE.COMPONENT:
- if (isQuickApp) {
- if (!taroImportDefaultName) {
- node.body.unshift(
- template(`import Taro from '${taroMiniAppFrameworkPath}'`, babylonConfig as any)() as any
- )
- }
- node.body.push(template(`export default require('${taroMiniAppFrameworkPath}').default.createComponent(${exportVariableName})`, babylonConfig as any)() as any)
- } else {
- node.body.push(template(`Component(require('${taroMiniAppFrameworkPath}').default.createComponent(${exportVariableName}))`, babylonConfig as any)() as any)
- }
- break
- default:
- break
- }
- }
- }
- })
-
- if (isQuickApp && type === PARSE_AST_TYPE.PAGE) {
- taroSelfComponents.add('taro-page')
- }
-
- return {
- code: generate(ast).code,
- styleFiles,
- scriptFiles,
- jsonFiles,
- configObj,
- mediaFiles,
- componentClassName,
- taroSelfComponents,
- hasEnablePageScroll
- }
-}
-
-export function parseComponentExportAst (ast: t.File, componentName: string, componentPath: string, componentType: string): string | null {
- const {
- constantsReplaceList
- } = getBuildData()
- let componentRealPath: string | null = null
- let importExportName
- ast = babel.transformFromAst(ast, '', {
- plugins: [
- [require('babel-plugin-transform-define').default, constantsReplaceList]
- ]
- }).ast as t.File
- componentName = componentName.split('|')[1] || componentName
- traverse(ast, {
- ExportNamedDeclaration (astPath) {
- const node = astPath.node
- const specifiers = node.specifiers
- const source = node.source
- if (source && source.type === 'StringLiteral') {
- specifiers.forEach(specifier => {
- const exported = specifier.exported
- if (_.kebabCase(exported.name) === componentName) {
- componentRealPath = resolveScriptPath(path.resolve(path.dirname(componentPath), source.value))
- }
- })
- } else {
- specifiers.forEach(specifier => {
- const exported = specifier.exported
- if (_.kebabCase(exported.name) === componentName) {
- importExportName = exported.name
- }
- })
- }
- },
-
- ExportDefaultDeclaration (astPath) {
- const node = astPath.node
- const declaration = node.declaration as t.Identifier
- if (componentType === 'default') {
- importExportName = declaration.name
- }
- },
-
- CallExpression (astPath) {
- if (astPath.get('callee').isIdentifier({ name: 'require' })) {
- const arg = astPath.get('arguments')[0]
- if (t.isStringLiteral(arg.node)) {
- componentRealPath = resolveScriptPath(path.resolve(path.dirname(componentPath), arg.node.value))
- }
- }
- },
-
- Program: {
- exit (astPath) {
- astPath.traverse({
- ImportDeclaration (astPath) {
- const node = astPath.node
- const specifiers = node.specifiers
- const source = node.source
- if (importExportName) {
- specifiers.forEach(specifier => {
- const local = specifier.local
- if (local.name === importExportName) {
- componentRealPath = resolveScriptPath(path.resolve(path.dirname(componentPath), source.value))
- }
- })
- }
- }
- })
- }
- }
- })
- return componentRealPath
-}
diff --git a/packages/taro-cli/src/mini/compileScript.ts b/packages/taro-cli/src/mini/compileScript.ts
deleted file mode 100644
index cc37c99a9293..000000000000
--- a/packages/taro-cli/src/mini/compileScript.ts
+++ /dev/null
@@ -1,175 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import * as wxTransformer from '@tarojs/transformer-wx'
-
-import {
- printLog,
- isDifferentArray,
- copyFileSync,
- getBabelConfig,
- uglifyJS,
- extnameExpRegOf,
- generateAlipayPath
-} from '../util'
-import {
- BUILD_TYPES,
- processTypeEnum,
- REG_TYPESCRIPT,
- NODE_MODULES_REG,
- PARSE_AST_TYPE
-} from '../util/constants'
-import { callPlugin } from '../util/npm'
-import { npmCodeHack } from '../util/resolve_npm_files'
-import { IWxTransformResult, TogglableOptions } from '../util/types'
-
-import {
- shouldTransformAgain,
- getBuildData,
- copyFilesFromSrcToOutput,
- getDependencyTree
-} from './helper'
-import { parseAst } from './astProcess'
-import { IDependency } from './interface'
-
-const isBuildingScripts: Map = new Map()
-
-export function initCompileScripts () {
- isBuildingScripts.clear()
-}
-
-export function compileDepScripts (scriptFiles: string[], needUseBabel?: boolean, buildDepSync?: boolean) {
- const {
- nodeModulesPath,
- npmOutputDir,
- projectConfig,
- sourceDir,
- outputDir,
- appPath,
- buildAdapter,
- constantsReplaceList,
- isProduction,
- jsxAttributeNameReplace
- } = getBuildData()
- const dependencyTree = getDependencyTree()
- return scriptFiles.map(async item => {
- if (path.isAbsolute(item)) {
- let outputItem
- if (NODE_MODULES_REG.test(item)) {
- outputItem = item.replace(nodeModulesPath, npmOutputDir).replace(extnameExpRegOf(item), '.js')
- } else {
- outputItem = item.replace(path.join(sourceDir), path.join(outputDir)).replace(extnameExpRegOf(item), '.js')
- }
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- outputItem = generateAlipayPath(outputItem)
- }
- const weappConf = Object.assign({}, projectConfig.weapp)
- const useCompileConf = Object.assign({}, weappConf.compile)
- const compileExclude = (useCompileConf.exclude || []).filter(item => !/(?:\/|^)node_modules(\/|$)/.test(item))
- let isInCompileExclude = false
- compileExclude.forEach(excludeItem => {
- if (item.indexOf(path.join(appPath, excludeItem)) >= 0) {
- isInCompileExclude = true
- }
- })
- if (isInCompileExclude) {
- copyFileSync(item, outputItem)
- return
- }
- if (!isBuildingScripts.get(outputItem)) {
- isBuildingScripts.set(outputItem, true)
- try {
- const code = fs.readFileSync(item).toString()
- const transformResult = wxTransformer({
- code,
- sourcePath: item,
- sourceDir,
- outputPath: outputItem,
- isNormal: true,
- isTyped: REG_TYPESCRIPT.test(item),
- adapter: buildAdapter,
- env: constantsReplaceList,
- jsxAttributeNameReplace
- })
- const ast = transformResult.ast
- const res = parseAst(PARSE_AST_TYPE.NORMAL, ast, [], item, outputItem)
- const fileDep = dependencyTree.get(item) || {} as IDependency
- let resCode = res.code
- if (needUseBabel) {
- resCode = await compileScriptFile(res.code, item, outputItem, buildAdapter)
- }
- fs.ensureDirSync(path.dirname(outputItem))
- if (isProduction && needUseBabel) {
- resCode = uglifyJS(resCode, item, appPath, projectConfig!.plugins!.uglify as TogglableOptions)
- }
- if (NODE_MODULES_REG.test(item)) {
- resCode = npmCodeHack(outputItem, resCode, buildAdapter)
- }
- fs.writeFileSync(outputItem, resCode)
- let modifyOutput = outputItem.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- printLog(processTypeEnum.GENERATE, '依赖文件', modifyOutput)
- // 编译依赖的脚本文件
- if (isDifferentArray(fileDep['script'], res.scriptFiles)) {
- if (buildDepSync) {
- await Promise.all(compileDepScripts(res.scriptFiles, needUseBabel, buildDepSync))
- } else {
- compileDepScripts(res.scriptFiles, needUseBabel, buildDepSync)
- }
- }
- // 拷贝依赖文件
- if (isDifferentArray(fileDep['json'], res.jsonFiles)) {
- copyFilesFromSrcToOutput(res.jsonFiles)
- }
- if (isDifferentArray(fileDep['media'], res.mediaFiles)) {
- copyFilesFromSrcToOutput(res.mediaFiles)
- }
- fileDep['script'] = res.scriptFiles
- fileDep['json'] = res.jsonFiles
- fileDep['media'] = res.mediaFiles
- dependencyTree.set(item, fileDep)
- } catch (err) {
- printLog(processTypeEnum.ERROR, '编译失败', item.replace(appPath + path.sep, ''))
- console.log(err)
- }
- }
- }
- })
-}
-
-export async function compileScriptFile (
- content: string,
- sourceFilePath: string,
- outputFilePath: string,
- adapter: BUILD_TYPES
-): Promise {
- const {
- appPath,
- sourceDir,
- constantsReplaceList,
- jsxAttributeNameReplace,
- projectConfig
- } = getBuildData()
- if (NODE_MODULES_REG.test(sourceFilePath) && fs.existsSync(outputFilePath)) {
- return fs.readFileSync(outputFilePath).toString()
- }
- const babelConfig = getBabelConfig(projectConfig!.plugins!.babel)
- const compileScriptRes = await callPlugin('babel', content, sourceFilePath, babelConfig, appPath)
- const code = compileScriptRes.code
- if (!shouldTransformAgain()) {
- return code
- }
- const transformResult: IWxTransformResult = wxTransformer({
- code,
- sourcePath: sourceFilePath,
- sourceDir,
- outputPath: outputFilePath,
- isNormal: true,
- isTyped: false,
- adapter,
- env: constantsReplaceList,
- jsxAttributeNameReplace
- })
- const res = parseAst(PARSE_AST_TYPE.NORMAL, transformResult.ast, [], sourceFilePath, outputFilePath)
- return res.code
-}
diff --git a/packages/taro-cli/src/mini/compileStyle.ts b/packages/taro-cli/src/mini/compileStyle.ts
deleted file mode 100644
index 2b859e8a9fee..000000000000
--- a/packages/taro-cli/src/mini/compileStyle.ts
+++ /dev/null
@@ -1,324 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import * as autoprefixer from 'autoprefixer'
-import * as postcss from 'postcss'
-import * as pxtransform from 'postcss-pxtransform'
-import rewriter from '../quickapp/style-rewriter'
-import getHashName from '../util/hash'
-import browserList from '../config/browser_list'
-import {
- resolveNpmPkgMainPath,
- resolveNpmFilesPath
-} from '../util/resolve_npm_files'
-import {
- callPlugin, callPluginSync
-} from '../util/npm'
-import {
- isNpmPkg,
- processStyleImports,
- promoteRelativePath,
- getBabelConfig
-} from '../util'
-import { CSS_EXT, FILE_PROCESSOR_MAP, DEVICE_RATIO_NAME, BUILD_TYPES } from '../util/constants'
-import { IMiniAppConfig } from '../util/types'
-
-import {
- getBuildData
-} from './helper'
-
-const cssUrlParse = require('postcss-url')
-const genericNames = require('generic-names')
-const Scope = require('postcss-modules-scope')
-const Values = require('postcss-modules-values')
-const LocalByDefault = require('postcss-modules-local-by-default')
-const ExtractImports = require('postcss-modules-extract-imports')
-const ResolveImports = require('postcss-modules-resolve-imports')
-interface IStyleObj {
- css: string,
- filePath: string
-}
-
-const isBuildingStyles: Map = new Map()
-
-export function initCompileStyles () {
- isBuildingStyles.clear()
-}
-
-export interface ICSSModulesConf {
- enable: boolean,
- config: {
- generateScopedName: string | ((localName: string, absoluteFilePath: string) => string),
- namingPattern: 'global' | 'module'
- }
-}
-
-/**
- * css module processor
- * @param styleObj { css: string, filePath: '' }
- * @returns postcss.process()
- */
-export async function processStyleUseCssModule (styleObj: IStyleObj): Promise {
- const { projectConfig, appPath } = getBuildData()
- const weappConf = Object.assign({}, projectConfig.weapp)
- const useModuleConf = weappConf.module || {}
- const customPostcssConf = useModuleConf.postcss || {}
- const customCssModulesConf = Object.assign({
- enable: false,
- config: {
- generateScopedName: '[name]__[local]___[hash:base64:5]',
- namingPattern: 'global'
- }
- }, customPostcssConf.cssModules || {}) as ICSSModulesConf
- if (!customCssModulesConf.enable) {
- return styleObj
- }
- const namingPattern = customCssModulesConf.config.namingPattern
- if (namingPattern === 'module') {
- // 只对 xxx.module.[css|scss|less|styl] 等样式文件做处理
- const DO_USE_CSS_MODULE_REGEX = /^(.*\.module).*\.(css|scss|less|styl)$/
- if (!DO_USE_CSS_MODULE_REGEX.test(styleObj.filePath)) return styleObj
- } else {
- // 对 xxx.global.[css|scss|less|styl] 等样式文件不做处理
- const DO_NOT_USE_CSS_MODULE_REGEX = /^(.*\.global).*\.(css|scss|less|styl)$/
- if (DO_NOT_USE_CSS_MODULE_REGEX.test(styleObj.filePath)) return styleObj
- }
- const generateScopedName = customCssModulesConf.config.generateScopedName
- const context = appPath
- let scopedName
- if (generateScopedName) {
- scopedName = typeof generateScopedName === 'function'
- ? (local, filename) => generateScopedName(local, filename)
- : genericNames(generateScopedName, { context })
- } else {
- scopedName = (local, filename) => Scope.generateScopedName(local, path.relative(context, filename))
- }
- const postcssPlugins = [
- Values,
- LocalByDefault,
- ExtractImports,
- new Scope({ generateScopedName: scopedName }),
- new ResolveImports({ resolve: Object.assign({}, { extensions: CSS_EXT }) })
- ]
- const runner = postcss(postcssPlugins)
- const cssText = (await compileStyleWithPlugin(styleObj.filePath)).css
- const result = runner.process(cssText, Object.assign({}, { from: styleObj.filePath }))
- return result
-}
-
-async function processStyleWithPostCSS (styleObj: IStyleObj): Promise {
- const { appPath, outputDir,projectConfig, npmConfig, isProduction, buildAdapter } = getBuildData()
- const weappConf = Object.assign({}, projectConfig.weapp)
- const publicPath = weappConf.publicPath
- const useModuleConf = weappConf.module || {}
- const customPostcssConf = useModuleConf.postcss || {}
- const customCssModulesConf = Object.assign({
- enable: false,
- config: {
- generateScopedName: '[name]__[local]___[hash:base64:5]'
- }
- }, customPostcssConf.cssModules || {})
- const customPxtransformConf = Object.assign({
- enable: true,
- config: {}
- }, customPostcssConf.pxtransform || {})
- const customUrlConf = {
- enable: true,
- config: {
- limit: 10240
- } as any,
- ...customPostcssConf.url
- }
- const customAutoprefixerConf = Object.assign({
- enable: true,
- config: {
- browsers: browserList
- }
- }, customPostcssConf.autoprefixer || {})
- const postcssPxtransformOption = {
- designWidth: projectConfig.designWidth || 750,
- platform: 'weapp'
- }
-
- if (projectConfig.hasOwnProperty(DEVICE_RATIO_NAME)) {
- postcssPxtransformOption[DEVICE_RATIO_NAME] = projectConfig.deviceRatio
- }
-
- const maxSize = (customUrlConf.config.limit || 1024) / 1024
- const postcssPxtransformConf = Object.assign({}, postcssPxtransformOption, customPxtransformConf, customPxtransformConf.config)
- const processors: any[] = []
- if (customAutoprefixerConf.enable) {
- processors.push(autoprefixer(customAutoprefixerConf.config))
- }
- if (customPxtransformConf.enable && buildAdapter !== BUILD_TYPES.QUICKAPP) {
- processors.push(pxtransform(postcssPxtransformConf))
- }
- if (customUrlConf.enable) {
- let inlineOpts = {}
- const url = customUrlConf.config.url || 'inline'
- if (url === 'inline' && !publicPath) {
- inlineOpts = {
- encodeType: 'base64',
- maxSize,
- url
- }
- }
-
-
-
- /***
- * 修复小程序下css没有正确引用样式
- * 当前位置只进行了文件hash转换并没有做文件copy操作
- */
- if (publicPath && typeof url !== 'function') {
- customUrlConf.config.url = (assets) => {
-
- // 本地文件路径
- if (/\./.test(assets.url)) {
- const hashName = getHashName(assets.absolutePath);
- assets.url = (/\/$/.test(publicPath) ? publicPath : publicPath + '/') + hashName;
-
- // 目前只在头条小程序复现,避免影响,只针对头条处理
- if(buildAdapter === BUILD_TYPES.TT){
- const outputFile = path.resolve(outputDir,`./${assets.url}`);
- fs.ensureDirSync(path.dirname(outputFile));
- fs.copySync(assets.absolutePath,outputFile);
- // 头条下不支持 / ,修正头条css background路径
- assets.url = assets.url.replace(/^[\/]/,'');
- }
- }
-
- return assets.url
- }
-
- }
-
- const cssUrlParseConf = {
- ...inlineOpts,
- ...customUrlConf.config
- }
- processors.push(cssUrlParse(cssUrlParseConf))
- }
-
- const defaultPostCSSPluginNames = ['autoprefixer', 'pxtransform', 'url', 'cssModules']
- Object.keys(customPostcssConf).forEach(pluginName => {
- if (defaultPostCSSPluginNames.indexOf(pluginName) < 0) {
- const pluginConf = customPostcssConf[pluginName]
- if (pluginConf && pluginConf.enable) {
- if (!isNpmPkg(pluginName)) { // local plugin
- pluginName = path.join(appPath, pluginName)
- }
- processors.push(require(resolveNpmPkgMainPath(pluginName, isProduction, npmConfig, buildAdapter, appPath))(pluginConf.config || {}))
- }
- }
- })
- let css = styleObj.css
- if (customCssModulesConf.enable) {
- css = (await processStyleUseCssModule(styleObj)).css
- }
- const postcssResult = await postcss(processors).process(css, {
- from: styleObj.filePath
- })
- return postcssResult.css
-}
-
-function compileImportStyles (filePath: string, importStyles: string[]) {
- const { sourceDir, outputDir } = getBuildData()
- if (importStyles.length) {
- importStyles.forEach(async importItem => {
- const importFilePath = path.resolve(filePath, '..', importItem)
- if (fs.existsSync(importFilePath)) {
- await compileDepStyles(importFilePath.replace(sourceDir, outputDir), [importFilePath])
- }
- })
- }
-}
-
-function compileStyleWithPlugin (filePath) {
- const { appPath, npmOutputDir, nodeModulesPath, projectConfig, npmConfig, isProduction, buildAdapter, quickappManifest } = getBuildData()
- const fileExt = path.extname(filePath)
- const pluginName = FILE_PROCESSOR_MAP[fileExt]
- const fileContent = fs.readFileSync(filePath).toString()
- const pluginsConfig = projectConfig.plugins || {}
- const weappConf = projectConfig.weapp || {} as IMiniAppConfig
- const useCompileConf = Object.assign({}, weappConf.compile)
- const cssImportsRes = processStyleImports(fileContent, buildAdapter, (str, stylePath) => {
- if (stylePath.indexOf('~') === 0) {
- let newStylePath = stylePath
- newStylePath = stylePath.replace('~', '')
- const npmInfo = resolveNpmFilesPath({
- pkgName: newStylePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root: appPath,
- rootNpm: nodeModulesPath,
- npmOutputDir,
- compileConfig: useCompileConf,
- env: projectConfig.env || {},
- uglify: projectConfig!.plugins!.uglify || { enable: true },
- babelConfig: getBabelConfig(projectConfig!.plugins!.babel) || {},
- quickappManifest
- })
- const importRelativePath = promoteRelativePath(path.relative(filePath, npmInfo.main))
- return str.replace(stylePath, importRelativePath)
- }
- return str
- })
- compileImportStyles(filePath, cssImportsRes.imports)
- if (pluginName) {
- return callPlugin(pluginName, cssImportsRes.content, filePath, pluginsConfig[pluginName] || {}, appPath)
- .then(res => ({
- css: cssImportsRes.style.join('\n') + '\n' + res.css,
- filePath
- })).catch(err => {
- if (err) {
- console.log(err)
- if (isProduction) {
- process.exit(0)
- }
- }
- })
- }
- return new Promise(resolve => {
- resolve({
- css: cssImportsRes.style.join('\n') + '\n' + cssImportsRes.content,
- filePath
- })
- })
-}
-
-export function compileDepStyles (outputFilePath: string, styleFiles: string[]) {
- if (isBuildingStyles.get(outputFilePath)) {
- return Promise.resolve({})
- }
- const { appPath, projectConfig, isProduction, buildAdapter } = getBuildData()
- const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
- const pluginsConfig = projectConfig.plugins || {}
- isBuildingStyles.set(outputFilePath, true)
- return Promise.all(styleFiles.map(async p => compileStyleWithPlugin(p))).then(async resList => {
- await Promise.all(resList.map(res => processStyleWithPostCSS(res)))
- .then(cssList => {
- let resContent = cssList.map(res => res).join('\n')
- // 非生产模式下用户 csso 配置不存在则默认 csso 为禁用
- let cssoPuginConfig = pluginsConfig.csso || { enable: false }
- if (isProduction) {
- cssoPuginConfig = pluginsConfig.csso || { enable: true }
- }
- if (cssoPuginConfig.enable) {
- const cssoConfig = cssoPuginConfig.config || {}
- const cssoResult = callPluginSync('csso', resContent, outputFilePath, cssoConfig, appPath)
- resContent = cssoResult.css
- }
- if (isQuickApp) {
- const transformStyle = rewriter(resContent, isProduction)
- if(transformStyle) {
- resContent = transformStyle
- }
- }
-
- fs.ensureDirSync(path.dirname(outputFilePath))
- fs.writeFileSync(outputFilePath, resContent)
- })
- })
-}
diff --git a/packages/taro-cli/src/mini/component.ts b/packages/taro-cli/src/mini/component.ts
deleted file mode 100644
index 27f356461939..000000000000
--- a/packages/taro-cli/src/mini/component.ts
+++ /dev/null
@@ -1,376 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import { Config as IConfig } from '@tarojs/taro'
-import * as wxTransformer from '@tarojs/transformer-wx'
-import * as _ from 'lodash'
-import traverse from 'babel-traverse'
-
-import { IWxTransformResult, TogglableOptions } from '../util/types'
-import {
- REG_TYPESCRIPT,
- processTypeEnum,
- NODE_MODULES_REG,
- NODE_MODULES,
- PARSE_AST_TYPE,
- BUILD_TYPES
-} from '../util/constants'
-import {
- printLog,
- isEmptyObject,
- promoteRelativePath,
- isDifferentArray,
- generateQuickAppUx,
- uglifyJS,
- extnameExpRegOf,
- generateAlipayPath
-} from '../util'
-
-import { parseComponentExportAst, parseAst } from './astProcess'
-import { IComponentObj, IBuildResult } from './interface'
-import {
- setHasBeenBuiltComponents,
- isComponentHasBeenBuilt,
- getBuildData,
- setComponentExportsMap,
- getComponentExportsMap,
- getRealComponentsPathList,
- copyFilesFromSrcToOutput,
- getDependencyTree,
- buildUsingComponents,
- getDepComponents,
- getImportTaroSelfComponents
-} from './helper'
-import { compileScriptFile, compileDepScripts } from './compileScript'
-import { compileDepStyles } from './compileStyle'
-import { transfromNativeComponents, processNativeWxml } from './native'
-
-const notTaroComponents = new Set()
-const componentsNamedMap = new Map()
-const componentsBuildResult = new Map()
-
-export function getComponentsNamedMap () {
- return componentsNamedMap
-}
-
-export function isFileToBeTaroComponent (
- code: string,
- sourcePath: string,
- outputPath: string
-) {
- const {
- buildAdapter,
- sourceDir,
- constantsReplaceList,
- jsxAttributeNameReplace,
- alias
- } = getBuildData()
- const transformResult: IWxTransformResult = wxTransformer({
- code,
- sourcePath: sourcePath,
- sourceDir,
- outputPath: outputPath,
- isNormal: true,
- isTyped: REG_TYPESCRIPT.test(sourcePath),
- adapter: buildAdapter,
- env: constantsReplaceList,
- jsxAttributeNameReplace,
- alias
- })
- const { ast }: IWxTransformResult = transformResult
- let isTaroComponent = false
-
- traverse(ast, {
- JSXElement () {
- isTaroComponent = true
- }
- })
-
- return {
- isTaroComponent,
- transformResult
- }
-}
-
-export interface IComponentBuildConfig {
- outputDir?: string,
- outputDirName?: string,
- npmSkip?: boolean
-}
-
-export function buildDepComponents (
- componentPathList: IComponentObj[],
- buildConfig?: IComponentBuildConfig
-): Promise {
- return Promise.all(componentPathList.map(componentObj => buildSingleComponent(componentObj, buildConfig)))
-}
-
-export async function buildSingleComponent (
- componentObj: IComponentObj,
- buildConfig: IComponentBuildConfig = {}
-): Promise {
-
- const {
- appPath,
- buildAdapter,
- constantsReplaceList,
- sourceDir,
- outputDir,
- sourceDirName,
- outputDirName,
- npmOutputDir,
- nodeModulesPath,
- outputFilesTypes,
- isProduction,
- jsxAttributeNameReplace,
- projectConfig,
- alias
- } = getBuildData()
- const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
-
- if (componentObj.path) {
- componentsNamedMap.set(componentObj.path, {
- name: componentObj.name,
- type: componentObj.type
- })
- }
- const component = componentObj.path
- if (!component) {
- printLog(processTypeEnum.ERROR, '组件错误', `组件${_.upperFirst(_.camelCase(componentObj.name))}路径错误,请检查!(可能原因是导出的组件名不正确)`)
- return {
- js: '',
- wxss: '',
- wxml: ''
- }
- }
- let componentShowPath = component.replace(appPath + path.sep, '')
- componentShowPath = componentShowPath.split(path.sep).join('/')
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- componentShowPath = generateAlipayPath(componentShowPath)
- }
- let isComponentFromNodeModules = false
- let sourceDirPath = sourceDir
- let buildOutputDir = outputDir
- // 来自 node_modules 的组件
- if (NODE_MODULES_REG.test(componentShowPath)) {
- isComponentFromNodeModules = true
- sourceDirPath = nodeModulesPath
- buildOutputDir = npmOutputDir
- }
- let outputComponentShowPath = componentShowPath.replace(isComponentFromNodeModules ? NODE_MODULES : sourceDirName, buildConfig.outputDirName || outputDirName)
- outputComponentShowPath = outputComponentShowPath.replace(extnameExpRegOf(outputComponentShowPath), '')
- printLog(processTypeEnum.COMPILE, '组件文件', componentShowPath)
- const componentContent = fs.readFileSync(component).toString()
- let outputComponentJSPath = component.replace(sourceDirPath, buildConfig.outputDir || buildOutputDir).replace(extnameExpRegOf(component), outputFilesTypes.SCRIPT)
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- outputComponentJSPath = generateAlipayPath(outputComponentJSPath)
- }
- const outputComponentWXMLPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.TEMPL)
- const outputComponentWXSSPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.STYLE)
- const outputComponentJSONPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.CONFIG)
-
- try {
- const isTaroComponentRes = isFileToBeTaroComponent(componentContent, component, outputComponentJSPath)
- const componentExportsMap = getComponentExportsMap()
- if (!isTaroComponentRes.isTaroComponent) {
- const transformResult = isTaroComponentRes.transformResult
- const componentRealPath = parseComponentExportAst(transformResult.ast, componentObj.name as string, component, componentObj.type as string)
- const realComponentObj: IComponentObj = {
- path: componentRealPath,
- name: componentObj.name,
- type: componentObj.type
- }
- let isInMap = false
- notTaroComponents.add(component)
- if (componentExportsMap.size) {
- componentExportsMap.forEach(componentExports => {
- componentExports.forEach(item => {
- if (item.path === component) {
- isInMap = true
- item.path = componentRealPath
- }
- })
- })
- }
- if (!isInMap) {
- const componentExportsMapItem = componentExportsMap.get(component) || []
- componentExportsMapItem.push(realComponentObj)
- setComponentExportsMap(component, componentExportsMapItem)
- }
- return await buildSingleComponent(realComponentObj, buildConfig)
- }
- if (isComponentHasBeenBuilt(componentObj.path as string) && componentsBuildResult.get(componentObj.path as string)) {
- return componentsBuildResult.get(componentObj.path as string) as IBuildResult
- }
- const buildResult = {
- js: outputComponentJSPath,
- wxss: outputComponentWXSSPath,
- wxml: outputComponentWXMLPath
- }
- componentsBuildResult.set(component, buildResult)
- const transformResult: IWxTransformResult = wxTransformer({
- code: componentContent,
- sourcePath: component,
- sourceDir,
- outputPath: outputComponentJSPath,
- isRoot: false,
- isTyped: REG_TYPESCRIPT.test(component),
- isNormal: false,
- adapter: buildAdapter,
- env: constantsReplaceList,
- jsxAttributeNameReplace,
- alias
- })
- const componentWXMLContent = isProduction ? transformResult.compressedTemplate : transformResult.template
- const componentDepComponents = transformResult.components
- const res = parseAst(PARSE_AST_TYPE.COMPONENT, transformResult.ast, componentDepComponents, component, outputComponentJSPath, buildConfig.npmSkip)
- let resCode = res.code
- fs.ensureDirSync(path.dirname(outputComponentJSPath))
- if (!isComponentHasBeenBuilt(component)) {
- setHasBeenBuiltComponents(component)
- }
- // 解析原生组件
- const { usingComponents = {} }: IConfig = res.configObj
- if (usingComponents && !isEmptyObject(usingComponents)) {
- const keys = Object.keys(usingComponents)
- keys.forEach(item => {
- componentDepComponents.forEach(component => {
- if (_.camelCase(item) === _.camelCase(component.name)) {
- delete usingComponents[item]
- }
- })
- })
- transfromNativeComponents(outputComponentJSONPath.replace(buildConfig.outputDir || buildOutputDir, sourceDirPath), res.configObj)
- }
- let realComponentsPathList: IComponentObj[] = []
- realComponentsPathList = getRealComponentsPathList(component, componentDepComponents)
-
- if (!isQuickApp) {
- resCode = await compileScriptFile(resCode, component, outputComponentJSPath, buildAdapter)
- if (isProduction) {
- resCode = uglifyJS(resCode, component, appPath, projectConfig!.plugins!.uglify as TogglableOptions)
- }
- } else {
- // 快应用编译,搜集创建组件 ux 文件
- const importTaroSelfComponents = getImportTaroSelfComponents(outputComponentJSPath, res.taroSelfComponents)
- const importCustomComponents = new Set(realComponentsPathList.map(item => {
- return {
- path: promoteRelativePath(path.relative(component, item.path as string)).replace(extnameExpRegOf(item.path as string), ''),
- name: item.name as string
- }
- }))
- const usingComponents = res.configObj.usingComponents
- let importUsingComponent: any = new Set([])
- if (usingComponents) {
- importUsingComponent = new Set(Object.keys(usingComponents).map(item => {
- return {
- name: item,
- path: usingComponents[item]
- }
- }))
- }
- let styleRelativePath
- if (res.styleFiles.length) {
- styleRelativePath = promoteRelativePath(path.relative(outputComponentJSPath, outputComponentWXSSPath))
- }
- const uxTxt = generateQuickAppUx({
- script: resCode,
- style: styleRelativePath,
- imports: new Set([...importTaroSelfComponents, ...importCustomComponents, ...importUsingComponent]),
- template: componentWXMLContent
- })
- fs.writeFileSync(outputComponentWXMLPath, uxTxt)
- printLog(processTypeEnum.GENERATE, '组件文件', `${outputComponentShowPath}${outputFilesTypes.TEMPL}`)
- }
-
- const dependencyTree = getDependencyTree()
- const fileDep = dependencyTree.get(component) || {
- style: [],
- script: [],
- json: [],
- media: []
- }
- // 编译依赖的组件文件
- if (realComponentsPathList.length) {
- res.scriptFiles = res.scriptFiles.map(item => {
- for (let i = 0; i < realComponentsPathList.length; i++) {
- const componentObj = realComponentsPathList[i]
- const componentPath = componentObj.path
- if (item === componentPath) {
- return ''
- }
- }
- return item
- }).filter(item => item)
- realComponentsPathList = realComponentsPathList.filter(item => !isComponentHasBeenBuilt(item.path as string) || notTaroComponents.has(item.path as string))
- await buildDepComponents(realComponentsPathList, buildConfig)
- }
- if (componentExportsMap.size && realComponentsPathList.length) {
- realComponentsPathList.forEach(componentObj => {
- if (componentExportsMap.has(componentObj.path as string)) {
- const componentMap = componentExportsMap.get(componentObj.path as string)
- componentMap && componentMap.forEach(componentObj => {
- componentDepComponents.forEach(depComponent => {
- if (depComponent.name === componentObj.name) {
- let componentPath = componentObj.path
- let realPath
- if (NODE_MODULES_REG.test(componentPath as string)) {
- componentPath = (componentPath as string).replace(nodeModulesPath, npmOutputDir)
- realPath = promoteRelativePath(path.relative(outputComponentJSPath, componentPath))
- } else {
- realPath = promoteRelativePath(path.relative(component, (componentPath as string)))
- }
- depComponent.path = realPath.replace(extnameExpRegOf(realPath), '')
- }
- })
- })
- }
- })
- }
- if (!isQuickApp) {
- fs.writeFileSync(outputComponentJSONPath, JSON.stringify(_.merge({}, buildUsingComponents(component, componentDepComponents, true), res.configObj), null, 2))
- printLog(processTypeEnum.GENERATE, '组件配置', `${outputDirName}/${outputComponentShowPath}${outputFilesTypes.CONFIG}`)
- fs.writeFileSync(outputComponentJSPath, resCode)
- printLog(processTypeEnum.GENERATE, '组件逻辑', `${outputDirName}/${outputComponentShowPath}${outputFilesTypes.SCRIPT}`)
- fs.writeFileSync(outputComponentWXMLPath, componentWXMLContent)
- processNativeWxml(outputComponentWXMLPath.replace(outputDir, sourceDir), componentWXMLContent, outputComponentWXMLPath)
- printLog(processTypeEnum.GENERATE, '组件模板', `${outputDirName}/${outputComponentShowPath}${outputFilesTypes.TEMPL}`)
- }
- // 编译依赖的脚本文件
- if (isDifferentArray(fileDep['script'], res.scriptFiles)) {
- await compileDepScripts(res.scriptFiles, !isQuickApp)
- }
- const depComponents = getDepComponents()
- // 编译样式文件
- if (isDifferentArray(fileDep['style'], res.styleFiles) || isDifferentArray(depComponents.get(component) || [], componentDepComponents)) {
- printLog(processTypeEnum.GENERATE, '组件样式', `${outputDirName}/${outputComponentShowPath}${outputFilesTypes.STYLE}`)
- await compileDepStyles(outputComponentWXSSPath, res.styleFiles)
- }
- // 拷贝依赖文件
- if (isDifferentArray(fileDep['json'], res.jsonFiles)) {
- copyFilesFromSrcToOutput(res.jsonFiles)
- }
- if (isDifferentArray(fileDep['media'], res.mediaFiles)) {
- copyFilesFromSrcToOutput(res.mediaFiles)
- }
- fileDep['style'] = res.styleFiles
- fileDep['script'] = res.scriptFiles
- fileDep['json'] = res.jsonFiles
- fileDep['media'] = res.mediaFiles
- dependencyTree.set(component, fileDep)
- depComponents.set(component, componentDepComponents)
-
- return buildResult
- } catch (err) {
- printLog(processTypeEnum.ERROR, '组件编译', `组件${componentShowPath}编译失败!`)
- if (!isComponentHasBeenBuilt(component)) {
- setHasBeenBuiltComponents(component)
- }
- console.log(err)
- return {
- js: '',
- wxss: '',
- wxml: ''
- }
- }
-}
diff --git a/packages/taro-cli/src/mini/constants.ts b/packages/taro-cli/src/mini/constants.ts
deleted file mode 100644
index 572b8a827ed4..000000000000
--- a/packages/taro-cli/src/mini/constants.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-
-export const QUICKAPP_SPECIAL_COMPONENTS = new Set([
- 'View',
- 'Text',
- 'Block'
-])
diff --git a/packages/taro-cli/src/mini/entry.ts b/packages/taro-cli/src/mini/entry.ts
deleted file mode 100644
index 980b85508757..000000000000
--- a/packages/taro-cli/src/mini/entry.ts
+++ /dev/null
@@ -1,200 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import { AppConfig } from '@tarojs/taro'
-import * as wxTransformer from '@tarojs/transformer-wx'
-
-import {
- REG_SCRIPTS,
- REG_TYPESCRIPT,
- CONFIG_MAP,
- processTypeEnum,
- PARSE_AST_TYPE,
- BUILD_TYPES
-} from '../util/constants'
-import {
- isDifferentArray,
- printLog,
- isEmptyObject,
- resolveScriptPath,
- promoteRelativePath,
- generateQuickAppUx,
- uglifyJS
-} from '../util'
-import { IWxTransformResult, TogglableOptions } from '../util/types'
-
-import { getBuildData, copyFilesFromSrcToOutput, getDependencyTree } from './helper'
-import { compileDepScripts, compileScriptFile } from './compileScript'
-import { compileDepStyles } from './compileStyle'
-import { parseAst } from './astProcess'
-import { buildSingleComponent } from './component'
-
-async function buildCustomTabbar () {
- const {
- sourceDir
- } = getBuildData()
- const customTabbarPath = path.join(sourceDir, 'custom-tab-bar')
- const customTabbarJSPath = resolveScriptPath(customTabbarPath)
- await buildSingleComponent({
- path: customTabbarJSPath,
- name: 'custom-tab-bar'
- })
-}
-
-function buildWorkers (worker: string) {
- const {
- sourceDir
- } = getBuildData()
- printLog(processTypeEnum.COMPILE, 'Workers', '编译 worker 相关文件')
- const workerDir = path.join(sourceDir, worker)
- function fileRecursiveSearch (fileDir) {
- fs.readdir(fileDir, (err, files) => {
- if (err) {
- console.warn(err)
- } else {
- files.forEach(filename => {
- const filePath = path.join(fileDir, filename)
- fs.stat(filePath, async (err, stats) => {
- if (err) {
- console.warn(err)
- } else {
- const isFile = stats.isFile()
- const isDir = stats.isDirectory()
- if (isFile) {
- if (REG_SCRIPTS.test(filePath)) {
- await compileDepScripts([filePath], true)
- } else {
- copyFilesFromSrcToOutput([filePath])
- }
- } else if (isDir) {
- fileRecursiveSearch(filePath)
- }
- }
- })
- })
- }
- })
- }
- fileRecursiveSearch(workerDir)
-}
-
-export async function buildEntry (): Promise {
- const {
- appPath,
- buildAdapter,
- constantsReplaceList,
- entryFilePath,
- sourceDir,
- outputDir,
- entryFileName,
- sourceDirName,
- outputDirName,
- projectConfig,
- outputFilesTypes,
- isProduction,
- jsxAttributeNameReplace
- } = getBuildData()
- const weappConf = projectConfig.weapp || { appOutput: true}
- const appOutput = typeof weappConf.appOutput === 'boolean' ? weappConf.appOutput : true
- const entryFileCode = fs.readFileSync(entryFilePath).toString()
- const outputEntryFilePath = path.join(outputDir, entryFileName)
-
- printLog(processTypeEnum.COMPILE, '入口文件', `${sourceDirName}/${entryFileName}`)
- try {
- const transformResult: IWxTransformResult = wxTransformer({
- code: entryFileCode,
- sourcePath: entryFilePath,
- sourceDir,
- outputPath: outputEntryFilePath,
- isApp: true,
- isTyped: REG_TYPESCRIPT.test(entryFilePath),
- adapter: buildAdapter,
- env: constantsReplaceList,
- jsxAttributeNameReplace
- })
- // app.js的template忽略
- const res = parseAst(PARSE_AST_TYPE.ENTRY, transformResult.ast, [], entryFilePath, outputEntryFilePath)
- let resCode = res.code
- if (buildAdapter !== BUILD_TYPES.QUICKAPP) {
- resCode = await compileScriptFile(resCode, entryFilePath, outputEntryFilePath, buildAdapter)
- if (isProduction) {
- resCode = uglifyJS(resCode, entryFilePath, appPath, projectConfig!.plugins!.uglify as TogglableOptions)
- }
- }
- // 处理res.configObj 中的tabBar配置
- const tabBar = res.configObj.tabBar
- if (tabBar && typeof tabBar === 'object' && !isEmptyObject(tabBar)) {
- const {
- list: listConfig,
- iconPath: pathConfig,
- selectedIconPath: selectedPathConfig
- } = CONFIG_MAP[buildAdapter]
- const list = tabBar[listConfig] || []
- let tabBarIcons: string[] = []
- list.forEach(item => {
- item[pathConfig] && tabBarIcons.push(item[pathConfig])
- item[selectedPathConfig] && tabBarIcons.push(item[selectedPathConfig])
- })
- tabBarIcons = tabBarIcons.map(item => path.resolve(sourceDir, item))
- if (tabBarIcons && tabBarIcons.length) {
- res.mediaFiles = res.mediaFiles.concat(tabBarIcons)
- }
- }
- if (buildAdapter === BUILD_TYPES.QUICKAPP) {
- // 生成 快应用 ux 文件
- const styleRelativePath = promoteRelativePath(path.relative(outputEntryFilePath, path.join(outputDir, `app${outputFilesTypes.STYLE}`)))
- const uxTxt = generateQuickAppUx({
- script: resCode,
- style: styleRelativePath
- })
- fs.writeFileSync(path.join(outputDir, `app${outputFilesTypes.TEMPL}`), uxTxt)
- printLog(processTypeEnum.GENERATE, '入口文件', `${outputDirName}/app${outputFilesTypes.TEMPL}`)
- } else {
- if (res.configObj.workers) {
- buildWorkers(res.configObj.workers)
- }
- if (res.configObj.tabBar && res.configObj.tabBar.custom) {
- await buildCustomTabbar()
- }
- if (appOutput) {
- fs.writeFileSync(path.join(outputDir, 'app.json'), JSON.stringify(res.configObj, null, 2))
- printLog(processTypeEnum.GENERATE, '入口配置', `${outputDirName}/app.json`)
- fs.writeFileSync(path.join(outputDir, 'app.js'), resCode)
- printLog(processTypeEnum.GENERATE, '入口文件', `${outputDirName}/app.js`)
- }
- }
- const dependencyTree = getDependencyTree()
- const fileDep = dependencyTree.get(entryFilePath) || {
- style: [],
- script: [],
- json: [],
- media: []
- }
- // 编译依赖的脚本文件
- if (isDifferentArray(fileDep['script'], res.scriptFiles)) {
- await compileDepScripts(res.scriptFiles, buildAdapter !== BUILD_TYPES.QUICKAPP)
- }
- // 编译样式文件
- if (isDifferentArray(fileDep['style'], res.styleFiles) && appOutput) {
- await compileDepStyles(path.join(outputDir, `app${outputFilesTypes.STYLE}`), res.styleFiles)
- printLog(processTypeEnum.GENERATE, '入口样式', `${outputDirName}/app${outputFilesTypes.STYLE}`)
- }
- // 拷贝依赖文件
- if (isDifferentArray(fileDep['json'], res.jsonFiles)) {
- copyFilesFromSrcToOutput(res.jsonFiles)
- }
-
- if (isDifferentArray(fileDep['media'], res.mediaFiles)) {
- copyFilesFromSrcToOutput(res.mediaFiles)
- }
- fileDep['style'] = res.styleFiles
- fileDep['script'] = res.scriptFiles
- fileDep['json'] = res.jsonFiles
- fileDep['media'] = res.mediaFiles
- dependencyTree.set(entryFilePath, fileDep)
- return res.configObj
- } catch (err) {
- console.log(err)
- return {}
- }
-}
diff --git a/packages/taro-cli/src/mini/helper.ts b/packages/taro-cli/src/mini/helper.ts
index de8f4f50dc26..c4c5eca82694 100644
--- a/packages/taro-cli/src/mini/helper.ts
+++ b/packages/taro-cli/src/mini/helper.ts
@@ -1,63 +1,34 @@
import * as fs from 'fs-extra'
import * as path from 'path'
+import * as os from 'os'
+import { execSync } from 'child_process'
import * as _ from 'lodash'
-import { Config } from '@tarojs/taro'
-import * as wxTransformer from '@tarojs/transformer-wx'
-import getHashName from '../util/hash'
+import * as ora from 'ora'
+import chalk from 'chalk'
+import { IProjectConfig, ITaroManifestConfig } from '@tarojs/taro/types/compile'
import {
BUILD_TYPES,
MINI_APP_FILES,
IMINI_APP_FILE_TYPE,
PROJECT_CONFIG,
- processTypeEnum,
- REG_SCRIPTS,
- NODE_MODULES_REG,
- taroJsQuickAppComponents,
- PARSE_AST_TYPE,
NODE_MODULES
} from '../util/constants'
import {
resolveScriptPath,
- isAliasPath,
- replaceAliasPath,
- promoteRelativePath,
- isNpmPkg,
- printLog,
- generateEnvList,
- generateConstantsList,
isEmptyObject,
recursiveFindNodeModules,
- getBabelConfig,
- extnameExpRegOf,
- generateAlipayPath
+ shouldUseCnpm,
+ shouldUseYarn,
+ unzip
} from '../util'
-import { resolveNpmPkgMainPath } from '../util/resolve_npm_files'
-import { resolveNpmSync } from '../util/npm'
-
import {
- IProjectConfig,
IOption,
- INpmConfig,
- IWxTransformResult,
- ITaroManifestConfig
+ INpmConfig
} from '../util/types'
import CONFIG from '../config'
-
-import {
- IComponentObj,
- IBuildResult,
- IDependency
-} from './interface'
-import { getNpmOutputDir } from '../util/npmExact'
-import { parseAst } from './astProcess'
-
-const isCopyingFiles: Map = new Map()
-const dependencyTree: Map = new Map()
-const hasBeenBuiltComponents: Set = new Set()
-const componentExportsMap = new Map()
-const depComponents = new Map()
+import { downloadGithubRepoLatestRelease } from '../util/dowload'
export interface IBuildData {
appPath: string,
@@ -71,16 +42,12 @@ export interface IBuildData {
entryFileName: string,
projectConfig: IProjectConfig,
npmConfig: INpmConfig,
- appConfig: Config,
- pageConfigs: Map,
alias: IOption,
compileConfig: {[k: string]: any},
isProduction: boolean,
buildAdapter: BUILD_TYPES,
outputFilesTypes: IMINI_APP_FILE_TYPE,
- constantsReplaceList: IOption,
nodeModulesPath: string,
- npmOutputDir: string,
jsxAttributeNameReplace?: {
[key: string]: any
},
@@ -89,19 +56,6 @@ export interface IBuildData {
let BuildData: IBuildData
-export const shouldTransformAgain = function () {
- const babelConfig = getBabelConfig(BuildData.projectConfig!.plugins!.babel)
- const pluginsStr = JSON.stringify(babelConfig.plugins)
- if (/transform-runtime/.test(pluginsStr)) {
- return true
- }
- return false
-}
-
-export function setAppConfig (appConfig: Config) {
- BuildData.appConfig = appConfig
-}
-
export function setIsProduction (isProduction: boolean) {
BuildData.isProduction = isProduction
}
@@ -110,7 +64,7 @@ export function setQuickappManifest (quickappManifest: ITaroManifestConfig) {
BuildData.quickappManifest = quickappManifest
}
-export function setBuildData (appPath: string, adapter: BUILD_TYPES): IBuildData {
+export function setBuildData (appPath: string, adapter: BUILD_TYPES, options?: Partial | null): IBuildData {
const configDir = path.join(appPath, PROJECT_CONFIG)
const projectConfig = require(configDir)(_.merge)
const sourceDirName = projectConfig.sourceRoot || CONFIG.SOURCE_DIR
@@ -141,16 +95,10 @@ export function setBuildData (appPath: string, adapter: BUILD_TYPES): IBuildData
npmConfig,
alias: pathAlias,
isProduction: false,
- appConfig: {},
- pageConfigs: new Map(),
compileConfig: useCompileConf,
buildAdapter: adapter,
outputFilesTypes: MINI_APP_FILES[adapter],
- constantsReplaceList: Object.assign({}, generateEnvList(projectConfig.env || {}), generateConstantsList(projectConfig.defineConstants || {}), {
- 'process.env.TARO_ENV': adapter
- }),
nodeModulesPath: recursiveFindNodeModules(path.join(appPath, NODE_MODULES)),
- npmOutputDir: getNpmOutputDir(outputDir, configDir, npmConfig),
jsxAttributeNameReplace: weappConf.jsxAttributeNameReplace || {}
}
// 可以自定义输出文件类型
@@ -161,7 +109,9 @@ export function setBuildData (appPath: string, adapter: BUILD_TYPES): IBuildData
BuildData.originalOutputDir = BuildData.outputDir
BuildData.outputDirName = `${BuildData.outputDirName}/src`
BuildData.outputDir = path.join(BuildData.appPath, BuildData.outputDirName)
- BuildData.npmOutputDir = getNpmOutputDir(BuildData.outputDir, BuildData.configDir, BuildData.npmConfig)
+ }
+ if (options) {
+ Object.assign(BuildData, options)
}
return BuildData
@@ -171,229 +121,97 @@ export function getBuildData (): IBuildData {
return BuildData
}
-export function getDependencyTree (): Map {
- return dependencyTree
-}
-
-export function setHasBeenBuiltComponents (componentPath: string) {
- hasBeenBuiltComponents.add(componentPath)
-}
-
-export function getHasBeenBuiltComponents () {
- return hasBeenBuiltComponents
-}
-
-export function isComponentHasBeenBuilt (componentPath: string): boolean {
- return hasBeenBuiltComponents.has(componentPath)
+export function setOutputDirName (outputDirName) {
+ BuildData.originalOutputDir = BuildData.outputDir
+ BuildData.outputDirName = outputDirName
+ BuildData.outputDir = path.join(BuildData.appPath, BuildData.outputDirName)
}
-export function deleteHasBeenBuiltComponent (filePath) {
- if (hasBeenBuiltComponents.has(filePath)) {
- hasBeenBuiltComponents.delete(filePath)
+export async function prepareQuickAppEnvironment (buildData: IBuildData) {
+ let isReady = false
+ let needDownload = false
+ let needInstall = false
+ const originalOutputDir = buildData.originalOutputDir
+ console.log()
+ if (fs.existsSync(path.join(buildData.originalOutputDir, 'sign'))) {
+ needDownload = false
+ } else {
+ needDownload = true
}
-}
-
-export function setComponentExportsMap (key: string, value: IComponentObj[]) {
- componentExportsMap.set(key, value)
-}
-
-export function getComponentExportsMapItem (key: string): IComponentObj[] | void {
- return componentExportsMap.get(key)
-}
-
-export function getComponentExportsMap (): Map {
- return componentExportsMap
-}
-
-export function getDepComponents (): Map {
- return depComponents
-}
-
-export function buildUsingComponents (
- filePath: string,
- components: IComponentObj[],
- isComponent?: boolean
-): IOption {
- const { buildAdapter } = getBuildData()
- const usingComponents = Object.create(null)
- const pathAlias = BuildData.projectConfig.alias || {}
- for (const component of components) {
- let componentPath = component.path
- if (isAliasPath(componentPath as string, pathAlias)) {
- componentPath = replaceAliasPath(filePath, componentPath as string, pathAlias)
- }
- componentPath = resolveScriptPath(path.resolve(filePath, '..', componentPath as string))
- if (fs.existsSync(componentPath)) {
- componentPath = promoteRelativePath(path.relative(filePath, componentPath))
- } else {
- componentPath = component.path
- }
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- componentPath = generateAlipayPath(componentPath)
- }
- if (component.name) {
- const componentName = component.name.split('|')[0]
- usingComponents[componentName] = (componentPath as string).replace(extnameExpRegOf(componentPath as string), '')
- }
+ if (needDownload) {
+ const getSpinner = ora('开始下载快应用运行容器...').start()
+ await downloadGithubRepoLatestRelease('NervJS/quickapp-container', buildData.appPath, originalOutputDir)
+ await unzip(path.join(originalOutputDir, 'download_temp.zip'))
+ getSpinner.succeed('快应用运行容器下载完成')
+ } else {
+ console.log(`${chalk.green('✔ ')} 快应用容器已经准备好`)
}
- return Object.assign({}, isComponent ? { component: true } : { usingComponents: {} }, components.length ? {
- usingComponents
- } : {})
-}
-
-export function getRealComponentsPathList (
- filePath: string,
- components: IComponentObj[]
-): IComponentObj[] {
- const { appPath, isProduction, buildAdapter, projectConfig, npmConfig } = BuildData
- const pathAlias = projectConfig.alias || {}
- return components.length ? components.map(component => {
- let componentPath = component.path
- if (isAliasPath(componentPath as string, pathAlias)) {
- componentPath = replaceAliasPath(filePath, componentPath as string, pathAlias)
- }
- if (isNpmPkg(componentPath as string)) {
- try {
- componentPath = resolveNpmPkgMainPath(componentPath as string, isProduction, npmConfig, buildAdapter, appPath)
- } catch (err) {
- console.log(err)
- }
- } else {
- componentPath = path.resolve(path.dirname(filePath), componentPath as string)
- componentPath = resolveScriptPath(componentPath)
- }
- if (componentPath && isFileToBePage(componentPath)) {
- printLog(processTypeEnum.ERROR, '组件引用', `文件${component.path}已经在 app.js 中被指定为页面,不能再作为组件来引用!`)
- }
- return {
- path: componentPath,
- name: component.name,
- type: component.type
- }
- }) : []
-}
-
-export function isFileToBePage (filePath: string): boolean {
- let isPage = false
- const { appConfig, sourceDir } = BuildData
- const extname = path.extname(filePath)
- const pages = appConfig.pages || []
- const filePathWithoutExt = filePath.replace(extname, '')
- pages.forEach(page => {
- if (filePathWithoutExt === path.join(sourceDir, page)) {
- isPage = true
- }
- })
- return isPage && REG_SCRIPTS.test(extname)
-}
-
-export function getDepStyleList (
- outputFilePath: string,
- buildDepComponentsResult: IBuildResult[]
-): string[] {
- const { sourceDir, outputDir } = BuildData
- let depWXSSList: string[] = []
- if (buildDepComponentsResult.length) {
- depWXSSList = buildDepComponentsResult.map(item => {
- let wxss = item.wxss
- wxss = wxss.replace(sourceDir, outputDir)
- wxss = promoteRelativePath(path.relative(outputFilePath, wxss))
- return wxss
- })
+ process.chdir(originalOutputDir)
+ console.log()
+ if (fs.existsSync(path.join(originalOutputDir, 'node_modules'))) {
+ needInstall = false
+ } else {
+ needInstall = true
}
- return depWXSSList
-}
-
-export function initCopyFiles () {
- isCopyingFiles.clear()
-}
-
-export function copyFilesFromSrcToOutput (files: string[], cb?: (sourceFilePath: string, outputFilePath: string) => void) {
- const { nodeModulesPath, npmOutputDir, sourceDir, outputDir, appPath, projectConfig } = BuildData
- const adapterConfig = Object.assign({}, projectConfig.weapp)
- files.forEach(file => {
- let outputFilePath
- if (NODE_MODULES_REG.test(file)) {
- outputFilePath = file.replace(nodeModulesPath, npmOutputDir)
- } else {
- if (adapterConfig.publicPath && adapterConfig.staticDirectory) {
- const hashName = getHashName(file)
- const staticPath = path.join(appPath, adapterConfig.staticDirectory, projectConfig.projectName || '')
- outputFilePath = `${staticPath}/${hashName}`
+ if (needInstall) {
+ const isWindows = os.platform() === 'win32'
+ let command
+ if (shouldUseYarn()) {
+ if(!isWindows) {
+ command = 'NODE_ENV=development yarn install'
} else {
- outputFilePath = file.replace(sourceDir, outputDir)
+ command = 'yarn install'
}
- }
- if (isCopyingFiles.get(outputFilePath)) {
- return
- }
- isCopyingFiles.set(outputFilePath, true)
- let modifySrc = file.replace(appPath + path.sep, '')
- modifySrc = modifySrc.split(path.sep).join('/')
- let modifyOutput = outputFilePath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- printLog(processTypeEnum.COPY, '文件', modifyOutput)
- if (!fs.existsSync(file)) {
- printLog(processTypeEnum.ERROR, '文件', `${modifySrc} 不存在`)
- } else {
- fs.ensureDir(path.dirname(outputFilePath))
- if (file === outputFilePath) {
- return
+ } else if (shouldUseCnpm()) {
+ if(!isWindows) {
+ command = 'NODE_ENV=development cnpm install'
+ } else {
+ command = 'cnpm install'
}
- if (cb) {
- cb(file, outputFilePath)
+ } else {
+ if(!isWindows) {
+ command = 'NODE_ENV=development npm install'
} else {
- fs.copySync(file, outputFilePath)
+ command = 'npm install'
}
}
- })
-}
-
-export function getTaroJsQuickAppComponentsPath () {
- const taroJsQuickAppComponentsPkg = resolveNpmSync(taroJsQuickAppComponents, BuildData.nodeModulesPath)
- if (!taroJsQuickAppComponentsPkg) {
- printLog(processTypeEnum.ERROR, '包安装', `缺少包 ${taroJsQuickAppComponents},请安装!`)
- process.exit(0)
+ const installSpinner = ora(`安装快应用依赖环境, 需要一会儿...`).start()
+ try {
+ const stdout = execSync(command)
+ installSpinner.color = 'green'
+ installSpinner.succeed('安装成功')
+ console.log(`${stdout}`)
+ isReady = true
+ } catch (error) {
+ installSpinner.color = 'red'
+ installSpinner.fail(chalk.red(`快应用依赖环境安装失败,请进入 ${path.basename(originalOutputDir)} 重新安装!`))
+ console.log(`${error}`)
+ isReady = false
+ }
+ } else {
+ console.log(`${chalk.green('✔ ')} 快应用依赖已经安装好`)
+ isReady = true
}
- return path.join(path.dirname(taroJsQuickAppComponentsPkg as string), 'src/components')
-}
-
-const SCRIPT_CONTENT_REG = /`)
- fs.ensureDirSync(path.dirname(outputFilePath))
- fs.writeFileSync(outputFilePath, newFileContent)
- }
- }
+ return isReady
+}
+
+export async function runQuickApp (isWatch: boolean | void, buildData: IBuildData, port?: number, release?: boolean) {
+ const originalOutputDir = buildData.originalOutputDir
+ const { compile } = require(require.resolve('hap-toolkit/lib/commands/compile', { paths: [originalOutputDir] }))
+ if (isWatch) {
+ const { launchServer } = require(require.resolve('@hap-toolkit/server', { paths: [originalOutputDir] }))
+ launchServer({
+ port: port || 12306,
+ watch: isWatch,
+ clearRecords: false,
+ disableADB: false
})
- const cRelativePath = promoteRelativePath(path.relative(filePath, cMainPath.replace(BuildData.nodeModulesPath, BuildData.npmOutputDir)))
- importTaroSelfComponents.add({
- path: cRelativePath,
- name: c
- })
- })
- return importTaroSelfComponents
+ compile('native', 'dev', true)
+ } else {
+ if (!release) {
+ compile('native', 'dev', false)
+ } else {
+ compile('native', 'prod', false)
+ }
+ }
}
diff --git a/packages/taro-cli/src/mini/index.ts b/packages/taro-cli/src/mini/index.ts
index 762b92173947..fac9b46321f6 100644
--- a/packages/taro-cli/src/mini/index.ts
+++ b/packages/taro-cli/src/mini/index.ts
@@ -1,49 +1,26 @@
import * as fs from 'fs-extra'
import * as path from 'path'
-import * as os from 'os'
-
import chalk from 'chalk'
-import * as _ from 'lodash'
-import * as ora from 'ora'
-import { execSync } from 'child_process'
-import {
- printLog,
- getInstalledNpmPkgVersion,
- getPkgVersion,
- copyFiles,
- unzip,
- shouldUseYarn,
- shouldUseCnpm,
- resolvePureScriptPath,
- checkCliAndFrameworkVersion
-} from '../util'
-import { processTypeEnum, BUILD_TYPES } from '../util/constants'
-import { IMiniAppBuildConfig } from '../util/types'
+import { IBuildOptions } from '../util/types'
+import { BUILD_TYPES, processTypeEnum } from '../util/constants'
+import * as npmProcess from '../util/npm'
+import { getBabelConfig, getInstalledNpmPkgVersion, getPkgVersion, printLog, checkCliAndFrameworkVersion } from '../util'
+import Builder from '../build'
import * as defaultManifestJSON from '../config/manifest.default.json'
import {
setBuildData,
- getBuildData,
setIsProduction,
- setAppConfig,
- IBuildData,
- setQuickappManifest
+ getBuildData,
+ setQuickappManifest,
+ prepareQuickAppEnvironment,
+ runQuickApp,
+ IBuildData
} from './helper'
-import { buildEntry } from './entry'
-import { buildPages, buildSinglePage } from './page'
-import { watchFiles } from './watch'
-import { downloadGithubRepoLatestRelease } from '../util/dowload'
-import { buildSingleComponent } from './component'
function buildProjectConfig () {
const { buildAdapter, sourceDir, outputDir, outputDirName, appPath } = getBuildData()
-
- if (buildAdapter === BUILD_TYPES.JD) {
- // 京东小程序暂不支持 project.config.json
- return
- }
-
let projectConfigFileName = `project.${buildAdapter}.json`
if (buildAdapter === BUILD_TYPES.WEAPP) {
projectConfigFileName = 'project.config.json'
@@ -112,166 +89,18 @@ function readQuickAppManifest () {
return quickappJSON
}
-function generateQuickAppManifest (quickappJSON: any) {
- const { appConfig, pageConfigs, outputDir, projectConfig } = getBuildData()
- // 生成 router
- const pages = (appConfig.pages as string[]).concat()
- const routerPages = {}
- const customPageConfig = quickappJSON.customPageConfig || {}
-
- pages.forEach(element => {
- const customConfig = customPageConfig[element]
- const pageConf: any = {
- component: path.basename(element)
- }
- if (customConfig) {
- const filter = customConfig.filter
- const launchMode = customConfig.launchMode
- if (filter) {
- pageConf.filter = filter
- }
- if (launchMode) {
- pageConf.launchMode = launchMode
- }
- }
- routerPages[path.dirname(element)] = pageConf
- })
- delete quickappJSON.customPageConfig
- const routerEntry = pages.shift()
- const router = {
- entry: path.dirname(routerEntry as string),
- pages: routerPages
- }
- // 生成 display
- const display = JSON.parse(JSON.stringify(appConfig.window || {}))
- display.pages = {}
- pageConfigs.forEach((item, page) => {
- if (item) {
- display.pages[path.dirname(page)] = item
- }
- })
- quickappJSON.router = router
- quickappJSON.display = display
- quickappJSON.config = Object.assign({}, quickappJSON.config, {
- designWidth: projectConfig.designWidth || 750
- })
- if (appConfig.window && appConfig.window.navigationStyle === 'custom') {
- quickappJSON.display.titleBar = false
- delete quickappJSON.display.navigationStyle
- }
- fs.writeFileSync(path.join(outputDir, 'manifest.json'), JSON.stringify(quickappJSON, null, 2))
-}
-
-async function prepareQuickAppEnvironment (buildData: IBuildData) {
- let isReady = false
- let needDownload = false
- let needInstall = false
- const originalOutputDir = buildData.originalOutputDir
- console.log()
- if (fs.existsSync(path.join(buildData.originalOutputDir, 'sign'))) {
- needDownload = false
- } else {
- needDownload = true
- }
- if (needDownload) {
- const getSpinner = ora('开始下载快应用运行容器...').start()
- await downloadGithubRepoLatestRelease('NervJS/quickapp-container', buildData.appPath, originalOutputDir)
- await unzip(path.join(originalOutputDir, 'download_temp.zip'))
- getSpinner.succeed('快应用运行容器下载完成')
- } else {
- console.log(`${chalk.green('✔ ')} 快应用容器已经准备好`)
- }
- process.chdir(originalOutputDir)
- console.log()
- if (fs.existsSync(path.join(originalOutputDir, 'node_modules'))) {
- needInstall = false
- } else {
- needInstall = true
- }
- if (needInstall) {
- const isWindows = os.platform() === 'win32'
- let command
- if (shouldUseYarn()) {
- if(!isWindows) {
- command = 'NODE_ENV=development yarn install'
- } else {
- command = 'yarn install'
- }
- } else if (shouldUseCnpm()) {
- if(!isWindows) {
- command = 'NODE_ENV=development cnpm install'
- } else {
- command = 'cnpm install'
- }
- } else {
- if(!isWindows) {
- command = 'NODE_ENV=development npm install'
- } else {
- command = 'npm install'
- }
- }
- const installSpinner = ora(`安装快应用依赖环境, 需要一会儿...`).start()
- try {
- const stdout = execSync(command)
- installSpinner.color = 'green'
- installSpinner.succeed('安装成功')
- console.log(`${stdout}`)
- isReady = true
- } catch (error) {
- installSpinner.color = 'red'
- installSpinner.fail(chalk.red(`快应用依赖环境安装失败,请进入 ${path.basename(originalOutputDir)} 重新安装!`))
- console.log(`${error}`)
- isReady = false
- }
- } else {
- console.log(`${chalk.green('✔ ')} 快应用依赖已经安装好`)
- isReady = true
- }
- return isReady
-}
-
-async function runQuickApp (isWatch: boolean | void, buildData: IBuildData, port?: number, release?: boolean) {
- const originalOutputDir = buildData.originalOutputDir
- const { compile } = require(require.resolve('hap-toolkit/lib/commands/compile', { paths: [originalOutputDir] }))
- if (isWatch) {
- const { launchServer } = require(require.resolve('@hap-toolkit/server', { paths: [originalOutputDir] }))
- launchServer({
- port: port || 12306,
- watch: isWatch,
- clearRecords: false,
- disableADB: false
- })
- compile('native', 'dev', true)
- } else {
- if (!release) {
- compile('native', 'dev', false)
- } else {
- compile('native', 'prod', false)
- }
+export async function build (appPath: string, { watch, type = BUILD_TYPES.WEAPP, envHasBeenSet = false, port, release }: IBuildOptions, customBuildData: Partial | null | undefined, builder: Builder) {
+ const buildData = setBuildData(appPath, type, customBuildData)
+ const isQuickApp = type === BUILD_TYPES.QUICKAPP
+ if (type !== BUILD_TYPES.PLUGIN) {
+ await checkCliAndFrameworkVersion(appPath, type)
}
-}
-
-export async function build (
- appPath: string,
- {
- watch,
- adapter = BUILD_TYPES.WEAPP,
- envHasBeenSet = false,
- port,
- release,
- page,
- component
- }: IMiniAppBuildConfig
-) {
- const buildData = envHasBeenSet ? getBuildData() : setBuildData(appPath, adapter)
- const isQuickApp = adapter === BUILD_TYPES.QUICKAPP
- let quickappJSON
- await checkCliAndFrameworkVersion(appPath, adapter)
- process.env.TARO_ENV = adapter
+ process.env.TARO_ENV = type
if (!envHasBeenSet) {
setIsProduction(process.env.NODE_ENV === 'production' || !watch)
}
fs.ensureDirSync(buildData.outputDir)
+ let quickappJSON
if (!isQuickApp) {
buildProjectConfig()
await buildFrameworkInfo()
@@ -279,29 +108,11 @@ export async function build (
quickappJSON = readQuickAppManifest()
setQuickappManifest(quickappJSON)
}
- if (!isQuickApp) {
- copyFiles(appPath, buildData.projectConfig.copy)
- }
- if (page) {
- const pagePath = path.resolve(appPath, page).replace(buildData.sourceDir, '')
- await buildSinglePage(pagePath)
- return
- }
- if (component) {
- const componentPath = resolvePureScriptPath(path.resolve(appPath, component))
- await buildSingleComponent({
- path: componentPath
- })
- return
- }
- const appConfig = await buildEntry()
- setAppConfig(appConfig)
- await buildPages()
- if (watch) {
- watchFiles()
- }
+
+ await buildWithWebpack({
+ appPath
+ }, builder)
if (isQuickApp) {
- generateQuickAppManifest(quickappJSON)
const isReady = await prepareQuickAppEnvironment(buildData)
if (!isReady) {
console.log()
@@ -309,7 +120,47 @@ export async function build (
process.exit(0)
return
}
- copyFiles(appPath, buildData.projectConfig.copy)
await runQuickApp(watch, buildData, port, release)
}
}
+
+async function buildWithWebpack ({ appPath }: { appPath: string }, builder) {
+ const {
+ entryFilePath,
+ buildAdapter,
+ projectConfig,
+ isProduction,
+ alias,
+ sourceDirName,
+ outputDirName,
+ nodeModulesPath,
+ quickappManifest
+ } = getBuildData()
+ const miniRunner = await npmProcess.getNpmPkg('@tarojs/mini-runner', appPath)
+ const babelConfig = getBabelConfig(projectConfig.babel)
+ const miniRunnerOpts = {
+ entry: {
+ app: [entryFilePath]
+ },
+ alias,
+ copy: projectConfig.copy,
+ sourceRoot: sourceDirName,
+ outputRoot: outputDirName,
+ buildAdapter,
+ babel: babelConfig,
+ csso: projectConfig.csso,
+ sass: projectConfig.sass,
+ uglify: projectConfig.uglify,
+ plugins: projectConfig.plugins,
+ projectName: projectConfig.projectName,
+ isWatch: !isProduction,
+ env: projectConfig.env,
+ defineConstants: projectConfig.defineConstants,
+ designWidth: projectConfig.designWidth,
+ deviceRatio: projectConfig.deviceRatio,
+ nodeModulesPath,
+ quickappJSON: quickappManifest,
+ ...projectConfig.mini
+ }
+ await miniRunner(appPath, miniRunnerOpts, builder)
+}
diff --git a/packages/taro-cli/src/mini/interface.ts b/packages/taro-cli/src/mini/interface.ts
deleted file mode 100644
index 54d9505bd70d..000000000000
--- a/packages/taro-cli/src/mini/interface.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { IWxTransformResult } from '../util/types'
-
-export interface IComponentObj {
- name?: string,
- path: string | null,
- type?: string
-}
-
-export interface IIsFileToBeTaroComponentReturn {
- isTaroComponent: boolean,
- transformResult: IWxTransformResult
-}
-
-export interface IBuildResult {
- js: string,
- wxss: string,
- wxml: string
-}
-
-export interface IDependency {
- style: string[],
- script: string[],
- json: string[],
- media: string[]
-}
diff --git a/packages/taro-cli/src/mini/native.ts b/packages/taro-cli/src/mini/native.ts
deleted file mode 100644
index 992eb567b9ae..000000000000
--- a/packages/taro-cli/src/mini/native.ts
+++ /dev/null
@@ -1,144 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import { Config as IConfig } from '@tarojs/taro'
-import chalk from 'chalk'
-
-import { REG_WXML_IMPORT, processTypeEnum, taroJsFramework, BUILD_TYPES, REG_SCRIPT, REG_STYLE, REG_UX, NODE_MODULES_REG } from '../util/constants'
-import { isEmptyObject, printLog, resolveScriptPath, copyFileSync, extnameExpRegOf, resolveQuickappFilePath, processUxContent } from '../util'
-import CONFIG from '../config';
-
-import { buildDepComponents } from './component'
-import { compileDepScripts } from './compileScript'
-import { compileDepStyles } from './compileStyle'
-import { getBuildData } from './helper'
-
-export function processNativeWxml (
- componentWXMLPath: string,
- componentWXMLContent: string | null,
- outputComponentWXMLPath: string
-) {
- let wxmlContent
- let needCopy = true
- const { sourceDir, outputDir } = getBuildData()
- if (componentWXMLPath && fs.existsSync(componentWXMLPath)) {
- wxmlContent = fs.readFileSync(componentWXMLPath).toString()
- } else {
- needCopy = false
- wxmlContent = componentWXMLContent
- }
- const importWxmlPathList: string[] = []
- let regResult
- while ((regResult = REG_WXML_IMPORT.exec(wxmlContent)) != null) {
- importWxmlPathList.push(regResult[2] || regResult[3])
- }
- if (importWxmlPathList.length) {
- importWxmlPathList.forEach(item => {
- const itemPath = path.resolve(componentWXMLPath, '..', item)
- if (fs.existsSync(itemPath)) {
- const outputItemPath = itemPath.replace(sourceDir, outputDir)
- processNativeWxml(itemPath, null, outputItemPath)
- }
- })
- }
- if (componentWXMLPath === outputComponentWXMLPath || !needCopy) {
- return
- }
- copyFileSync(componentWXMLPath, outputComponentWXMLPath)
-}
-
-function transformNativeQuickappComponent (configFile, componentPath) {
- const { sourceDir, outputDir } = getBuildData()
-
- let componentUxPath = resolveQuickappFilePath(path.resolve(path.dirname(configFile), componentPath))
- if (!fs.existsSync(componentUxPath)) {
- componentUxPath = resolveQuickappFilePath(path.join(sourceDir, componentPath))
- }
- if (!fs.existsSync(componentUxPath)) {
- return printLog(processTypeEnum.ERROR, '编译错误', `原生组件文件 ${componentUxPath} 不存在!`)
- }
- let componentStr = fs.readFileSync(componentUxPath).toString()
- componentStr = processUxContent(componentStr, value => {
- value = value.replace(/\'?\"?/ig, '')
- if (REG_SCRIPT.test(value) || REG_STYLE.test(value)) {
- const filePath = path.resolve(componentUxPath, '..', value)
- const outputFilePath = filePath.replace(sourceDir, outputDir)
- copyFileSync(filePath, outputFilePath)
- } else if (REG_UX.test(value)) {
- const importComponentPath = path.resolve(componentUxPath, '..', value)
- transformNativeQuickappComponent(configFile, importComponentPath)
- }
- return value
- })
- const outputComponentUxPath = componentUxPath.replace(sourceDir, outputDir)
- copyFileSync(componentUxPath, outputComponentUxPath)
-}
-
-export function transfromNativeComponents (configFile: string, componentConfig: IConfig) {
- const { sourceDir, outputDir, outputFilesTypes, buildAdapter } = getBuildData()
- const usingComponents = componentConfig.usingComponents
- if (usingComponents && !isEmptyObject(usingComponents)) {
- if (buildAdapter === BUILD_TYPES.QUICKAPP) {
- Object.keys(usingComponents).map(async item => {
- const componentPath = usingComponents[item]
- transformNativeQuickappComponent(configFile, componentPath)
- })
- } else {
- Object.keys(usingComponents).map(async item => {
- const componentPath = usingComponents[item]
- if (/^plugin:\/\//.test(componentPath)) {
- // 小程序 plugin
- printLog(processTypeEnum.REFERENCE, '插件引用', `使用了插件 ${chalk.bold(componentPath)}`)
- return
- }
- let componentJSPath = resolveScriptPath(path.resolve(path.dirname(configFile), componentPath))
- if (!fs.existsSync(componentJSPath)) {
- componentJSPath = resolveScriptPath(path.join(sourceDir, componentPath))
- }
- const componentJSONPath = componentJSPath.replace(extnameExpRegOf(componentJSPath), outputFilesTypes.CONFIG)
- const componentWXMLPath = componentJSPath.replace(extnameExpRegOf(componentJSPath), outputFilesTypes.TEMPL)
- const componentWXSSPath = componentJSPath.replace(extnameExpRegOf(componentJSPath), outputFilesTypes.STYLE)
- let outputComponentJSPath = '';
- if (NODE_MODULES_REG.test(outputComponentJSPath)) {
- outputComponentJSPath = componentJSPath.replace(NODE_MODULES_REG, path.resolve(outputDir, CONFIG.NPM_DIR)).replace(extnameExpRegOf(componentJSPath), outputFilesTypes.SCRIPT)
- } else {
- outputComponentJSPath = componentJSPath.replace(sourceDir, outputDir).replace(extnameExpRegOf(componentJSPath), outputFilesTypes.SCRIPT)
- }
- if (fs.existsSync(componentJSPath)) {
- const componentJSContent = fs.readFileSync(componentJSPath).toString()
- if (componentJSContent.indexOf(taroJsFramework) >= 0 && !fs.existsSync(componentWXMLPath)) {
- const buildDepComponentsRes = await buildDepComponents([{ path: componentJSPath, name: item, type: 'default' }])
- return buildDepComponentsRes
- }
- await compileDepScripts([componentJSPath], true)
- } else {
- return printLog(processTypeEnum.ERROR, '编译错误', `原生组件文件 ${componentJSPath} 不存在!`)
- }
- if (fs.existsSync(componentWXMLPath)) {
- const outputComponentWXMLPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.TEMPL)
- processNativeWxml(componentWXMLPath, null, outputComponentWXMLPath)
- }
- if (fs.existsSync(componentWXSSPath)) {
- const outputComponentWXSSPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.STYLE)
- await compileDepStyles(outputComponentWXSSPath, [componentWXSSPath])
- }
- if (fs.existsSync(componentJSONPath)) {
- const componentJSON = require(componentJSONPath)
- const outputComponentJSONPath = outputComponentJSPath.replace(extnameExpRegOf(outputComponentJSPath), outputFilesTypes.CONFIG)
- copyFileSync(componentJSONPath, outputComponentJSONPath)
-
- // 解决组件循环依赖不断编译爆栈的问题
- if (componentJSON && componentJSON.usingComponents) {
- Object.keys(componentJSON.usingComponents).forEach(key => {
- if (key === item) {
- delete componentJSON.usingComponents[key]
- }
- })
- }
-
- transfromNativeComponents(componentJSONPath, componentJSON)
- }
- })
- }
- }
-}
diff --git a/packages/taro-cli/src/mini/page.ts b/packages/taro-cli/src/mini/page.ts
deleted file mode 100644
index e0846ac19ab3..000000000000
--- a/packages/taro-cli/src/mini/page.ts
+++ /dev/null
@@ -1,307 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-
-import { Config as IConfig } from '@tarojs/taro'
-import * as wxTransformer from '@tarojs/transformer-wx'
-import * as _ from 'lodash'
-
-import {
- REG_TYPESCRIPT,
- processTypeEnum,
- NODE_MODULES_REG,
- PARSE_AST_TYPE,
- taroJsFramework,
- BUILD_TYPES
-} from '../util/constants'
-import {
- resolveScriptPath,
- printLog,
- isEmptyObject,
- promoteRelativePath,
- isDifferentArray,
- copyFileSync,
- generateQuickAppUx,
- uglifyJS,
- extnameExpRegOf
-} from '../util'
-import { IWxTransformResult, TogglableOptions } from '../util/types'
-
-import { IComponentObj } from './interface'
-import {
- getBuildData,
- getRealComponentsPathList,
- buildUsingComponents,
- copyFilesFromSrcToOutput,
- getDependencyTree,
- getComponentExportsMap,
- getDepComponents,
- getImportTaroSelfComponents
-} from './helper'
-import { compileDepScripts, compileScriptFile } from './compileScript'
-import { compileDepStyles } from './compileStyle'
-import { transfromNativeComponents, processNativeWxml } from './native'
-import { buildDepComponents } from './component'
-import { parseAst } from './astProcess'
-import rewriterTemplate from '../quickapp/template-rewriter'
-
-// 小程序页面编译
-export async function buildSinglePage (page: string) {
- const {
- appPath,
- buildAdapter,
- constantsReplaceList,
- outputDir,
- sourceDirName,
- outputDirName,
- sourceDir,
- isProduction,
- outputFilesTypes,
- nodeModulesPath,
- npmOutputDir,
- jsxAttributeNameReplace,
- pageConfigs,
- appConfig,
- projectConfig,
- alias
- } = getBuildData()
- const pagePath = path.join(sourceDir, `${page}`)
- const pageJs = resolveScriptPath(pagePath)
- const dependencyTree = getDependencyTree()
- const depComponents = getDepComponents()
- const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
-
- printLog(processTypeEnum.COMPILE, '页面文件', `${sourceDirName}/${page}`)
- if (!fs.existsSync(pageJs) || !fs.statSync(pageJs).isFile()) {
- printLog(processTypeEnum.ERROR, '页面文件', `${sourceDirName}/${page} 不存在!`)
- return
- }
- const pageJsContent = fs.readFileSync(pageJs).toString()
- const outputPageJSPath = pageJs.replace(sourceDir, outputDir).replace(extnameExpRegOf(pageJs), outputFilesTypes.SCRIPT)
- const outputPagePath = path.dirname(outputPageJSPath)
- const outputPageJSONPath = outputPageJSPath.replace(extnameExpRegOf(outputPageJSPath), outputFilesTypes.CONFIG)
- const outputPageWXMLPath = outputPageJSPath.replace(extnameExpRegOf(outputPageJSPath), outputFilesTypes.TEMPL)
- const outputPageWXSSPath = outputPageJSPath.replace(extnameExpRegOf(outputPageJSPath), outputFilesTypes.STYLE)
- // 判断是不是小程序原生代码页面
- const pageWXMLPath = pageJs.replace(extnameExpRegOf(pageJs), outputFilesTypes.TEMPL)
- if (fs.existsSync(pageWXMLPath) && pageJsContent.indexOf(taroJsFramework) < 0) {
- const pageJSONPath = pageJs.replace(extnameExpRegOf(pageJs), outputFilesTypes.CONFIG)
- const pageWXSSPath = pageJs.replace(extnameExpRegOf(pageJs), outputFilesTypes.STYLE)
- if (fs.existsSync(pageJSONPath)) {
- const pageJSON = require(pageJSONPath)
- copyFileSync(pageJSONPath, outputPageJSONPath)
- transfromNativeComponents(pageJSONPath, pageJSON)
- }
- await compileDepScripts([pageJs], true)
- copyFileSync(pageWXMLPath, outputPageWXMLPath)
- if (fs.existsSync(pageWXSSPath)) {
- await compileDepStyles(outputPageWXSSPath, [pageWXSSPath])
- }
- return
- }
- try {
- const rootProps: { [key: string]: any } = {}
- if (isQuickApp) {
- // 如果是快应用,需要提前解析一次 ast,获取 config
- const aheadTransformResult: IWxTransformResult = wxTransformer({
- code: pageJsContent,
- sourcePath: pageJs,
- sourceDir,
- outputPath: outputPageJSPath,
- isRoot: true,
- isTyped: REG_TYPESCRIPT.test(pageJs),
- adapter: buildAdapter,
- env: constantsReplaceList,
- alias
- })
- const res = parseAst(PARSE_AST_TYPE.PAGE, aheadTransformResult.ast, [], pageJs, outputPageJSPath)
- if (res.configObj.enablePullDownRefresh || (appConfig.window && appConfig.window.enablePullDownRefresh)) {
- rootProps.enablePullDownRefresh = true
- }
- if (appConfig.tabBar) {
- rootProps.tabBar = appConfig.tabBar
- }
- rootProps.pagePath = /^\//.test(page) ? page : `/${page}`
- if (res.hasEnablePageScroll) {
- rootProps.enablePageScroll = true
- }
- }
- const transformResult: IWxTransformResult = wxTransformer({
- code: pageJsContent,
- sourcePath: pageJs,
- sourceDir,
- outputPath: outputPageJSPath,
- isRoot: true,
- isTyped: REG_TYPESCRIPT.test(pageJs),
- adapter: buildAdapter,
- env: constantsReplaceList,
- rootProps,
- jsxAttributeNameReplace,
- alias
- })
- const pageDepComponents = transformResult.components
- const pageWXMLContent = isProduction ? transformResult.compressedTemplate : transformResult.template
- const res = parseAst(PARSE_AST_TYPE.PAGE, transformResult.ast, pageDepComponents, pageJs, outputPageJSPath)
- let resCode = res.code
- fs.ensureDirSync(outputPagePath)
- pageConfigs.set(page, res.configObj)
- // 解析原生组件
- const { usingComponents = {} }: IConfig = res.configObj
- if (usingComponents && !isEmptyObject(usingComponents)) {
- const keys = Object.keys(usingComponents)
- keys.forEach(item => {
- pageDepComponents.forEach(component => {
- if (_.camelCase(item) === _.camelCase(component.name)) {
- delete usingComponents[item]
- }
- })
- })
- transfromNativeComponents(outputPageJSONPath.replace(outputDir, sourceDir), res.configObj)
- }
-
- let realComponentsPathList: IComponentObj[] = []
- realComponentsPathList = getRealComponentsPathList(pageJs, pageDepComponents)
-
- if (!isQuickApp) {
- resCode = await compileScriptFile(resCode, pageJs, outputPageJSPath, buildAdapter)
- if (isProduction) {
- resCode = uglifyJS(resCode, pageJs, appPath, projectConfig!.plugins!.uglify as TogglableOptions)
- }
- }
- // 编译依赖的组件文件
- if (realComponentsPathList.length) {
- res.scriptFiles = res.scriptFiles.map(item => {
- for (let i = 0; i < realComponentsPathList.length; i++) {
- const componentObj = realComponentsPathList[i]
- const componentPath = componentObj.path
- if (item === componentPath) {
- return ''
- }
- }
- return item
- }).filter(item => item)
- await buildDepComponents(realComponentsPathList)
- }
- const componentExportsMap = getComponentExportsMap()
- if (componentExportsMap.size && realComponentsPathList.length) {
- realComponentsPathList.forEach(component => {
- if (componentExportsMap.has(component.path as string)) {
- const componentMap = componentExportsMap.get(component.path as string)
- componentMap && componentMap.forEach(component => {
- pageDepComponents.forEach(depComponent => {
- if (depComponent.name === component.name) {
- let componentPath = component.path
- let realPath
- if (NODE_MODULES_REG.test(componentPath as string)) {
- componentPath = (componentPath as string).replace(nodeModulesPath, npmOutputDir)
- realPath = promoteRelativePath(path.relative(outputPageJSPath, componentPath))
- } else {
- realPath = promoteRelativePath(path.relative(pageJs, componentPath as string))
- }
- depComponent.path = realPath.replace(extnameExpRegOf(realPath), '')
- }
- })
- })
- }
- })
- }
- if (isQuickApp) {
- // 快应用编译,搜集创建页面 ux 文件
- const importTaroSelfComponents = getImportTaroSelfComponents(outputPageJSPath, res.taroSelfComponents)
- const importCustomComponents = new Set(pageDepComponents.map(item => {
- return {
- path: item.path,
- name: item.name as string
- }
- }))
- const usingComponents = res.configObj.usingComponents
- let importUsingComponent: any = new Set([])
- if (usingComponents) {
- importUsingComponent = new Set(Object.keys(usingComponents).map(item => {
- return {
- name: item,
- path: usingComponents[item]
- }
- }))
- }
- // 生成页面 ux 文件
- let styleRelativePath
- if (res.styleFiles.length) {
- styleRelativePath = promoteRelativePath(path.relative(outputPageJSPath, outputPageWXSSPath))
- }
- const uxTxt = generateQuickAppUx({
- script: resCode,
- style: styleRelativePath,
- imports: new Set([...importTaroSelfComponents, ...importCustomComponents, ...importUsingComponent]),
- template: rewriterTemplate(pageWXMLContent)
- })
- fs.writeFileSync(outputPageWXMLPath, uxTxt)
- printLog(processTypeEnum.GENERATE, '页面文件', `${outputDirName}/${page}${outputFilesTypes.TEMPL}`)
- }
- const fileDep = dependencyTree.get(pageJs) || {
- style: [],
- script: [],
- json: [],
- media: []
- }
- if (!isQuickApp) {
- fs.writeFileSync(outputPageJSONPath, JSON.stringify(_.merge({}, buildUsingComponents(pageJs, pageDepComponents), res.configObj), null, 2))
- printLog(processTypeEnum.GENERATE, '页面配置', `${outputDirName}/${page}${outputFilesTypes.CONFIG}`)
- fs.writeFileSync(outputPageJSPath, resCode)
- printLog(processTypeEnum.GENERATE, '页面逻辑', `${outputDirName}/${page}${outputFilesTypes.SCRIPT}`)
- fs.writeFileSync(outputPageWXMLPath, pageWXMLContent)
- processNativeWxml(outputPageWXMLPath.replace(outputDir, sourceDir), pageWXMLContent, outputPageWXMLPath)
- printLog(processTypeEnum.GENERATE, '页面模板', `${outputDirName}/${page}${outputFilesTypes.TEMPL}`)
- }
- // 编译依赖的脚本文件
- if (isDifferentArray(fileDep['script'], res.scriptFiles)) {
- await compileDepScripts(res.scriptFiles, !isQuickApp)
- }
- // 编译样式文件
- if (isDifferentArray(fileDep['style'], res.styleFiles) || isDifferentArray(depComponents.get(pageJs) || [], pageDepComponents)) {
- printLog(processTypeEnum.GENERATE, '页面样式', `${outputDirName}/${page}${outputFilesTypes.STYLE}`)
- await compileDepStyles(outputPageWXSSPath, res.styleFiles)
- }
- // 拷贝依赖文件
- if (isDifferentArray(fileDep['json'], res.jsonFiles)) {
- copyFilesFromSrcToOutput(res.jsonFiles)
- }
- if (isDifferentArray(fileDep['media'], res.mediaFiles)) {
- copyFilesFromSrcToOutput(res.mediaFiles)
- }
- depComponents.set(pageJs, pageDepComponents)
- fileDep['style'] = res.styleFiles
- fileDep['script'] = res.scriptFiles
- fileDep['json'] = res.jsonFiles
- fileDep['media'] = res.mediaFiles
- dependencyTree.set(pageJs, fileDep)
- } catch (err) {
- printLog(processTypeEnum.ERROR, '页面编译', `页面${pagePath}编译失败!`)
- console.log(err)
- }
-}
-
-export async function buildPages () {
- printLog(processTypeEnum.COMPILE, '所有页面')
- const { appConfig } = getBuildData()
- // 支持分包,解析子包页面
- const pages = appConfig.pages || []
- const subPackages = appConfig.subPackages || appConfig['subpackages']
- if (subPackages && subPackages.length) {
- subPackages.forEach(item => {
- if (item.pages && item.pages.length) {
- const root = item.root
- item.pages.forEach(page => {
- let pagePath = `${root}/${page}`
- pagePath = pagePath.replace(/\/{2,}/g, '/')
- if (pages.indexOf(pagePath) < 0) {
- pages.push(pagePath)
- }
- })
- }
- })
- }
- const pagesPromises = pages.map(async page => {
- return buildSinglePage(page)
- })
- await Promise.all(pagesPromises)
-}
diff --git a/packages/taro-cli/src/mini/watch.ts b/packages/taro-cli/src/mini/watch.ts
deleted file mode 100644
index 756ede467c9c..000000000000
--- a/packages/taro-cli/src/mini/watch.ts
+++ /dev/null
@@ -1,207 +0,0 @@
-import * as path from 'path'
-
-import * as chokidar from 'chokidar'
-import chalk from 'chalk'
-
-import {
- REG_TYPESCRIPT,
- REG_SCRIPT,
- REG_STYLE,
- processTypeEnum,
- NODE_MODULES_REG,
- isWindows,
- BUILD_TYPES
-} from '../util/constants'
-import {
- printLog,
- checksum,
- extnameExpRegOf
-} from '../util'
-
-import { initCompileStyles, compileDepStyles } from './compileStyle'
-import { initCompileScripts, compileDepScripts } from './compileScript'
-import {
- initCopyFiles,
- getBuildData,
- setAppConfig,
- isComponentHasBeenBuilt,
- deleteHasBeenBuiltComponent,
- copyFilesFromSrcToOutput,
- getDependencyTree,
- isFileToBePage
-} from './helper'
-import { buildEntry } from './entry'
-import { buildPages, buildSinglePage } from './page'
-import { buildSingleComponent, getComponentsNamedMap } from './component'
-
-export function watchFiles () {
- console.log()
- console.log(chalk.gray('监听文件修改中...'))
- console.log()
- initCompileStyles()
- initCompileScripts()
- initCopyFiles()
- const {
- sourceDir,
- outputDir,
- sourceDirName,
- projectConfig,
- outputFilesTypes,
- appConfig,
- nodeModulesPath,
- npmOutputDir,
- entryFileName,
- entryFilePath,
- buildAdapter,
- appPath
- } = getBuildData()
- const dependencyTree = getDependencyTree()
- const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
- const watcherPaths = [path.join(sourceDir)].concat(projectConfig.watcher || [])
- const watcher = chokidar.watch(watcherPaths, {
- ignored: /(^|[/\\])\../,
- persistent: true,
- ignoreInitial: true
- })
- watcher
- .on('addDir', dirPath => {
- console.log(dirPath)
- })
- .on('add', filePath => {
- console.log(filePath)
- })
- .on('change', async filePath => {
- const extname = path.extname(filePath)
- const componentsNamedMap = getComponentsNamedMap()
- // 编译JS文件
- if (REG_SCRIPT.test(extname) || REG_TYPESCRIPT.test(extname)) {
- if (entryFilePath === filePath) {
- printLog(processTypeEnum.MODIFY, '入口文件', `${sourceDirName}/${entryFileName}.js`)
- const config = await buildEntry()
- // TODO 此处待优化
- if ((checksum(JSON.stringify(config.pages)) !== checksum(JSON.stringify(appConfig.pages))) ||
- (checksum(JSON.stringify(config.subPackages || config['subpackages'] || {})) !== checksum(JSON.stringify(appConfig.subPackages || appConfig['subpackages'] || {})))) {
- setAppConfig(config)
- await buildPages()
- }
- } else {
- const filePathWithoutExt = filePath.replace(extname, '')
- if (isFileToBePage(filePath)) { // 编译页面
- filePath = filePathWithoutExt
- filePath = filePath.replace(path.join(sourceDir) + path.sep, '')
- filePath = filePath.split(path.sep).join('/')
- printLog(processTypeEnum.MODIFY, '页面文件', `${sourceDirName}/${filePath}`)
- await buildSinglePage(filePath)
- } else if (isComponentHasBeenBuilt(filePath)) { // 编译组件
- let outoutShowFilePath = filePath.replace(appPath + path.sep, '')
- outoutShowFilePath = outoutShowFilePath.split(path.sep).join('/')
- printLog(processTypeEnum.MODIFY, '组件文件', outoutShowFilePath)
- deleteHasBeenBuiltComponent(filePath)
-
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await buildSingleComponent(Object.assign({
- path: filePath
- }, componentsNamedMap.get(filePath)))
- resolve()
- }, 300)
- })
- } else {
- await buildSingleComponent(Object.assign({
- path: filePath
- }, componentsNamedMap.get(filePath)))
- }
- } else {
- let isImported = false
- dependencyTree.forEach((dependencyTreeItem) => {
- if (dependencyTreeItem) {
- const scripts = dependencyTreeItem.script
- if (scripts.indexOf(filePath) >= 0) {
- isImported = true
- }
- }
- })
- let modifySource = filePath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- if (isImported) {
- printLog(processTypeEnum.MODIFY, 'JS文件', modifySource)
- await compileDepScripts([filePath], !isQuickApp)
- } else {
- printLog(processTypeEnum.WARNING, 'JS文件', `${modifySource} 没有被引用到,不会被编译`)
- }
- }
- }
- } else if (REG_STYLE.test(extname)) {
- const includeStyleJSPath: any[] = []
- dependencyTree.forEach((dependencyTreeItem, key) => {
- const styles = dependencyTreeItem['style'] || []
- styles.forEach(item => {
- if (item === filePath) {
- includeStyleJSPath.push({
- filePath: key,
- styles
- })
- }
- })
- })
- if (includeStyleJSPath.length) {
- includeStyleJSPath.forEach(async item => {
- let outputWXSSPath = item.filePath.replace(extnameExpRegOf(item.filePath), outputFilesTypes.STYLE)
- let modifySource = outputWXSSPath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- printLog(processTypeEnum.MODIFY, '样式文件', modifySource)
- if (NODE_MODULES_REG.test(outputWXSSPath)) {
- outputWXSSPath = outputWXSSPath.replace(nodeModulesPath, npmOutputDir)
- } else {
- outputWXSSPath = outputWXSSPath.replace(sourceDir, outputDir)
- }
- let modifyOutput = outputWXSSPath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await compileDepStyles(outputWXSSPath, item.styles)
- resolve()
- }, 300)
- })
- } else {
- await compileDepStyles(outputWXSSPath, item.styles)
- }
- printLog(processTypeEnum.GENERATE, '样式文件', modifyOutput)
- })
- } else {
- let outputWXSSPath = filePath.replace(extnameExpRegOf(filePath), outputFilesTypes.STYLE)
- let modifySource = outputWXSSPath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- printLog(processTypeEnum.MODIFY, '样式文件', modifySource)
- if (NODE_MODULES_REG.test(outputWXSSPath)) {
- outputWXSSPath = outputWXSSPath.replace(nodeModulesPath, npmOutputDir)
- } else {
- outputWXSSPath = outputWXSSPath.replace(sourceDir, outputDir)
- }
- let modifyOutput = outputWXSSPath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await compileDepStyles(outputWXSSPath, [filePath])
- resolve()
- }, 300)
- })
- } else {
- await compileDepStyles(outputWXSSPath, [filePath])
- }
- printLog(processTypeEnum.GENERATE, '样式文件', modifyOutput)
- }
- } else {
- let modifySource = filePath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- printLog(processTypeEnum.MODIFY, '文件', modifySource)
- copyFilesFromSrcToOutput([filePath])
- }
- initCompileStyles()
- initCompileScripts()
- initCopyFiles()
- })
-}
diff --git a/packages/taro-cli/src/plugin.ts b/packages/taro-cli/src/plugin.ts
index 6bcae14f9d2f..c5c6a0739711 100644
--- a/packages/taro-cli/src/plugin.ts
+++ b/packages/taro-cli/src/plugin.ts
@@ -1,58 +1,29 @@
import * as fs from 'fs-extra'
import * as path from 'path'
-import * as glob from 'glob'
import chalk from 'chalk'
-import * as chokidar from 'chokidar'
import * as _ from 'lodash'
-import * as Util from './util'
import {
- BUILD_TYPES,
- REG_SCRIPT,
- REG_STYLE,
- REG_FONT,
- REG_IMAGE,
- REG_MEDIA,
- REG_TYPESCRIPT,
- processTypeEnum,
- isWindows
+ BUILD_TYPES
} from './util/constants'
-import { buildEntry } from './mini/entry'
-import { buildPages, buildSinglePage } from './mini/page'
-import { build as buildWeapp } from './mini'
import {
- getRealComponentsPathList,
- isFileToBePage,
- isComponentHasBeenBuilt,
- deleteHasBeenBuiltComponent,
- getDependencyTree,
- getBuildData,
- setAppConfig,
- setIsProduction,
- setBuildData
+ getBuildData
} from './mini/helper'
-import { buildDepComponents, buildSingleComponent, getComponentsNamedMap } from './mini/component'
-import { compileDepScripts, initCompileScripts } from './mini/compileScript'
-import { compileDepStyles, initCompileStyles } from './mini/compileStyle'
-import { IBuildConfig } from './util/types'
+import { build as buildMini } from './mini'
+import { IBuildOptions } from './util/types'
+import { Builder } from '.'
-const PLUGIN_ROOT = 'plugin/'
-const DOC_ROOT = 'doc/'
-const NPM_DIR = 'npm/'
const PLUGIN_JSON = 'plugin.json'
const PLUGIN_MOCK_JSON = 'plugin-mock.json'
-let isCopyingFiles = {}
-
-export async function build (appPath: string, { watch, platform }: IBuildConfig) {
+export async function build (appPath: string, { watch, platform }: IBuildOptions, builder: Builder) {
switch (platform) {
case BUILD_TYPES.WEAPP:
- buildWxPlugin(appPath, { watch })
+ await buildWxPlugin(appPath, { watch, type: BUILD_TYPES.WEAPP }, builder)
break
case BUILD_TYPES.ALIPAY:
- await buildWeapp(appPath, { watch, adapter: BUILD_TYPES.ALIPAY })
- buildAlipayPlugin()
+ await buildAlipayPlugin(appPath, { watch, type: BUILD_TYPES.ALIPAY }, builder)
break
default:
console.log(chalk.red('输入插件类型错误,目前只支持 weapp/alipay 插件类型'))
@@ -60,354 +31,16 @@ export async function build (appPath: string, { watch, platform }: IBuildConfig)
}
}
-function compilePluginJson (pluginJson, pluginPath) {
- if (typeof pluginJson.main === 'string') {
- pluginJson.main = pluginJson.main.replace(/\.tsx$|\.ts$/, '.js')
- }
- fs.writeJSONSync(pluginPath, pluginJson)
-}
-
-function wxPluginWatchFiles () {
- console.log()
- console.log(chalk.gray('监听文件修改中...'))
- console.log()
- initCompileScripts()
- initCompileStyles()
- isCopyingFiles = {}
-
- const {
- appPath,
- sourceDirName,
- sourceDir,
- outputDir,
- outputFilesTypes,
- entryFilePath,
- entryFileName,
- appConfig
- } = getBuildData()
- const pluginDir = path.join(sourceDir, PLUGIN_ROOT)
- const pluginPath = path.join(appPath, PLUGIN_ROOT)
- const docDir = path.join(pluginDir, DOC_ROOT)
- const docPath = path.join(appPath, DOC_ROOT)
-
- const watcher = chokidar.watch(sourceDir, {
- ignored: /(^|[/\\])\../,
- persistent: true,
- ignoreInitial: true
- })
- watcher
- .on('addDir', dirPath => {
- console.log(dirPath)
- })
- .on('add', filePath => {
- console.log(filePath)
- })
- .on('change', async filePath => {
- let outputFilePath
- if (filePath.includes(docDir)) {
- outputFilePath = filePath.replace(docDir, docPath)
- } else if (filePath.includes(pluginDir)) {
- outputFilePath = filePath.replace(pluginDir, pluginPath)
- } else {
- outputFilePath = filePath.replace(sourceDir, outputDir)
- }
-
- const extname = path.extname(filePath)
- if (REG_SCRIPT.test(extname) || REG_TYPESCRIPT.test(extname)) {
- const pluginJsonPath = path.join(pluginDir, PLUGIN_JSON)
- if (!fs.existsSync(pluginDir) || !fs.existsSync(pluginJsonPath)) {
- return console.log(chalk.red('缺少 plugin.json!'))
- }
- const pluginJson = fs.readJSONSync(pluginJsonPath)
- const pages = pluginJson.pages
- const main = pluginJson.main || ''
-
- if (entryFilePath === filePath) {
- Util.printLog(processTypeEnum.MODIFY, '入口文件', `${sourceDirName}/${entryFileName}.js`)
- const config = await buildEntry()
- // TODO 此处待优化
- if ((Util.checksum(JSON.stringify(config.pages)) !== Util.checksum(JSON.stringify(appConfig.pages))) ||
- (Util.checksum(JSON.stringify(config.subPackages || config['subpackages'] || {})) !== Util.checksum(JSON.stringify(appConfig.subPackages || appConfig['subpackages'] || {})))) {
- setAppConfig(config)
- await buildPages()
- }
- } else if (isWxPluginPage(Object.values(pages), filePath) || isFileToBePage(filePath)) {
- filePath = filePath.replace(extname, '')
- filePath = filePath.replace(path.join(sourceDir) + path.sep, '')
- filePath = filePath.split(path.sep).join('/')
- Util.printLog(processTypeEnum.MODIFY, '页面文件', `${sourceDirName}/${filePath}`)
- await buildSinglePage(filePath)
- } else if (isComponentHasBeenBuilt(filePath)) {
- let outputShowFilePath = filePath.replace(appPath + path.sep, '')
- outputShowFilePath = outputShowFilePath.split(path.sep).join('/')
- Util.printLog(processTypeEnum.MODIFY, '组件文件', outputShowFilePath)
- deleteHasBeenBuiltComponent(filePath)
- const componentsNamedMap = getComponentsNamedMap()
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await buildSingleComponent(Object.assign({
- path: filePath
- }, componentsNamedMap[filePath]))
- resolve()
- }, 300)
- })
- } else {
- await buildSingleComponent(Object.assign({
- path: filePath
- }, componentsNamedMap[filePath]))
- }
- } else {
- const dependencyTree = getDependencyTree()
- let isImported = false
- dependencyTree.forEach(dependencyTreeItem => {
- const scripts = dependencyTreeItem.script || []
- if (scripts.indexOf(filePath) >= 0) {
- isImported = true
- }
- })
-
- let modifySource = filePath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
-
- if (isImported || filePath.includes(path.join(pluginDir, main))) {
- Util.printLog(processTypeEnum.MODIFY, 'JS文件', modifySource)
- await Promise.all(compileDepScripts([filePath], true, true))
- } else {
- Util.printLog(processTypeEnum.WARNING, 'JS文件', `${modifySource} 没有被引用到,不会被编译`)
- }
- }
- } else if (REG_STYLE.test(extname)) {
- const dependencyTree = getDependencyTree()
- const includeStyleJSPath: { filePath: string, styles: any[] }[] = []
- dependencyTree.forEach((dependencyTreeItem, key) => {
- const styles = dependencyTreeItem['style'] || []
- styles.forEach(item => {
- if (item === filePath) {
- includeStyleJSPath.push({
- filePath: key,
- styles
- })
- }
- })
- })
-
- if (includeStyleJSPath.length) {
- await Promise.all(includeStyleJSPath.map(async item => {
- let outputWXSSPath = item.filePath.replace(path.extname(item.filePath), outputFilesTypes.STYLE)
- let modifySource = outputWXSSPath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- Util.printLog(processTypeEnum.MODIFY, '样式文件', modifySource)
-
- outputWXSSPath = outputWXSSPath.replace(sourceDir, outputDir)
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await compileDepStyles(outputWXSSPath, item.styles)
- resolve()
- }, 300)
- })
- } else {
- await compileDepStyles(outputWXSSPath, item.styles)
- }
-
- let modifyOutput = outputWXSSPath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- Util.printLog(processTypeEnum.GENERATE, '样式文件', modifyOutput)
- }))
- } else {
- let outputWXSSPath = filePath.replace(path.extname(filePath), outputFilesTypes.STYLE)
- let modifySource = outputWXSSPath.replace(appPath + path.sep, '')
- modifySource = modifySource.split(path.sep).join('/')
- Util.printLog(processTypeEnum.MODIFY, '样式文件', modifySource)
- outputWXSSPath = outputWXSSPath.replace(sourceDir, outputDir)
- if (isWindows) {
- await new Promise((resolve, reject) => {
- setTimeout(async () => {
- await compileDepStyles(outputWXSSPath, [filePath])
- resolve()
- }, 300)
- })
- } else {
- await compileDepStyles(outputWXSSPath, [filePath])
- }
- let modifyOutput = outputWXSSPath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- Util.printLog(processTypeEnum.GENERATE, '样式文件', modifyOutput)
- }
- } else {
- if (isCopyingFiles[outputFilePath]) return
- isCopyingFiles[outputFilePath] = true
-
- let modifyOutput = outputFilePath.replace(appPath + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- Util.printLog(processTypeEnum.COPY, '文件', modifyOutput)
-
- if (!fs.existsSync(filePath)) {
- let modifySrc = filePath.replace(appPath + path.sep, '')
- modifySrc = modifySrc.split(path.sep).join('/')
- Util.printLog(processTypeEnum.ERROR, '文件', `${modifySrc} 不存在`)
- } else {
- fs.ensureDir(path.dirname(outputFilePath))
- if (filePath === outputFilePath) {
- return
- }
- const pluginJsonPath = path.join(sourceDir, PLUGIN_ROOT, PLUGIN_JSON)
- if (filePath === pluginJsonPath) {
- compilePluginJson(fs.readJSONSync(filePath), outputFilePath)
- } else {
- fs.copySync(filePath, outputFilePath)
- }
- }
- }
-
- // 如果 output/plugin 里有新编译出的文件,
- // 先把 js 里对 npm 的引用修改,然后把所有文件迁移到插件目录
- // 最后删除 output/plugin
- const names = glob.sync(`${outputDir}/${PLUGIN_ROOT}/**/*`)
- if (names.length) {
- const jsNames = glob.sync(`${outputDir}/${PLUGIN_ROOT}/{,!(npm)/**/}?(*.js|*.json)`)
- const ioPromises = jsNames.map(async name => {
- const content = fs.readFileSync(name).toString()
-
- let isShouldBeWritten
- let replacement = content.replace(/['|"]((\.\.\/)+)npm\/.+?['|"]/g, (str, $1) => {
- isShouldBeWritten = true
- return $1 === '../' ? str.replace('../', './') : str.replace('../', '')
- })
-
- const REG_PLUGIN_DEPS = RegExp(`['|"](/${PLUGIN_ROOT}.+)['|"]`, 'g')
- replacement = replacement.replace(REG_PLUGIN_DEPS, (str, $1) => {
- if (REG_FONT.test($1) || REG_IMAGE.test($1) || REG_MEDIA.test($1)) {
- isShouldBeWritten = true
- return str.replace(RegExp(`^['|"]/${PLUGIN_ROOT}`, 'g'), str => str.replace(`${PLUGIN_ROOT}`, ''))
- }
- return str
- })
-
- if (isShouldBeWritten) await fs.writeFile(name, replacement)
- })
- await Promise.all(ioPromises)
-
- await Promise.all(names.map(async from => {
- from = path.join(from)
- if (fs.existsSync(from) && fs.statSync(from).isFile()) {
- const to = from.replace(outputDir, appPath)
- fs.ensureDirSync(path.dirname(to))
- await fs.copyFile(from, to)
- }
- }))
- const tempPluginPath = path.join(outputDir, PLUGIN_ROOT)
- Util.emptyDirectory(tempPluginPath)
- fs.rmdirSync(tempPluginPath)
- }
- // 迁移 npm 到 plugin 目录
- Util.emptyDirectory(path.join(pluginPath, NPM_DIR))
- // fs.rmdirSync(tempPluginPath)
- await fs.copy(path.join(outputDir, NPM_DIR), path.join(pluginPath, NPM_DIR))
-
- initCompileScripts()
- initCompileStyles()
- isCopyingFiles = {}
- })
-}
-
-function isWxPluginPage (pages, filePath) {
- return pages.findIndex(page => filePath.includes(path.join(page))) >= 0
-}
-
-async function buildWxPlugin (appPath, { watch }) {
- const {
- sourceDir,
- outputDir
- } = setBuildData(appPath, BUILD_TYPES.WEAPP)
- const pluginDir = path.join(sourceDir, PLUGIN_ROOT)
- const pluginPath = path.join(appPath, PLUGIN_ROOT)
- const docDir = path.join(pluginDir, DOC_ROOT)
- const docPath = path.join(appPath, DOC_ROOT)
-
- setIsProduction(process.env.NODE_ENV === 'production' || !watch)
-
- fs.existsSync(pluginPath) && Util.emptyDirectory(pluginPath)
- fs.existsSync(docPath) && Util.emptyDirectory(docPath)
- // 编译调试项目
- await buildWeapp(appPath, { adapter: BUILD_TYPES.WEAPP, envHasBeenSet: true })
-
- const pluginJsonPath = path.join(pluginDir, PLUGIN_JSON)
- if (!fs.existsSync(pluginDir) || !fs.existsSync(pluginJsonPath)) {
- return console.log(chalk.red('缺少 plugin.json!'))
- }
- const pluginJson = fs.readJSONSync(pluginJsonPath)
- const components = pluginJson.publicComponents
- const pages: { [key: string]: any } = pluginJson.pages
- const main = pluginJson.main
-
- // 编译插件页面
- if (pages && Object.keys(pages).length) {
- Util.printLog(processTypeEnum.COMPILE, '插件页面')
- const pagesPromises = Object.values(pages).map(page => buildSinglePage(path.join(PLUGIN_ROOT, page)))
- await Promise.all(pagesPromises)
- }
-
- // 编译插件组件
- if (components && Object.keys(components).length) {
- Util.printLog(processTypeEnum.COMPILE, '插件组件')
- const componentList: any[] = []
- for (const component in components) {
- const componentPath = components[component]
- componentList.push({
- path: /^(\.|\/)/.test(componentPath) ? componentPath : '.' + path.sep + componentPath,
- name: component,
- type: 'default'
- })
- }
- const realComponentsPathList = getRealComponentsPathList(pluginJsonPath, componentList)
- await buildDepComponents(realComponentsPathList)
- }
-
- // 编译插件 main.js
- if (main) {
- Util.printLog(processTypeEnum.COMPILE, '插件 JS')
- await Promise.all(compileDepScripts([path.join(pluginDir, main)], true, true))
- }
-
- // 把 plugin 目录挪到根目录
- await fs.move(path.join(outputDir, PLUGIN_ROOT), pluginPath)
- // 把 npm 拷贝一份到 plugin 目录
- await fs.copy(path.join(outputDir, NPM_DIR), path.join(pluginPath, NPM_DIR))
- // 把 doc 目录拷贝到根目录
- fs.existsSync(docDir) && fs.copySync(docDir, docPath)
- // 拷贝 plugin.json
- compilePluginJson(pluginJson, path.join(pluginPath, PLUGIN_JSON))
-
- // plugin 文件夹内对 npm 的引用路径修改
- const names = glob.sync('plugin/{,!(npm)/**/}?(*.js|*.json)')
- const ioPromises = names.map(name => {
- const content = fs.readFileSync(name).toString()
-
- let isShouldBeWritten
- let replacement = content.replace(/['|"]((\.\.\/)+)npm\/.+?['|"]/g, (str, $1) => {
- isShouldBeWritten = true
- return $1 === '../' ? str.replace('../', './') : str.replace('../', '')
- })
-
- const REG_PLUGIN_DEPS = RegExp(`['|"](/${PLUGIN_ROOT}.+?)['|"]`, 'g')
- replacement = replacement.replace(REG_PLUGIN_DEPS, (str, $1) => {
- if (REG_FONT.test($1) || REG_IMAGE.test($1) || REG_MEDIA.test($1)) {
- isShouldBeWritten = true
- return str.replace(RegExp(`^['|"]/${PLUGIN_ROOT}`, 'g'), str => str.replace(`${PLUGIN_ROOT}`, ''))
- }
- return str
- })
-
- if (isShouldBeWritten) fs.writeFileSync(path.join(appPath, name), replacement)
- })
- await Promise.all(ioPromises)
-
- watch && wxPluginWatchFiles()
+async function buildWxPlugin (appPath, { watch, type }, builder) {
+ await buildMini(appPath, { watch, type: BUILD_TYPES.PLUGIN }, null, builder)
+ const { outputDirName } = getBuildData()
+ await buildMini(appPath, { watch, type }, {
+ outputDirName: `${outputDirName}/miniprogram`
+ }, builder)
}
-function buildAlipayPlugin () {
+async function buildAlipayPlugin (appPath, { watch, type }, builder) {
+ await buildMini(appPath, { watch, type }, null, builder)
const {
sourceDir,
outputDir
diff --git a/packages/taro-cli/src/quickapp/template-rewriter.ts b/packages/taro-cli/src/quickapp/template-rewriter.ts
deleted file mode 100644
index abc148762f47..000000000000
--- a/packages/taro-cli/src/quickapp/template-rewriter.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import parseXml from './template/parser'
-import rewriteNode from './template/node'
-import serialize from './template/serialize'
-
-export default function rewriterTemplate(code : string): string {
- // 解析Code
- const viewNodes = parseXml(`${code}`).children
- // 解析视图组件
- const retNodes = rewriteNode(viewNodes)
- // 生成xml代码
- const templateCode = serialize(retNodes)
- return templateCode
-}
\ No newline at end of file
diff --git a/packages/taro-cli/src/rn.ts b/packages/taro-cli/src/rn.ts
index 158da7e2ebd6..b632ebe2c81a 100644
--- a/packages/taro-cli/src/rn.ts
+++ b/packages/taro-cli/src/rn.ts
@@ -6,6 +6,7 @@ import * as chokidar from 'chokidar'
import chalk from 'chalk'
import * as _ from 'lodash'
import * as klaw from 'klaw'
+import { TogglableOptions, ICommonPlugin, IOption } from '@tarojs/taro/types/compile'
import * as Util from './util'
import CONFIG from './config'
@@ -13,7 +14,7 @@ import * as StyleProcess from './rn/styleProcess'
import { parseJSCode as transformJSCode } from './rn/transformJS'
import { PROJECT_CONFIG, processTypeEnum, REG_STYLE, REG_SCRIPTS, REG_TYPESCRIPT, BUILD_TYPES } from './util/constants'
import { convertToJDReact } from './jdreact/convert_to_jdreact'
-import { IBuildConfig } from './util/types'
+import { IBuildOptions } from './util/types'
// import { Error } from 'tslint/lib/error'
let isBuildingStyles = {}
@@ -44,10 +45,16 @@ class Compiler {
entryFilePath: string
entryFileName: string
entryBaseName: string
- pluginsConfig
+ babel: TogglableOptions
+ csso: TogglableOptions
+ uglify: TogglableOptions
+ sass: IOption
+ less: IOption
+ stylus: IOption
+ plugins: ICommonPlugin[]
rnConfig
hasJDReactOutput: boolean
- babelConfig: any
+ // babelConfig: any
// pxTransformConfig
// pathAlias
@@ -59,9 +66,15 @@ class Compiler {
this.entryFilePath = Util.resolveScriptPath(path.join(this.sourceDir, CONFIG.ENTRY))
this.entryFileName = path.basename(this.entryFilePath)
this.entryBaseName = path.basename(this.entryFilePath, path.extname(this.entryFileName))
- this.pluginsConfig = this.projectConfig.plugins || {}
+ this.babel = this.projectConfig.babel
+ this.csso = this.projectConfig.csso
+ this.uglify = this.projectConfig.uglify
+ this.plugins = this.projectConfig.plugins
+ this.sass = this.projectConfig.sass
+ this.stylus = this.projectConfig.stylus
+ this.less = this.projectConfig.less
this.rnConfig = this.projectConfig.rn || {}
- this.babelConfig = this.projectConfig.plugins.babel // 用来配置 babel
+ // this.babelConfig = this.projectConfig.plugins.babel // 用来配置 babel
// 直接输出编译后代码到指定目录
if (this.rnConfig.outPath) {
@@ -89,7 +102,14 @@ class Compiler {
const filePath = path.join(p)
const fileExt = path.extname(filePath)
Util.printLog(processTypeEnum.COMPILE, _.camelCase(fileExt).toUpperCase(), filePath)
- return StyleProcess.loadStyle({filePath, pluginsConfig: this.pluginsConfig}, this.appPath)
+ return StyleProcess.loadStyle({
+ filePath,
+ pluginsConfig: {
+ sass: this.sass,
+ less: this.less,
+ stylus: this.stylus
+ }
+ }, this.appPath)
})).then(resList => { // postcss
return Promise.all(resList.map(item => {
return StyleProcess.postCSS({...item as { css: string, filePath: string }, projectConfig: this.projectConfig})
@@ -297,8 +317,8 @@ function updatePkgJson (appPath) {
"@tarojs/taro-rn": "^${version}",
"@tarojs/taro-router-rn": "^${version}",
"@tarojs/taro-redux-rn": "^${version}",
- "react": "16.3.1",
- "react-native": "0.55.4",
+ "react": "16.8.0",
+ "react-native": "0.59.9",
"redux": "^4.0.0",
"tslib": "^1.8.0"
}
@@ -345,7 +365,7 @@ function installDep (path: string) {
export { Compiler }
-export async function build (appPath: string, buildConfig: IBuildConfig) {
+export async function build (appPath: string, buildConfig: IBuildOptions) {
const { watch } = buildConfig
process.env.TARO_ENV = BUILD_TYPES.RN
await Util.checkCliAndFrameworkVersion(appPath, BUILD_TYPES.RN)
diff --git a/packages/taro-cli/src/rn/transformJS.ts b/packages/taro-cli/src/rn/transformJS.ts
index 52d2040085fc..24097c254d0c 100644
--- a/packages/taro-cli/src/rn/transformJS.ts
+++ b/packages/taro-cli/src/rn/transformJS.ts
@@ -4,12 +4,11 @@ import traverse, { NodePath } from 'babel-traverse'
import * as t from 'babel-types'
import * as _ from 'lodash'
import generate from 'babel-generator'
-import * as wxTransformer from '@tarojs/transformer-wx'
+import wxTransformer from '@tarojs/transformer-wx'
import * as Util from '../util'
import babylonConfig from '../config/babylon'
-import { convertSourceStringToAstExpression as toAst } from '../util/astConvert'
+import { convertSourceStringToAstExpression as toAst, convertAstExpressionToVariable as toVar } from '../util/astConvert'
import { REG_STYLE, REG_TYPESCRIPT, BUILD_TYPES, REG_SCRIPTS } from '../util/constants'
-import { convertAstExpressionToVariable as toVar } from '../util/astConvert'
const template = require('babel-template')
@@ -275,7 +274,7 @@ export function parseJSCode ({code, filePath, isEntryFile, projectConfig}) {
if (REG_STYLE.test(valueExtname)) {
const stylePath = path.resolve(path.dirname(filePath), value)
if (styleFiles.indexOf(stylePath) < 0) {
- //样式条件文件编译 .rn.scss
+ // 样式条件文件编译 .rn.scss
const realStylePath = Util.resolveStylePath(stylePath)
styleFiles.push(realStylePath)
}
@@ -377,7 +376,7 @@ export function parseJSCode ({code, filePath, isEntryFile, projectConfig}) {
hasComponentWillUnmount = true
}
// 获取 app.js 的 classRenderReturnJSX
- if (keyName == 'render') {
+ if (keyName === 'render') {
astPath.traverse({
BlockStatement (astPath) {
if (astPath.parent === node) {
@@ -451,7 +450,7 @@ export function parseJSCode ({code, filePath, isEntryFile, projectConfig}) {
node.body.body.unshift(componentDidHideCallNode)
}
- if (key.name == 'render') {
+ if (key.name === 'render') {
let funcBody = `
<${taroComponentsRNProviderName}>
${classRenderReturnJSX}
diff --git a/packages/taro-cli/src/taro-config/index.ts b/packages/taro-cli/src/taro-config/index.ts
index 1ef7e2e6870e..7208c19ae508 100644
--- a/packages/taro-cli/src/taro-config/index.ts
+++ b/packages/taro-cli/src/taro-config/index.ts
@@ -1,15 +1,23 @@
import * as fs from 'fs-extra'
import * as path from 'path'
import { getUserHomeDir } from '../util'
+import { TARO_CONFIG_FLODER, TARO_BASE_CONFIG } from '../util/constants'
const homedir = getUserHomeDir()
-const configPath = path.join(homedir, '.taro/index.json')
+const configPath = path.join(homedir, `${TARO_CONFIG_FLODER}/${TARO_BASE_CONFIG}`)
+
+function displayConfigPath (configPath) {
+ console.log('Config path:', configPath)
+ console.log()
+}
export function get (key: string) {
if (!homedir) return console.log('找不到用户根目录')
+
if (fs.existsSync(configPath)) {
+ displayConfigPath(configPath)
const config = fs.readJSONSync(configPath)
- console.log(config[key])
+ console.log('Key:', key, ', value:', config[key])
}
}
@@ -17,6 +25,7 @@ export function set (key: string, value: string) {
if (!homedir) return console.log('找不到用户根目录')
if (fs.existsSync(configPath)) {
+ displayConfigPath(configPath)
const config = fs.readJSONSync(configPath)
config[key] = value
fs.writeJSONSync(configPath, config)
@@ -26,21 +35,27 @@ export function set (key: string, value: string) {
[key]: value
})
}
+ console.log('Set key:', key, ', value:', value)
}
export function deleteKey (key: string) {
if (!homedir) return console.log('找不到用户根目录')
if (fs.existsSync(configPath)) {
+ displayConfigPath(configPath)
const config = fs.readJSONSync(configPath)
delete config[key]
fs.writeJSONSync(configPath, config)
}
+ console.log('Deleted:', key)
}
export function list (isJSONFormat: boolean = false) {
if (!homedir) return console.log('找不到用户根目录')
+
if (fs.existsSync(configPath)) {
+ displayConfigPath(configPath)
+ console.log('Config info:')
const config = fs.readJSONSync(configPath)
if (isJSONFormat) {
console.log(JSON.stringify(config, null, 2))
diff --git a/packages/taro-cli/src/ui/common.ts b/packages/taro-cli/src/ui/common.ts
index 6ca2cb599757..41f6e1b5a916 100644
--- a/packages/taro-cli/src/ui/common.ts
+++ b/packages/taro-cli/src/ui/common.ts
@@ -1,15 +1,15 @@
+import * as path from 'path'
+import * as fs from 'fs-extra'
+
import * as t from 'babel-types'
import * as glob from 'glob'
import traverse from 'babel-traverse'
-import * as path from 'path'
-import * as wxTransformer from '@tarojs/transformer-wx'
import generate from 'babel-generator'
-import * as fs from 'fs-extra'
-import { parseAst } from '../mini/astProcess'
+import * as wxTransformer from '@tarojs/transformer-wx'
+
import { IBuildData } from './ui.types'
import { cssImports, printLog, resolveScriptPath, resolveStylePath, isNpmPkg } from '../util'
-import { PARSE_AST_TYPE, processTypeEnum, REG_STYLE, REG_TYPESCRIPT, CSS_EXT } from '../util/constants'
-import { IComponentObj } from '../mini/interface'
+import { processTypeEnum, REG_STYLE, REG_TYPESCRIPT, REG_SCRIPT, REG_JSON, REG_FONT, REG_IMAGE, REG_MEDIA, CSS_EXT } from '../util/constants'
let processedScriptFiles: Set = new Set()
@@ -20,6 +20,85 @@ export const RN_OUTPUT_NAME = 'rn'
export const TEMP_DIR = '.temp'
export const RN_TEMP_DIR = 'rn_temp'
+interface IComponentObj {
+ name?: string,
+ path: string | null,
+ type?: string
+}
+
+interface IParseAstReturn {
+ styleFiles: string[],
+ scriptFiles: string[],
+ jsonFiles: string[],
+ mediaFiles: string[]
+}
+
+function parseAst (
+ ast: t.File,
+ sourceFilePath: string
+): IParseAstReturn {
+ const styleFiles: string[] = []
+ const scriptFiles: string[] = []
+ const jsonFiles: string[] = []
+ const mediaFiles: string[] = []
+
+ traverse(ast, {
+ Program: {
+ exit (astPath) {
+ astPath.traverse({
+ ImportDeclaration (astPath) {
+ const node = astPath.node
+ const source = node.source
+ const value = source.value
+ const valueExtname = path.extname(value)
+ if (value.indexOf('.') === 0) {
+ let importPath = path.resolve(path.dirname(sourceFilePath), value)
+ importPath = resolveScriptPath(importPath)
+ if (REG_SCRIPT.test(valueExtname) || REG_TYPESCRIPT.test(valueExtname)) {
+ const vpath = path.resolve(sourceFilePath, '..', value)
+ let fPath = value
+ if (fs.existsSync(vpath) && vpath !== sourceFilePath) {
+ fPath = vpath
+ }
+ if (scriptFiles.indexOf(fPath) < 0) {
+ scriptFiles.push(fPath)
+ }
+ } else if (REG_JSON.test(valueExtname)) {
+ const vpath = path.resolve(sourceFilePath, '..', value)
+ if (fs.existsSync(vpath) && jsonFiles.indexOf(vpath) < 0) {
+ jsonFiles.push(vpath)
+ }
+ } else if (REG_FONT.test(valueExtname) || REG_IMAGE.test(valueExtname) || REG_MEDIA.test(valueExtname)) {
+ const vpath = path.resolve(sourceFilePath, '..', value)
+ if (fs.existsSync(vpath) && mediaFiles.indexOf(vpath) < 0) {
+ mediaFiles.push(vpath)
+ }
+ } else if (REG_STYLE.test(valueExtname)) {
+ const vpath = path.resolve(path.dirname(sourceFilePath), value)
+ if (fs.existsSync(vpath) && styleFiles.indexOf(vpath) < 0) {
+ styleFiles.push(vpath)
+ }
+ } else {
+ const vpath = resolveScriptPath(path.resolve(sourceFilePath, '..', value))
+ if (fs.existsSync(vpath) && scriptFiles.indexOf(vpath) < 0) {
+ scriptFiles.push(vpath)
+ }
+ }
+ }
+ }
+ })
+ }
+ }
+ })
+
+ return {
+ styleFiles,
+ scriptFiles,
+ jsonFiles,
+ mediaFiles
+ }
+}
+
export function parseEntryAst (ast: t.File, relativeFile: string) {
const styleFiles: string[] = []
const components: IComponentObj[] = []
@@ -157,7 +236,7 @@ export function analyzeFiles (files: string[], sourceDir: string, outputDir: str
scriptFiles,
jsonFiles,
mediaFiles
- } = parseAst(PARSE_AST_TYPE.NORMAL, transformResult.ast, [], file, file, true)
+ } = parseAst(transformResult.ast, file)
const resFiles = styleFiles.concat(scriptFiles, jsonFiles, mediaFiles)
diff --git a/packages/taro-cli/src/ui/h5.ts b/packages/taro-cli/src/ui/h5.ts
index 3e3df61370cd..e2fe99225246 100644
--- a/packages/taro-cli/src/ui/h5.ts
+++ b/packages/taro-cli/src/ui/h5.ts
@@ -25,8 +25,8 @@ async function buildForH5 (uiIndex = 'index', buildData: IBuildData) {
}
async function buildH5Script (buildData: IBuildData) {
- const {appPath, projectConfig, entryFileName, sourceDirName, tempPath} = buildData
- let {outputDirName} = buildData
+ const { appPath, projectConfig, entryFileName, sourceDirName, tempPath } = buildData
+ let { outputDirName } = buildData
const h5Config: IH5BuildConfig = Object.assign({}, projectConfig.h5)
const entryFile = path.basename(entryFileName, path.extname(entryFileName)) + '.js'
outputDirName = `${outputDirName}/${H5_OUTPUT_NAME}`
@@ -57,7 +57,6 @@ async function buildH5Lib (uiIndex, buildData: IBuildData) {
const transformResult = wxTransformer({
code,
sourcePath: tempEntryFilePath,
- outputPath: outputEntryFilePath,
isNormal: true,
isTyped: REG_TYPESCRIPT.test(tempEntryFilePath)
})
diff --git a/packages/taro-cli/src/ui/index.ts b/packages/taro-cli/src/ui/index.ts
index 33d855ebe4b5..7b1651f4a8d3 100644
--- a/packages/taro-cli/src/ui/index.ts
+++ b/packages/taro-cli/src/ui/index.ts
@@ -17,7 +17,7 @@ import {
BUILD_TYPES,
REG_STYLE
} from '../util/constants'
-import { IBuildConfig } from '../util/types'
+import { IBuildOptions } from '../util/types'
import { setBuildData as setMiniBuildData } from '../mini/helper'
import { IBuildData } from './ui.types'
import {
@@ -244,7 +244,7 @@ function watchFiles () {
})
}
-export async function build (appPath, {watch, uiIndex}: IBuildConfig) {
+export async function build (appPath, {watch, uiIndex}: IBuildOptions) {
setBuildData(appPath, uiIndex)
setMiniBuildData(appPath, BUILD_TYPES.WEAPP)
setMiniBuildData(appPath, BUILD_TYPES.QUICKAPP)
diff --git a/packages/taro-cli/src/ui/quickapp.ts b/packages/taro-cli/src/ui/quickapp.ts
index 415b44aede90..95b0b46626aa 100644
--- a/packages/taro-cli/src/ui/quickapp.ts
+++ b/packages/taro-cli/src/ui/quickapp.ts
@@ -4,7 +4,6 @@ import * as path from 'path'
import { processTypeEnum, REG_TYPESCRIPT } from '../util/constants'
import * as wxTransformer from '@tarojs/transformer-wx'
-import { compileDepStyles } from '../mini/compileStyle'
import { printLog } from '../util'
import { analyzeFiles, parseEntryAst, QUICKAPP_OUTPUT_NAME, copyFileToDist, copyAllInterfaceFiles } from './common'
import { IBuildData } from './ui.types'
@@ -28,11 +27,7 @@ export async function buildForQuickapp (buildData: IBuildData) {
isNormal: true,
isTyped: REG_TYPESCRIPT.test(entryFilePath)
})
- const {styleFiles, components} = parseEntryAst(transformResult.ast, entryFilePath)
- if (styleFiles.length) {
- const outputStylePath = path.join(outputDir, 'css', 'index.css')
- await compileDepStyles(outputStylePath, styleFiles)
- }
+ const { components } = parseEntryAst(transformResult.ast, entryFilePath)
const relativePath = path.relative(appPath, entryFilePath)
printLog(processTypeEnum.COPY, '发现文件', relativePath)
fs.ensureDirSync(path.dirname(outputEntryFilePath))
diff --git a/packages/taro-cli/src/ui/rn.ts b/packages/taro-cli/src/ui/rn.ts
index ca6bb0d801cc..c994e3e71b55 100644
--- a/packages/taro-cli/src/ui/rn.ts
+++ b/packages/taro-cli/src/ui/rn.ts
@@ -1,12 +1,13 @@
-import { IBuildData } from './ui.types'
import * as path from 'path'
-import { analyzeFiles, analyzeStyleFilesImport, copyFileToDist, RN_OUTPUT_NAME, parseEntryAst } from './common'
-import { printLog, resolveScriptPath } from '../util'
import * as fs from 'fs-extra'
import * as wxTransformer from '@tarojs/transformer-wx'
+import chalk from 'chalk'
+
import { processTypeEnum, REG_TYPESCRIPT } from '../util/constants'
import { Compiler as RNCompiler } from '../rn'
-import chalk from 'chalk'
+import { analyzeFiles, analyzeStyleFilesImport, copyFileToDist, RN_OUTPUT_NAME, parseEntryAst } from './common'
+import { printLog, resolveScriptPath } from '../util'
+import { IBuildData } from './ui.types'
export async function buildForRN (uiIndex = 'index', buildData) {
const {appPath} = buildData
diff --git a/packages/taro-cli/src/ui/ui.types.ts b/packages/taro-cli/src/ui/ui.types.ts
index 3ab3cd7c407a..909e49815cdc 100644
--- a/packages/taro-cli/src/ui/ui.types.ts
+++ b/packages/taro-cli/src/ui/ui.types.ts
@@ -1,4 +1,4 @@
-import { IH5Config, IProjectConfig } from '../util/types'
+import { IProjectConfig, IH5Config } from '@tarojs/taro/types/compile'
export interface IBuildData {
appPath: string,
diff --git a/packages/taro-cli/src/ui/weapp.ts b/packages/taro-cli/src/ui/weapp.ts
index 23575e6a2807..49cfde0b6cd2 100644
--- a/packages/taro-cli/src/ui/weapp.ts
+++ b/packages/taro-cli/src/ui/weapp.ts
@@ -1,9 +1,9 @@
import chalk from 'chalk'
import * as fs from 'fs-extra'
import * as path from 'path'
+import * as wxTransformer from '@tarojs/transformer-wx'
import { processTypeEnum, REG_TYPESCRIPT } from '../util/constants'
-import * as wxTransformer from '@tarojs/transformer-wx'
import { printLog } from '../util'
import { analyzeFiles, parseEntryAst, WEAPP_OUTPUT_NAME, copyFileToDist, copyAllInterfaceFiles } from './common'
import { IBuildData } from './ui.types'
diff --git a/packages/taro-cli/src/util/constants.ts b/packages/taro-cli/src/util/constants.ts
index c63a44dc4ea0..766af71bfe92 100644
--- a/packages/taro-cli/src/util/constants.ts
+++ b/packages/taro-cli/src/util/constants.ts
@@ -302,48 +302,49 @@ export const FILE_PROCESSOR_MAP = {
}
export const UPDATE_PACKAGE_LIST = [
- '@tarojs/taro',
'@tarojs/async-await',
'@tarojs/cli',
- '@tarojs/components',
- '@tarojs/components-rn',
'@tarojs/components-qa',
- '@tarojs/taro-h5',
- '@tarojs/taro-tt',
- '@tarojs/taro-qq',
- '@tarojs/taro-jd',
- '@tarojs/taro-quickapp',
- '@tarojs/taro-swan',
- '@tarojs/taro-alipay',
+ '@tarojs/components-rn',
+ '@tarojs/components',
+ '@tarojs/mini-runner',
+ '@tarojs/mobx-common',
+ '@tarojs/mobx-h5',
+ '@tarojs/mobx-rn',
+ '@tarojs/mobx',
'@tarojs/plugin-babel',
'@tarojs/plugin-csso',
- '@tarojs/plugin-sass',
'@tarojs/plugin-less',
+ '@tarojs/plugin-sass',
'@tarojs/plugin-stylus',
'@tarojs/plugin-uglifyjs',
- '@tarojs/redux',
'@tarojs/redux-h5',
- '@tarojs/taro-redux-rn',
- '@tarojs/taro-router-rn',
- '@tarojs/taro-rn',
+ '@tarojs/redux',
'@tarojs/rn-runner',
'@tarojs/router',
+ '@tarojs/taro-alipay',
+ '@tarojs/taro-h5',
+ '@tarojs/taro-jd',
+ '@tarojs/taro-qq',
+ '@tarojs/taro-quickapp',
+ '@tarojs/taro-redux-rn',
+ '@tarojs/taro-rn',
+ '@tarojs/taro-router-rn',
+ '@tarojs/taro-swan',
+ '@tarojs/taro-tt',
'@tarojs/taro-weapp',
+ '@tarojs/taro',
'@tarojs/webpack-runner',
- 'postcss-plugin-constparse',
+ 'babel-plugin-transform-jsx-to-stylesheet',
'eslint-config-taro',
'eslint-plugin-taro',
- 'taro-transformer-wx',
- 'postcss-pxtransform',
- 'babel-plugin-transform-jsx-to-stylesheet',
- '@tarojs/mobx',
- '@tarojs/mobx-h5',
- '@tarojs/mobx-rn',
- '@tarojs/mobx-common',
- 'nervjs',
'nerv-devtools',
+ 'nervjs',
+ 'postcss-plugin-constparse',
+ 'postcss-pxtransform',
'stylelint-config-taro-rn',
- 'stylelint-taro-rn'
+ 'stylelint-taro-rn',
+ 'taro-transformer-wx'
]
export enum PARSE_AST_TYPE {
@@ -363,6 +364,6 @@ export const taroJsMobxCommon = '@tarojs/mobx-common'
export const DEVICE_RATIO_NAME = 'deviceRatio'
export const isWindows = os.platform() === 'win32'
-export const DEFAULT_TEMPLATE_SRC = 'github:NervJS/taro-project-templates'
-export const TARO_CONFIG_FLODER = '.taro'
+export const DEFAULT_TEMPLATE_SRC = 'github:NervJS/taro-project-templates#next'
+export const TARO_CONFIG_FLODER = '.taro2'
export const TARO_BASE_CONFIG = 'index.json'
diff --git a/packages/taro-cli/src/util/index.ts b/packages/taro-cli/src/util/index.ts
index 0c6ccf955432..924b8e4f6fbf 100644
--- a/packages/taro-cli/src/util/index.ts
+++ b/packages/taro-cli/src/util/index.ts
@@ -1,20 +1,15 @@
import * as fs from 'fs-extra'
import * as path from 'path'
import { Transform } from 'stream'
-import * as crypto from 'crypto'
import * as os from 'os'
import * as child_process from 'child_process'
import chalk from 'chalk'
import { mergeWith, isPlainObject, camelCase, flatMap } from 'lodash'
-import * as minimatch from 'minimatch'
-import * as t from 'babel-types'
import * as yauzl from 'yauzl'
import * as findWorkspaceRoot from 'find-yarn-workspace-root'
-import * as chokidar from 'chokidar';
import defaultBabelConfig from '../config/babel'
-import defaultUglifyConfig from '../config/uglify'
import {
JS_EXT,
@@ -24,14 +19,10 @@ import {
processTypeMap,
processTypeEnum,
MINI_APP_FILES,
+ NODE_MODULES,
BUILD_TYPES,
- CONFIG_MAP,
- REG_STYLE,
- UX_EXT,
- NODE_MODULES
+ TARO_CONFIG_FLODER
} from './constants'
-import { ICopyArgOptions, ICopyOptions, TogglableOptions } from './types'
-import { callPluginSync } from './npm'
const execSync = child_process.execSync
@@ -93,7 +84,7 @@ export function getRootPath (): string {
}
export function getTaroPath (): string {
- const taroPath = path.join(homedir(), '.taro')
+ const taroPath = path.join(homedir(), TARO_CONFIG_FLODER)
if (!fs.existsSync(taroPath)) {
fs.ensureDirSync(taroPath)
}
@@ -163,19 +154,6 @@ export function isEmptyObject (obj: any): boolean {
return true
}
-export function urlJoin (...agrs: string[]): string {
- function normalize (str) {
- return str
- .replace(/([/]+)/g, '/')
- .replace(/\/\?(?!\?)/g, '?')
- .replace(/\/#/g, '#')
- .replace(/:\//g, '://')
- }
-
- const joined = [].slice.call(agrs, 0).join('/')
- return normalize(joined)
-}
-
export function resolveScriptPath (p: string): string {
const realPath = p
const taroEnv = process.env.TARO_ENV
@@ -203,74 +181,6 @@ export function resolveScriptPath (p: string): string {
return realPath
}
-export function resolvePureScriptPath (p: string): string {
- const realPath = p
- const SCRIPT_EXT = JS_EXT.concat(TS_EXT)
- for (let i = 0; i < SCRIPT_EXT.length; i++) {
- const item = SCRIPT_EXT[i]
- if (fs.existsSync(`${p}${item}`)) {
- return `${p}${item}`
- }
- if (fs.existsSync(`${p}${path.sep}index${item}`)) {
- return `${p}${path.sep}index${item}`
- }
- }
- return realPath
-}
-
-export function resolveQuickappFilePath (p: string): string {
- for (let i = 0; i < UX_EXT.length; i++) {
- const item = UX_EXT[i]
- if (fs.existsSync(`${p}${item}`)) {
- return `${p}${item}`
- }
- if (fs.existsSync(`${p}${path.sep}index${item}`)) {
- return `${p}${path.sep}index${item}`
- }
- }
- return p
-}
-
-export function processUxContent (contents, cb) {
- const reg = /(\n`
- }
- return uxTxt
-}
-
export const recursiveMerge = (src, ...args) => {
return mergeWith(src, ...args, (value, srcValue, key, obj, source) => {
const typeValue = typeof value
@@ -765,21 +498,6 @@ export function getBabelConfig (babel) {
return babelConfig
}
-export function uglifyJS (resCode: string, filePath: string, root: string, uglify: TogglableOptions): string {
- const uglifyPluginConfig = uglify || { enable: true }
- if (uglifyPluginConfig.enable) {
- const uglifyConfig = Object.assign(defaultUglifyConfig, uglifyPluginConfig.config || {})
- const uglifyResult = callPluginSync('uglifyjs', resCode, filePath, uglifyConfig, root)
- if (uglifyResult.error) {
- printLog(processTypeEnum.ERROR, '压缩错误', `文件${filePath}`)
- console.log(uglifyResult.error)
- return resCode
- }
- return uglifyResult.code
- }
- return resCode
-}
-
export const getAllFilesInFloder = async (
floder: string,
filter: string[] = []
@@ -861,3 +579,25 @@ export function extnameExpRegOf (filePath: string): RegExp {
export function generateAlipayPath (filePath) {
return filePath.replace(/@/g, '_')
}
+
+
+interface IRemindVersion {
+ remindTimes: number
+}
+export function printVersionTip () {
+ const taroPath = getTaroPath()
+ let remindVersion: IRemindVersion = { remindTimes: 0 }
+ const remindVersionFilePath = path.join(taroPath, '.remind_version.json')
+ if (!fs.existsSync(remindVersionFilePath)) {
+ fs.ensureDirSync(taroPath)
+ fs.writeFileSync(remindVersionFilePath, JSON.stringify(remindVersion))
+ } else {
+ remindVersion = fs.readJSONSync(remindVersionFilePath)
+ }
+ if (remindVersion.remindTimes < 5) {
+ console.log(chalk.red('当前您正在使用 2.0 beta 版本,请先执行 taro doctor 确保编译配置正确'))
+ console.log(chalk.red('如出现令你束手无策的问题,请使用 taro update 命令更新到你指定的稳定版本'))
+ remindVersion.remindTimes++
+ fs.writeFileSync(remindVersionFilePath, JSON.stringify(remindVersion))
+ }
+}
diff --git a/packages/taro-cli/src/util/npmExact.ts b/packages/taro-cli/src/util/npmExact.ts
deleted file mode 100644
index a47bc72bc153..000000000000
--- a/packages/taro-cli/src/util/npmExact.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import * as path from 'path'
-
-import { resolveNpmFilesPath } from './resolve_npm_files'
-import { INpmConfig, TogglableOptions, ITaroManifestConfig } from './types'
-import { BUILD_TYPES, REG_STYLE, NODE_MODULES, REG_FONT, REG_MEDIA, REG_IMAGE } from './constants'
-import { promoteRelativePath, recursiveFindNodeModules, generateAlipayPath } from './index'
-
-interface IArgs {
- npmName: string,
- sourceFilePath: string,
- filePath: string,
- isProduction: boolean,
- npmConfig: INpmConfig,
- buildAdapter: BUILD_TYPES,
- root: string,
- npmOutputDir: string,
- compileConfig: {[k: string]: any},
- env: object,
- uglify: TogglableOptions,
- babelConfig: object,
- quickappManifest?: ITaroManifestConfig
-}
-
-const notExistNpmList: Set = new Set()
-
-export function getNpmOutputDir (outputDir: string, configDir: string, npmConfig: INpmConfig): string {
- let npmOutputDir
- if (!npmConfig.dir) {
- npmOutputDir = path.join(outputDir, npmConfig.name)
- } else {
- npmOutputDir = path.join(path.resolve(configDir, '..', npmConfig.dir), npmConfig.name)
- }
- return npmOutputDir
-}
-
-export function getExactedNpmFilePath ({
- npmName,
- sourceFilePath,
- filePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root,
- npmOutputDir,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
-}: IArgs) {
- try {
- const nodeModulesPath = recursiveFindNodeModules(path.join(root, NODE_MODULES))
- const npmInfo = resolveNpmFilesPath({
- pkgName: npmName,
- isProduction,
- npmConfig,
- buildAdapter,
- root,
- rootNpm: nodeModulesPath,
- npmOutputDir,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- const npmInfoMainPath = npmInfo.main
- let outputNpmPath
- if (REG_STYLE.test(npmInfoMainPath)
- || REG_FONT.test(npmInfoMainPath)
- || REG_MEDIA.test(npmInfoMainPath)
- || REG_IMAGE.test(npmInfoMainPath)) {
- outputNpmPath = npmInfoMainPath
- filePath = sourceFilePath
- } else {
- outputNpmPath = npmInfoMainPath.replace(nodeModulesPath, npmOutputDir)
- }
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- outputNpmPath = generateAlipayPath(outputNpmPath)
- }
- const relativePath = path.relative(filePath, outputNpmPath)
- return promoteRelativePath(relativePath)
- } catch (err) {
- console.log(err)
- notExistNpmList.add(npmName)
- return npmName
- }
-}
-
-export function getNotExistNpmList () {
- return notExistNpmList
-}
diff --git a/packages/taro-cli/src/util/resolve_npm_files.ts b/packages/taro-cli/src/util/resolve_npm_files.ts
deleted file mode 100644
index dd99b33ee1a0..000000000000
--- a/packages/taro-cli/src/util/resolve_npm_files.ts
+++ /dev/null
@@ -1,550 +0,0 @@
-import * as fs from 'fs-extra'
-import * as path from 'path'
-import * as resolvePath from 'resolve'
-import * as wxTransformer from '@tarojs/transformer-wx'
-import * as babel from 'babel-core'
-import * as t from 'babel-types'
-import traverse from 'babel-traverse'
-import generate from 'babel-generator'
-import * as _ from 'lodash'
-
-import {
- isNpmPkg,
- promoteRelativePath,
- printLog,
- recursiveFindNodeModules,
- generateEnvList,
- isQuickappPkg,
- generateAlipayPath
-} from './index'
-
-import {
- processTypeEnum,
- REG_TYPESCRIPT,
- BUILD_TYPES,
- REG_STYLE,
- REG_FONT,
- REG_IMAGE,
- REG_MEDIA,
- REG_JSON,
- taroJsFramework,
- NODE_MODULES_REG,
- taroJsRedux,
- taroJsMobxCommon,
- taroJsMobx
-} from './constants'
-
-import defaultUglifyConfig from '../config/uglify'
-
-import * as npmProcess from './npm'
-import { IInstallOptions, INpmConfig, IResolvedCache, TogglableOptions, ITaroManifestConfig } from './types'
-import { convertArrayToAstExpression, convertObjectToAstExpression } from './astConvert'
-
-const excludeNpmPkgs = ['ReactPropTypes']
-
-const resolvedCache: IResolvedCache = {}
-const copyedFiles = {}
-export const excludeReplaceTaroFrameworkPkgs = new Set([taroJsRedux, taroJsMobx, taroJsMobxCommon])
-
-export function resolveNpmPkgMainPath (
- pkgName: string,
- isProduction: boolean,
- npmConfig: INpmConfig,
- buildAdapter: BUILD_TYPES = BUILD_TYPES.WEAPP,
- root: string
-) {
- try {
- return resolvePath.sync(pkgName, { basedir: root })
- } catch (err) {
- if (err.code === 'MODULE_NOT_FOUND') {
- console.log(`缺少npm包${pkgName},开始安装...`)
- const installOptions: IInstallOptions = {
- dev: false
- }
- if (pkgName.indexOf(npmProcess.taroPluginPrefix) >= 0) {
- installOptions.dev = true
- }
- npmProcess.installNpmPkg(pkgName, installOptions)
- return resolveNpmPkgMainPath(pkgName, isProduction, npmConfig, buildAdapter, root)
- }
- }
-}
-
-export function resolveNpmFilesPath ({
- pkgName,
- isProduction,
- npmConfig,
- buildAdapter,
- root,
- rootNpm,
- npmOutputDir,
- compileConfig = {},
- env,
- uglify,
- babelConfig,
- quickappManifest
-}: {
- pkgName: string,
- isProduction: boolean,
- npmConfig: INpmConfig,
- buildAdapter: BUILD_TYPES,
- root: string,
- rootNpm: string,
- npmOutputDir: string,
- compileConfig: {[k: string]: any},
- env: object,
- uglify: TogglableOptions,
- babelConfig: object,
- quickappManifest?: ITaroManifestConfig
-}) {
- if (!resolvedCache[pkgName]) {
- const res = resolveNpmPkgMainPath(pkgName, isProduction, npmConfig, buildAdapter, root)
- resolvedCache[pkgName] = {
- main: res,
- files: []
- }
- resolvedCache[pkgName].files.push(res)
- recursiveRequire({
- filePath: res,
- files: resolvedCache[pkgName].files,
- isProduction,
- npmConfig,
- buildAdapter,
- rootNpm,
- npmOutputDir: npmOutputDir,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- }
- return resolvedCache[pkgName]
-}
-
-function analyzeImportUrl ({
- requirePath,
- excludeRequire,
- source,
- filePath,
- files,
- isProduction,
- npmConfig,
- rootNpm,
- npmOutputDir,
- buildAdapter,
- compileConfig = [],
- env,
- uglify,
- babelConfig,
- quickappManifest
-}: {
- requirePath: string,
- excludeRequire: string[],
- source: any,
- filePath: string,
- files: string[],
- isProduction: boolean,
- npmConfig: INpmConfig,
- rootNpm: string,
- npmOutputDir: string,
- buildAdapter: BUILD_TYPES,
- compileConfig: {[k: string]: any},
- env: object,
- uglify: TogglableOptions,
- babelConfig: object,
- quickappManifest?: ITaroManifestConfig
-}) {
- if (excludeRequire.indexOf(requirePath) < 0) {
- const quickappPkgs = quickappManifest ? quickappManifest.features : []
- if (buildAdapter === BUILD_TYPES.QUICKAPP && isQuickappPkg(requirePath, quickappPkgs)) {
- return
- }
- if (isNpmPkg(requirePath)) {
- if (excludeNpmPkgs.indexOf(requirePath) < 0) {
- const taroMiniAppFramework = `@tarojs/taro-${buildAdapter}`
- excludeReplaceTaroFrameworkPkgs.add(taroMiniAppFramework)
- if (requirePath === taroJsFramework
- && (!NODE_MODULES_REG.test(filePath) || !Array.from(excludeReplaceTaroFrameworkPkgs).some(item => filePath.replace(/\\/g, '/').indexOf(item) >= 0))) {
- requirePath = taroMiniAppFramework
- }
- const res = resolveNpmFilesPath({
- pkgName: requirePath,
- isProduction,
- npmConfig,
- buildAdapter,
- root: path.dirname(recursiveFindNodeModules(filePath)),
- rootNpm,
- npmOutputDir,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- let relativeRequirePath = promoteRelativePath(path.relative(filePath, res.main))
- relativeRequirePath = relativeRequirePath.replace(/node_modules/g, npmConfig.name)
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- relativeRequirePath = generateAlipayPath(relativeRequirePath)
- }
- source.value = relativeRequirePath
- }
- } else {
- let realRequirePath = path.resolve(path.dirname(filePath), requirePath)
- const tempPathWithJS = `${realRequirePath}.js`
- const tempPathWithIndexJS = `${realRequirePath}${path.sep}index.js`
- if (fs.existsSync(tempPathWithJS)) {
- realRequirePath = tempPathWithJS
- requirePath += '.js'
- } else if (fs.existsSync(tempPathWithIndexJS)) {
- realRequirePath = tempPathWithIndexJS
- requirePath += '/index.js'
- }
- if (files.indexOf(realRequirePath) < 0) {
- files.push(realRequirePath)
- recursiveRequire({
- filePath: realRequirePath,
- files,
- isProduction,
- npmConfig,
- buildAdapter,
- rootNpm,
- npmOutputDir,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- }
- source.value = requirePath
- }
- }
-}
-
-function parseAst ({
- ast,
- filePath,
- files,
- isProduction,
- npmConfig,
- rootNpm,
- npmOutputDir,
- buildAdapter,
- compileConfig = [],
- env,
- uglify,
- babelConfig,
- quickappManifest
-}: {
- ast: t.File,
- filePath: string,
- files: string[],
- isProduction: boolean,
- npmConfig: INpmConfig,
- rootNpm: string,
- npmOutputDir: string,
- buildAdapter: BUILD_TYPES,
- compileConfig: {[k: string]: any},
- env: object,
- uglify: TogglableOptions,
- babelConfig: object,
- quickappManifest?: ITaroManifestConfig
-}) {
- const excludeRequire: string[] = []
-
- traverse(ast, {
- IfStatement (astPath) {
- astPath.traverse({
- BinaryExpression (astPath) {
- const node = astPath.node
- const left = node.left
- const right = node.right
- if (t.isMemberExpression(left) && t.isStringLiteral(right)) {
- if (generate(left).code === 'process.env.TARO_ENV' &&
- (node.right as t.StringLiteral).value !== buildAdapter) {
- const consequentSibling = astPath.getSibling('consequent')
- consequentSibling.traverse({
- CallExpression (astPath) {
- if (astPath.get('callee').isIdentifier({ name: 'require' })) {
- const arg = astPath.get('arguments')[0]
- if (t.isStringLiteral(arg.node)) {
- excludeRequire.push(arg.node.value)
- }
- }
- }
- })
- }
- }
- }
- })
- },
- Program: {
- exit (astPath) {
- astPath.traverse({
- ImportDeclaration (astPath) {
- const node = astPath.node
- const source = node.source
- const value = source.value
- if (REG_JSON.test(value)) {
- const realRequirePath = path.resolve(path.dirname(filePath), value)
- if (fs.existsSync(realRequirePath)) {
- const obj = JSON.parse(fs.readFileSync(realRequirePath).toString())
- const specifiers = node.specifiers
- let defaultSpecifier
- specifiers.forEach(item => {
- if (item.type === 'ImportDefaultSpecifier') {
- defaultSpecifier = item.local.name
- }
- })
- if (defaultSpecifier) {
- let objArr: t.NullLiteral | t.Expression = t.nullLiteral()
- if (Array.isArray(obj)) {
- objArr = t.arrayExpression(convertArrayToAstExpression(obj))
- } else {
- objArr = t.objectExpression(convertObjectToAstExpression(obj))
- }
- astPath.replaceWith(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(defaultSpecifier), objArr)]))
- }
- }
- return
- }
- analyzeImportUrl({
- requirePath: value,
- excludeRequire,
- source,
- filePath,
- files,
- isProduction,
- npmConfig,
- rootNpm,
- npmOutputDir,
- buildAdapter,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- },
- CallExpression (astPath) {
- const node = astPath.node
- const callee = node.callee as t.Identifier
- if (callee.name === 'require') {
- const args = node.arguments as Array
- const requirePath = args[0].value
- if (REG_JSON.test(requirePath)) {
- const realRequirePath = path.resolve(path.dirname(filePath), requirePath)
- if (fs.existsSync(realRequirePath)) {
- const obj = JSON.parse(fs.readFileSync(realRequirePath).toString())
- let objArr: t.NullLiteral | t.Expression | t.ObjectProperty[] = t.nullLiteral()
- if (Array.isArray(obj)) {
- objArr = t.arrayExpression(convertArrayToAstExpression(obj))
- } else {
- objArr = convertObjectToAstExpression(obj)
- }
- astPath.replaceWith(t.objectExpression(objArr as any))
- }
- return
- }
- analyzeImportUrl({
- requirePath,
- excludeRequire,
- source: args[0],
- filePath,
- files,
- isProduction,
- npmConfig,
- rootNpm,
- npmOutputDir,
- buildAdapter,
- compileConfig,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- }
- }
- })
- }
- }
- })
-
- return generate(ast).code
-}
-
-async function recursiveRequire ({
- filePath,
- files,
- isProduction,
- npmConfig,
- buildAdapter,
- npmOutputDir,
- rootNpm,
- compileConfig = {},
- env,
- uglify,
- babelConfig,
- quickappManifest
-}: {
- filePath: string,
- files: string[],
- isProduction: boolean,
- npmConfig: INpmConfig,
- buildAdapter: BUILD_TYPES,
- rootNpm: string,
- npmOutputDir: string,
- compileConfig: {[k: string]: any},
- env: object,
- uglify: TogglableOptions,
- babelConfig: object,
- quickappManifest?: ITaroManifestConfig
-}) {
- let fileContent = fs.readFileSync(filePath).toString()
- let outputNpmPath = filePath.replace(rootNpm, npmOutputDir).replace(/node_modules/g, npmConfig.name)
- if (buildAdapter === BUILD_TYPES.ALIPAY) {
- outputNpmPath = generateAlipayPath(outputNpmPath)
- }
- if (REG_STYLE.test(path.basename(filePath))) {
- return
- }
- if (REG_FONT.test(filePath) || REG_IMAGE.test(filePath) || REG_MEDIA.test(filePath)) {
- fs.ensureDirSync(path.dirname(outputNpmPath))
- fs.writeFileSync(outputNpmPath, fileContent)
- let modifyOutput = outputNpmPath.replace(path.dirname(rootNpm) + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- printLog(processTypeEnum.COPY, 'NPM文件', modifyOutput)
- return
- }
- fileContent = npmCodeHack(filePath, fileContent, buildAdapter)
-
- const npmExclude = (compileConfig.exclude || []).filter(item => /(?:\/|^)node_modules(\/|$)/.test(item))
- let isNpmInCompileExclude = false
- for (const item of npmExclude) {
- isNpmInCompileExclude = filePath.indexOf(item) !== -1
- if (isNpmInCompileExclude) {
- break
- }
- }
- if (!isNpmInCompileExclude) {
- try {
- const constantsReplaceList = Object.assign({
- 'process.env.TARO_ENV': buildAdapter
- }, generateEnvList(env || {}))
- const transformResult = wxTransformer({
- code: fileContent,
- sourcePath: filePath,
- outputPath: outputNpmPath,
- isNormal: true,
- adapter: buildAdapter,
- isTyped: REG_TYPESCRIPT.test(filePath),
- env: constantsReplaceList
- })
- const ast = babel.transformFromAst(transformResult.ast, '', {
- plugins: [
- [require('babel-plugin-transform-define').default, constantsReplaceList]
- ]
- }).ast as t.File
- fileContent = parseAst({
- ast,
- filePath,
- files,
- isProduction,
- npmConfig,
- rootNpm,
- buildAdapter,
- compileConfig,
- npmOutputDir,
- env,
- uglify,
- babelConfig,
- quickappManifest
- })
- } catch (err) {
- console.log(err)
- }
- }
-
- if (!copyedFiles[outputNpmPath]) {
- const compileInclude = compileConfig.include
- if (compileInclude && compileInclude.length) {
- const filePathArr = filePath.split(path.sep)
- const nodeModulesIndex = filePathArr.indexOf('node_modules')
- if (nodeModulesIndex >= 0) {
- const npmFilePath = filePathArr.slice(nodeModulesIndex + 1).join('/')
- let needCompile = false
- compileInclude.forEach(item => {
- if (npmFilePath.indexOf(item) >= 0) {
- needCompile = true
- }
- })
- if (needCompile) {
- const compileScriptRes = await npmProcess.callPlugin('babel', fileContent, filePath, babelConfig, rootNpm)
- fileContent = compileScriptRes.code
- }
- }
- }
- if (isProduction && buildAdapter !== BUILD_TYPES.QUICKAPP) {
- const uglifyPluginConfig = uglify || { enable: true }
- if (uglifyPluginConfig.enable) {
- const uglifyConfig = Object.assign(defaultUglifyConfig, uglifyPluginConfig.config || {})
- const uglifyResult = npmProcess.callPluginSync('uglifyjs', fileContent, outputNpmPath, uglifyConfig, rootNpm)
- if (uglifyResult.error) {
- printLog(processTypeEnum.ERROR, '压缩错误', `文件${filePath}`)
- console.log(uglifyResult.error)
- } else {
- fileContent = uglifyResult.code
- }
- }
- }
- outputNpmPath = outputNpmPath.replace(path.extname(outputNpmPath), '.js')
- fs.ensureDirSync(path.dirname(outputNpmPath))
- fs.writeFileSync(outputNpmPath, fileContent)
- let modifyOutput = outputNpmPath.replace(path.dirname(rootNpm) + path.sep, '')
- modifyOutput = modifyOutput.split(path.sep).join('/')
- printLog(processTypeEnum.COPY, 'NPM文件', modifyOutput)
- copyedFiles[outputNpmPath] = true
- }
-}
-
-export function npmCodeHack (filePath: string, content: string, buildAdapter: BUILD_TYPES): string {
- const basename = path.basename(filePath)
- switch (basename) {
- case 'lodash.js':
- case '_global.js':
- case 'lodash.min.js':
- if (buildAdapter === BUILD_TYPES.ALIPAY || buildAdapter === BUILD_TYPES.SWAN || buildAdapter === BUILD_TYPES.JD) {
- content = content.replace(/Function\(['"]return this['"]\)\(\)/, '{}')
- } else {
- content = content.replace(/Function\(['"]return this['"]\)\(\)/, 'this')
- }
- break
- case 'mobx.js':
- // 解决支付宝小程序全局window或global不存在的问题
- content = content.replace(
- /typeof window\s{0,}!==\s{0,}['"]undefined['"]\s{0,}\?\s{0,}window\s{0,}:\s{0,}global/,
- 'typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}'
- )
- break
- case '_html.js':
- content = 'module.exports = false;'
- break
- case '_microtask.js':
- content = content.replace('if(Observer)', 'if(false && Observer)')
- // IOS 1.10.2 Promise BUG
- content = content.replace('Promise && Promise.resolve', 'false && Promise && Promise.resolve')
- break
- case '_freeGlobal.js':
- content = content.replace('module.exports = freeGlobal;', 'module.exports = freeGlobal || this || global || {};')
- break
- }
- if (buildAdapter === BUILD_TYPES.ALIPAY && content.replace(/\s\r\n/g, '').length <= 0) {
- content = '// Empty file'
- }
- return content
-}
-
-export function getResolvedCache (): IResolvedCache {
- return resolvedCache
-}
diff --git a/packages/taro-cli/src/util/types.ts b/packages/taro-cli/src/util/types.ts
index 2150a62092f0..e2b64b2d3b13 100644
--- a/packages/taro-cli/src/util/types.ts
+++ b/packages/taro-cli/src/util/types.ts
@@ -1,9 +1,4 @@
-import * as webpack from 'webpack'
-import * as webpackDevServer from 'webpack-dev-server'
-import * as t from 'babel-types'
-
-import { BUILD_TYPES, IMINI_APP_FILE_TYPE } from './constants'
-import { IBabelOptions } from '../config/babel'
+import { BUILD_TYPES } from './constants'
export interface IInstallOptions {
dev: boolean,
@@ -44,12 +39,13 @@ export interface IPrettierConfig {
endOfLine?: 'auto' | 'lf' | 'crlf' | 'cr'
}
-export interface IBuildConfig {
+export interface IBuildOptions {
type?: BUILD_TYPES,
watch?: boolean,
platform?: string,
port?: number,
release?: boolean,
+ envHasBeenSet?: boolean,
page?: string,
component?: string,
uiIndex?: string
@@ -68,301 +64,3 @@ export interface IMiniAppBuildConfig {
export interface IOption {
[key: string]: any
}
-
-export interface ICopyOptions {
- patterns: {
- from: string,
- to: string,
- ignore?: string[],
- watch?: boolean
- }[],
- options: {
- ignore?: string[]
- }
-}
-
-export interface ICopyArgOptions {
- filter?: (src: string) => boolean
-}
-
-export interface IWxTransformResult {
- code: string,
- ast: t.File,
- template: string,
- compressedTemplate: string,
- components: {
- name: string,
- path: string,
- type: string
- }[],
- componentProperies: string[]
-}
-
-export namespace PostcssOption {
- export type cssModules = TogglableOptions<{
- namingPattern: 'global' | string
- generateScopedName: string
- }>
- export type url = TogglableOptions<{
- limit: number,
- basePath?: string | string[]
- }>
-}
-
-export interface IPostcssOption {
- autoprefixer?: TogglableOptions,
- pxtransform?: TogglableOptions,
- cssModules?: PostcssOption.cssModules,
- url?: PostcssOption.url,
- [key: string]: any
-}
-
-export interface ICompileOption {
- exclude?: string[],
- include?: string[]
-}
-
-export interface IMiniAppConfig {
- appOutput?: boolean,
- npm?: INpmConfig,
- module?: {
- postcss?: IPostcssOption
- },
- compile?: ICompileOption,
- customFilesTypes: IMINI_APP_FILE_TYPE,
- publicPath?: string,
- staticDirectory?: string
-}
-
-export type TogglableOptions = {
- enable?: boolean,
- config?: T
-}
-
-export interface IH5RouterConfig {
- mode?: 'hash' | 'browser' | 'multi',
- customRoutes?: IOption,
- basename?: string,
- lazyload?: boolean | ((pagename: string) => boolean)
- renamePagename?: (pagename: string) => string
-}
-
-export interface IH5Config {
- webpack: ((webpackConfig: webpack.Configuration, webpack) => webpack.Configuration) | webpack.Configuration,
- webpackChain: (chain: any, webpack: any) => void,
- dllWebpackChain: (chain: any, webpack: any) => void,
-
- alias: IOption,
- entry: webpack.Entry,
- output: webpack.Output,
- router?: IH5RouterConfig,
- devServer: webpackDevServer.Configuration,
- enableSourceMap: boolean,
- enableExtract: boolean,
- enableDll: boolean,
- transformOnly: boolean,
-
- cssLoaderOption: IOption,
- styleLoaderOption: IOption,
- sassLoaderOption: IOption,
- lessLoaderOption: IOption,
- stylusLoaderOption: IOption,
- mediaUrlLoaderOption: IOption,
- fontUrlLoaderOption: IOption,
- imageUrlLoaderOption: IOption,
- miniCssExtractPluginOption: IOption,
- dllDirectory: string,
- dllFilename: string,
- dllEntry: {
- [key: string]: string[]
- },
- esnextModules: string[],
-
- module?: {
- postcss?: IPostcssOption
- }
-}
-
-type FeatureItem = {
- name: string
-}
-
-const enum LogLevel {
- OFF = 'off',
- ERROR = 'error',
- WARN = 'warn',
- INFO = 'info',
- LOG = 'log',
- DEBUG = 'debug'
-}
-
-export type SystemConfig = {
- /**
- * 打印日志等级,分为 off,error,warn,info,log,debug
- */
- logLevel?: LogLevel,
- /**
- * 页面设计基准宽度,根据实际设备宽度来缩放元素大小
- */
- designWidth?: number,
- /**
- * 全局数据对象,属性名不能以$或_开头,在页面中可通过 this 进行访问;如果全局数据属性与页面的数据属性重名,则页面初始化时,全局数据会覆盖页面中对应的属性值
- */
- data?: IOption
-}
-
-type RouterConfig = {
- /**
- * 首页名称
- */
- entry: string,
- /**
- * 页面配置列表,key 值为页面名称(对应页面目录名,例如 Hello 对应'Hello'目录),value 为页面详细配置 page
- */
- pages: RouterPage[]
-}
-type RouterPage = {
- /**
- * 页面对应的组件名,与 ux 文件名保持一致,例如'hello' 对应 'hello.ux'
- */
- component: string,
- /**
- * 页面路径,例如“/user”,不填则默认为/<页面名称>。
- * path 必须唯一,不能和其他 page 的 path 相同。
- * 下面 page 的 path 因为缺失,会被设置为“/Index”:
- * "Index": {"component": "index"}
- */
- path?: string,
- /**
- * 声明页面可以处理某种请求
- */
- filter: {
- [key: string]: {
- uri: string
- }
- }
-}
-
-interface IDefaultDisplayConfig {
- /**
- * 窗口背景颜色
- */
- backgroundColor?: string,
- /**
- * 是否是全屏模式,默认不会同时作用于 titleBar,titleBar 需要继续通过 titleBar 控制
- */
- fullScreen?: boolean,
- /**
- * 是否显示 titleBar
- */
- titleBar?: boolean,
- /**
- * 标题栏背景色
- */
- titleBarBackgroundColor?: string,
- /**
- * 标题栏文字颜色
- */
- titleBarTextColor?: string,
- /**
- * 标题栏文字(也可通过页面跳转传递参数(titleBarText)设置)
- */
- titleBarText?: string,
- /**
- * 是否显示标题栏右上角菜单按钮,点击菜单按钮调用页面生命周期 onMenuPress 方法,如果该方法未实现则显示系统默认菜单
- */
- menu?: boolean,
- /**
- * 软键盘弹出时为保证输入框可见,页面的调整方式。 adjustPan:上移页面; adjustResize:压缩页面显示区域,当页面全屏时,此设置不生效
- */
- windowSoftInputMode?: 'adjustPan' | 'adjustResize'
-}
-
-interface IDisplayConfig extends IDefaultDisplayConfig {
- /**
- * 各个页面的显示样式,key 为页面名(与路由中的页面名保持一致),value 为窗口显示样式,页面样式覆盖 default 样式
- */
- pages?: {
- [key: string]: IDefaultDisplayConfig
- }
-}
-
-export interface ITaroManifestConfig {
- npm?: INpmConfig,
- /**
- * 应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
- */
- package: string,
- /**
- * 应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
- */
- name: string,
- /**
- * 应用图标,提供 192x192 大小的即可
- */
- icon: string,
- /**
- * 应用版本名称,如:"1.0"
- */
- versionName?: string,
- /**
- * 应用版本号,从1自增,推荐每次重新上传包时versionCode+1
- */
- versionCode: number,
- /**
- * 支持的最小平台版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
- */
- minPlatformVersion?: string,
- /**
- * 接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
- */
- features?: FeatureItem[],
- /**
- *
- */
- logLevel?: LogLevel
-}
-
-export interface IManifestConfig extends ITaroManifestConfig {
- /**
- * 系统配置信息
- */
- config: SystemConfig,
- /**
- * 路由信息
- */
- router: RouterConfig,
- /**
- * UI 显示相关配置
- */
- display?: IDisplayConfig
-}
-
-export interface IDeviceRatio {
- [key: string]: number
-}
-
-export interface IProjectConfig {
- projectName?: string,
- date?: string,
- designWidth?: number,
- watcher?: [],
- deviceRatio?: IDeviceRatio,
- sourceRoot?: string,
- outputRoot?: string,
- plugins?: {
- babel?: IBabelOptions,
- csso?: TogglableOptions,
- uglify?: TogglableOptions
- },
- ui?: {
- extraWatchFiles?: any[]
- },
- env?: IOption,
- alias?: IOption,
- defineConstants?: IOption,
- copy?: ICopyOptions,
- weapp?: IMiniAppConfig,
- h5?: IH5Config,
- quickApp?: ITaroManifestConfig
-}
diff --git a/packages/taro-cli/templates/default/_editorconfig b/packages/taro-cli/templates/default/_editorconfig
deleted file mode 100644
index 5760be583696..000000000000
--- a/packages/taro-cli/templates/default/_editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-# http://editorconfig.org
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.md]
-trim_trailing_whitespace = false
diff --git a/packages/taro-cli/templates/default/_eslintrc b/packages/taro-cli/templates/default/_eslintrc
deleted file mode 100644
index dc480133fb5b..000000000000
--- a/packages/taro-cli/templates/default/_eslintrc
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-<%if (!locals.typescript) {-%>
- "extends": ["taro"],
- "rules": {
- "no-unused-vars": ["error", { "varsIgnorePattern": "Taro" }],
- "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".tsx"] }]
- },
- "parser": "babel-eslint"
- <%} else {-%>
- "extends": ["taro", "plugin:@typescript-eslint/recommended"],
- "parser": "@typescript-eslint/parser",
- "rules": {
- "no-unused-vars": ["error", { "varsIgnorePattern": "Taro" }],
- "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".tsx"] }],
- "@typescript-eslint/explicit-function-return-type": 0,
- "@typescript-eslint/no-empty-function": ["warn"]
- },
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- },
- "useJSXTextNode": true,
- "project": "./tsconfig.json"
- }
-<%}-%>
-}
diff --git a/packages/taro-cli/templates/default/_gitignore b/packages/taro-cli/templates/default/_gitignore
deleted file mode 100644
index 2cea3efd8c32..000000000000
--- a/packages/taro-cli/templates/default/_gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-dist/
-deploy_versions/
-.temp/
-.rn_temp/
-node_modules/
-.DS_Store
diff --git a/packages/taro-cli/templates/default/_npmrc b/packages/taro-cli/templates/default/_npmrc
deleted file mode 100644
index 734aab2896a0..000000000000
--- a/packages/taro-cli/templates/default/_npmrc
+++ /dev/null
@@ -1,10 +0,0 @@
-registry=https://registry.npm.taobao.org
-disturl=https://npm.taobao.org/dist
-sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
-phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
-electron_mirror=https://npm.taobao.org/mirrors/electron/
-chromedriver_cdnurl=https://npm.taobao.org/mirrors/chromedriver
-operadriver_cdnurl=https://npm.taobao.org/mirrors/operadriver
-selenium_cdnurl=https://npm.taobao.org/mirrors/selenium
-node_inspector_cdnurl=https://npm.taobao.org/mirrors/node-inspector
-fsevents_binary_host_mirror=http://npm.taobao.org/mirrors/fsevents/
diff --git a/packages/taro-cli/templates/default/config/dev.js b/packages/taro-cli/templates/default/config/dev.js
index 03776341d4a4..75ad98aeeb6f 100644
--- a/packages/taro-cli/templates/default/config/dev.js
+++ b/packages/taro-cli/templates/default/config/dev.js
@@ -2,8 +2,7 @@ module.exports = {
env: {
NODE_ENV: '"development"'
},
- defineConstants: {
- },
- weapp: {},
+ defineConstants: {},
+ mini: {},
h5: {}
}
diff --git a/packages/taro-cli/templates/default/config/index.js b/packages/taro-cli/templates/default/config/index.js
index 8668045052ac..77f7e92c5665 100644
--- a/packages/taro-cli/templates/default/config/index.js
+++ b/packages/taro-cli/templates/default/config/index.js
@@ -9,54 +9,39 @@ const config = {
},
sourceRoot: 'src',
outputRoot: 'dist',
- plugins: {
- babel: {
- sourceMap: true,
- presets: [
- ['env', {
- modules: false
- }]
- ],
- plugins: [
- 'transform-decorators-legacy',
- 'transform-class-properties',
- 'transform-object-rest-spread'
- ]
- }
+ babel: {
+ sourceMap: true,
+ presets: [
+ ['env', {
+ modules: false
+ }]
+ ],
+ plugins: [
+ 'transform-decorators-legacy',
+ 'transform-class-properties',
+ 'transform-object-rest-spread'
+ ]
},
+ plugins: [],
defineConstants: {
},
- weapp: {
- module: {
- postcss: {
- autoprefixer: {
- enable: true,
- config: {
- browsers: [
- 'last 3 versions',
- 'Android >= 4.1',
- 'ios >= 8'
- ]
- }
- },
- pxtransform: {
- enable: true,
- config: {
-
- }
- },
- url: {
- enable: true,
- config: {
- limit: 10240 // 设定转换尺寸上限
- }
- },
- cssModules: {
- enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
- config: {
- namingPattern: 'module', // 转换模式,取值为 global/module
- generateScopedName: '[name]__[local]___[hash:base64:5]'
- }
+ mini: {
+ postcss: {
+ pxtransform: {
+ enable: true,
+ config: {}
+ },
+ url: {
+ enable: true,
+ config: {
+ limit: 10240 // 设定转换尺寸上限
+ }
+ },
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module', // 转换模式,取值为 global/module
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
}
@@ -64,24 +49,22 @@ const config = {
h5: {
publicPath: '/',
staticDirectory: 'static',
- module: {
- postcss: {
- autoprefixer: {
- enable: true,
- config: {
- browsers: [
- 'last 3 versions',
- 'Android >= 4.1',
- 'ios >= 8'
- ]
- }
- },
- cssModules: {
- enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
- config: {
- namingPattern: 'module', // 转换模式,取值为 global/module
- generateScopedName: '[name]__[local]___[hash:base64:5]'
- }
+ postcss: {
+ autoprefixer: {
+ enable: true,
+ config: {
+ browsers: [
+ 'last 3 versions',
+ 'Android >= 4.1',
+ 'ios >= 8'
+ ]
+ }
+ },
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module', // 转换模式,取值为 global/module
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}
}
diff --git a/packages/taro-cli/templates/default/config/prod.js b/packages/taro-cli/templates/default/config/prod.js
index c6a1531337f2..fbd825bd81ea 100644
--- a/packages/taro-cli/templates/default/config/prod.js
+++ b/packages/taro-cli/templates/default/config/prod.js
@@ -2,9 +2,8 @@ module.exports = {
env: {
NODE_ENV: '"production"'
},
- defineConstants: {
- },
- weapp: {},
+ defineConstants: {},
+ mini: {},
h5: {
/**
* 如果h5端编译后体积过大,可以使用webpack-bundle-analyzer插件对打包体积进行分析。
diff --git a/packages/taro-cli/templates/default/package.json b/packages/taro-cli/templates/default/package.json
index 77854d11ecda..aecd09618a7e 100644
--- a/packages/taro-cli/templates/default/package.json
+++ b/packages/taro-cli/templates/default/package.json
@@ -47,10 +47,7 @@
"devDependencies": {
"@types/react": "^16.4.6",
"@types/webpack-env": "^1.13.6",
- "@tarojs/plugin-babel": "<%= version %>",
- "@tarojs/plugin-csso": "<%= version %>",<% if (css !== 'none') {%>
- "@tarojs/plugin-<%= css %>": "<%= version %>",<%}%>
- "@tarojs/plugin-uglifyjs": "<%= version %>",
+ "@tarojs/mini-runner": "<%= version %>",
"@tarojs/webpack-runner": "<%= version %>",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
diff --git a/packages/taro-cli/yarn.lock b/packages/taro-cli/yarn.lock
index c76174b9edb2..e136ddc98dff 100644
--- a/packages/taro-cli/yarn.lock
+++ b/packages/taro-cli/yarn.lock
@@ -16,19 +16,19 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.0.0-beta":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff"
- integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==
+"@babel/core@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9"
+ integrity sha1-7hVdLhIwC8wM/2qK1G8q9QY4A+k=
dependencies:
"@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.4"
- "@babel/helpers" "^7.6.2"
- "@babel/parser" "^7.6.4"
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.3"
- "@babel/types" "^7.6.3"
- convert-source-map "^1.1.0"
+ "@babel/generator" "^7.7.7"
+ "@babel/helpers" "^7.7.4"
+ "@babel/parser" "^7.7.7"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ convert-source-map "^1.7.0"
debug "^4.1.0"
json5 "^2.1.0"
lodash "^4.17.13"
@@ -47,76 +47,84 @@
source-map "^0.5.0"
trim-right "^1.0.1"
-"@babel/generator@^7.0.0-beta", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
- integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
+"@babel/generator@^7.0.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45"
+ integrity sha1-hZrHM8RMdBSOGnKYCmTshLhfT0U=
dependencies:
- "@babel/types" "^7.6.3"
+ "@babel/types" "^7.7.4"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"
-"@babel/helper-annotate-as-pure@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
- integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
+"@babel/helper-annotate-as-pure@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.7.4.tgz?cache=0&sync_timestamp=1574466005922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce"
+ integrity sha1-uz+vHnS3S9VH6Gfkj1UfprCYts4=
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.7.4"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
- integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz?cache=0&sync_timestamp=1574465920635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f"
+ integrity sha1-X3PysoWA4iS1ub0DFGpAFdYhf18=
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-explode-assignable-expression" "^7.7.4"
+ "@babel/types" "^7.7.4"
-"@babel/helper-builder-react-jsx@^7.3.0":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4"
- integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==
+"@babel/helper-builder-react-jsx@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-builder-react-jsx/download/@babel/helper-builder-react-jsx-7.7.4.tgz#da188d247508b65375b2c30cf59de187be6b0c66"
+ integrity sha1-2hiNJHUItlN1ssMM9Z3hh75rDGY=
dependencies:
- "@babel/types" "^7.3.0"
+ "@babel/types" "^7.7.4"
esutils "^2.0.0"
-"@babel/helper-call-delegate@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
- integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
+"@babel/helper-call-delegate@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.7.4.tgz?cache=0&sync_timestamp=1574465922326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-call-delegate%2Fdownload%2F%40babel%2Fhelper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801"
+ integrity sha1-YhuD5ZZyK1DABm+dw30yMuRhuAE=
dependencies:
- "@babel/helper-hoist-variables" "^7.4.4"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/helper-hoist-variables" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
-"@babel/helper-create-class-features-plugin@^7.5.5":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f"
- integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==
+"@babel/helper-create-class-features-plugin@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.7.4.tgz#fce60939fd50618610942320a8d951b3b639da2d"
+ integrity sha1-/OYJOf1QYYYQlCMgqNlRs7Y52i0=
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-member-expression-to-functions" "^7.5.5"
- "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-member-expression-to-functions" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.5.5"
- "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/helper-replace-supers" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
-"@babel/helper-define-map@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
- integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==
+"@babel/helper-create-regexp-features-plugin@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59"
+ integrity sha1-bVdiNZ/TT02hUA5M/5lVtSmar1k=
+ dependencies:
+ "@babel/helper-regex" "^7.4.4"
+ regexpu-core "^4.6.0"
+
+"@babel/helper-define-map@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176"
+ integrity sha1-KEG/kuuL2ckGhRVG/mudReFi8XY=
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/types" "^7.5.5"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/types" "^7.7.4"
lodash "^4.17.13"
-"@babel/helper-explode-assignable-expression@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
- integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
+"@babel/helper-explode-assignable-expression@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84"
+ integrity sha1-+nAIeOAI2F3FG6Q+n7g1zd/gXIQ=
dependencies:
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
"@babel/helper-function-name@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -127,14 +135,14 @@
"@babel/template" "7.0.0-beta.44"
"@babel/types" "7.0.0-beta.44"
-"@babel/helper-function-name@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
- integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/helper-function-name@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.7.4.tgz?cache=0&sync_timestamp=1574465630791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e"
+ integrity sha1-q24EHnE11DbY8KPsoV3ltno0Gi4=
dependencies:
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-get-function-arity" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
"@babel/helper-get-function-arity@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -143,26 +151,26 @@
dependencies:
"@babel/types" "7.0.0-beta.44"
-"@babel/helper-get-function-arity@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
- integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+"@babel/helper-get-function-arity@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0"
+ integrity sha1-y0Y0jS+ICOYy8KsEgXITDmNgBfA=
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.7.4"
-"@babel/helper-hoist-variables@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
- integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
+"@babel/helper-hoist-variables@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.7.4.tgz?cache=0&sync_timestamp=1574466005056&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12"
+ integrity sha1-YSOE49gj/fqvn84xVQ/l1NsPPRI=
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.7.4"
-"@babel/helper-member-expression-to-functions@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
- integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
+"@babel/helper-member-expression-to-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74"
+ integrity sha1-NWQ44lad9zIagyZkTUt5DSEiy3Q=
dependencies:
- "@babel/types" "^7.5.5"
+ "@babel/types" "^7.7.4"
"@babel/helper-module-imports@^7.0.0":
version "7.0.0"
@@ -171,58 +179,72 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-module-transforms@^7.4.4":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
- integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
+"@babel/helper-module-imports@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91"
+ integrity sha1-5aklKfiIi/MZpjdqv70c68SRrZE=
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/template" "^7.4.4"
- "@babel/types" "^7.5.5"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-module-transforms@^7.7.5":
+ version "7.7.5"
+ resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835"
+ integrity sha1-0ETaf/2R7JZ9slzWdI9wS2skSDU=
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-simple-access" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
lodash "^4.17.13"
-"@babel/helper-optimise-call-expression@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
- integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
+"@babel/helper-optimise-call-expression@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.7.4.tgz?cache=0&sync_timestamp=1574465630779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2"
+ integrity sha1-A0rzE3DSmVJCqk30AsO3eUstzfI=
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.7.4"
"@babel/helper-plugin-utils@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
-"@babel/helper-remap-async-to-generator@^7.0.0-beta":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
- integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
+"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
+ version "7.5.5"
+ resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
+ integrity sha1-CqaCT3EAouDonBUnwjk2wVLKs1E=
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-wrap-function" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
+ lodash "^4.17.13"
-"@babel/helper-replace-supers@^7.5.5":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
- integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
+"@babel/helper-remap-async-to-generator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234"
+ integrity sha1-xowkBzUNmvDgYe1nJq+0//FtAjQ=
dependencies:
- "@babel/helper-member-expression-to-functions" "^7.5.5"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.5.5"
- "@babel/types" "^7.5.5"
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-wrap-function" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
-"@babel/helper-simple-access@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
- integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
+"@babel/helper-replace-supers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.7.4.tgz?cache=0&sync_timestamp=1574465645820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2"
+ integrity sha1-PIgaamp1cSdactguYQcSbsnizdI=
dependencies:
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-member-expression-to-functions" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-simple-access@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294"
+ integrity sha1-oWmgrbG19BjPwZ8iWGsuv1ipopQ=
+ dependencies:
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
"@babel/helper-split-export-declaration@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -231,31 +253,31 @@
dependencies:
"@babel/types" "7.0.0-beta.44"
-"@babel/helper-split-export-declaration@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+"@babel/helper-split-export-declaration@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8"
+ integrity sha1-Vykq9gRDxKNiLPdAQN3Cjmgzb9g=
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.7.4"
-"@babel/helper-wrap-function@^7.1.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
- integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
+"@babel/helper-wrap-function@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace"
+ integrity sha1-N6t/7VFQ4i2dcmboMAcsDN2Lqs4=
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.2.0"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
-"@babel/helpers@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
- integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==
+"@babel/helpers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302"
+ integrity sha1-YsIVuebHEtrcFamg3Kt2ySqUAwI=
dependencies:
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.2"
- "@babel/types" "^7.6.0"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
"@babel/highlight@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -275,232 +297,386 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81"
- integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==
+"@babel/parser@^7.0.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937"
+ integrity sha1-G4hllUGc+S2BExbVtxWlP/OLSTc=
-"@babel/plugin-external-helpers@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.2.0.tgz#7f4cb7dee651cd380d2034847d914288467a6be4"
- integrity sha512-QFmtcCShFkyAsNtdCM3lJPmRe1iB+vPZymlB4LnDIKEBj2yKQLQKtoxXxJ8ePT5fwMl4QGg303p4mB0UsSI2/g==
+"@babel/plugin-external-helpers@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-external-helpers/download/@babel/plugin-external-helpers-7.7.4.tgz#8aa7aa402f0e2ecb924611cbf30942a497dfd17e"
+ integrity sha1-iqeqQC8OLsuSRhHL8wlCpJff0X4=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-proposal-class-properties@^7.0.0-beta":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
- integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
+"@babel/plugin-proposal-class-properties@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.7.4.tgz#2f964f0cb18b948450362742e33e15211e77c2ba"
+ integrity sha1-L5ZPDLGLlIRQNidC4z4VIR53wro=
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.5.5"
+ "@babel/helper-create-class-features-plugin" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-proposal-object-rest-spread@^7.0.0-beta":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
- integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==
+"@babel/plugin-proposal-export-default-from@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.7.4.tgz#890de3c0c475374638292df31f6582160b54d639"
+ integrity sha1-iQ3jwMR1N0Y4KS3zH2WCFgtU1jk=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
+ "@babel/plugin-syntax-export-default-from" "^7.7.4"
-"@babel/plugin-syntax-dynamic-import@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
- integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.7.4.tgz?cache=0&sync_timestamp=1574466507005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.7.4.tgz#7db302c83bc30caa89e38fee935635ef6bd11c28"
+ integrity sha1-fbMCyDvDDKqJ44/uk1Y172vRHCg=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.7.4"
-"@babel/plugin-syntax-flow@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c"
- integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==
+"@babel/plugin-proposal-object-rest-spread@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.7.7.tgz?cache=0&sync_timestamp=1576716808008&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370"
+ integrity sha1-nycHUASrmb4IxcG9ZTophYE8s3A=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.7.4"
-"@babel/plugin-syntax-jsx@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
- integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
+"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.7.4.tgz?cache=0&sync_timestamp=1574466000999&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379"
+ integrity sha1-7CHorrCexnEbwKOcpJUgq+4d43k=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.7.4"
-"@babel/plugin-syntax-object-rest-spread@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
+"@babel/plugin-proposal-optional-chaining@^7.0.0":
+ version "7.7.5"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.7.5.tgz?cache=0&sync_timestamp=1575638465678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.7.5.tgz#f0835f044cef85b31071a924010a2a390add11d4"
+ integrity sha1-8INfBEzvhbMQcakkAQoqOQrdEdQ=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.7.4"
-"@babel/plugin-transform-arrow-functions@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
- integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
+"@babel/plugin-syntax-class-properties@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.7.4.tgz#6048c129ea908a432a1ff85f1dc794dc62ddaa5e"
+ integrity sha1-YEjBKeqQikMqH/hfHceU3GLdql4=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.0.0-beta":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a"
- integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==
+"@babel/plugin-syntax-dynamic-import@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec"
+ integrity sha1-Kco7RBWr/kpew4HpA4Yq0aVMOuw=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-export-default-from/download/@babel/plugin-syntax-export-default-from-7.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-export-default-from%2Fdownload%2F%40babel%2Fplugin-syntax-export-default-from-7.7.4.tgz#897f05808298060b52873fa804ff853540790ea1"
+ integrity sha1-iX8FgIKYBgtShz+oBP+FNUB5DqE=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.7.4.tgz#6d91b59e1a0e4c17f36af2e10dd64ef220919d7b"
+ integrity sha1-bZG1nhoOTBfzavLhDdZO8iCRnXs=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.7.4.tgz?cache=0&sync_timestamp=1574466421110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec"
+ integrity sha1-2rK1ajb7bDwiKh+8cfe/l/Mnqew=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-syntax-nullish-coalescing-operator-7.7.4.tgz#e53b751d0c3061b1ba3089242524b65a7a9da12b"
+ integrity sha1-5Tt1HQwwYbG6MIkkJSS2WnqdoSs=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46"
+ integrity sha1-R88iDRnW0NexVDBHAfRo/BzG/0Y=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6"
+ integrity sha1-o+OPWfS2IzhntKktyw7gWywzSqY=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.7.4.tgz#c91fdde6de85d2eb8906daea7b21944c3610c901"
+ integrity sha1-yR/d5t6F0uuJBtrqeyGUTDYQyQE=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-typescript@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.7.4.tgz#5d037ffa10f3b25a16f32570ebbe7a8c2efa304b"
+ integrity sha1-XQN/+hDzsloW8yVw6756jC76MEs=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-arrow-functions@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.7.4.tgz?cache=0&sync_timestamp=1574465864396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12"
+ integrity sha1-djCb1Xit3YruOzedgJyAIwWpihI=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-async-to-generator@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.7.4.tgz?cache=0&sync_timestamp=1574465889738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba"
+ integrity sha1-aUy+rm1hOjTvApJxP6QvtFxEcLo=
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.7.4"
+
+"@babel/plugin-transform-block-scoped-functions@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b"
+ integrity sha1-0NnVwmnHjq6nYies4hS40B5Ng3s=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-block-scoping@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224"
+ integrity sha1-IAqtDc1ruANy+U2eYo6gYsWL8iQ=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.13"
-"@babel/plugin-transform-classes@^7.0.0-beta":
- version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
- integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
+"@babel/plugin-transform-classes@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec"
+ integrity sha1-ySwUvgoTmeFd9yZnBnqPUQyUAOw=
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.5.5"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-define-map" "^7.7.4"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.5.5"
- "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/helper-replace-supers" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
- integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
+"@babel/plugin-transform-computed-properties@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d"
+ integrity sha1-6FbBYo0yOP/hLWaOtCVZ95qBkQ0=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-destructuring@^7.0.0-beta":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
- integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
+"@babel/plugin-transform-destructuring@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267"
+ integrity sha1-K3E3KeUFShE1CXtqZ9obb+h4kmc=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-exponentiation-operator@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
- integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
+"@babel/plugin-transform-exponentiation-operator@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9"
+ integrity sha1-3TDAGR46G6GbzH44m9/dwHKdXbk=
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-flow-strip-types@^7.0.0-beta":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.6.3.tgz#8110f153e7360cfd5996eee68706cfad92d85256"
- integrity sha512-l0ETkyEofkqFJ9LS6HChNIKtVJw2ylKbhYMlJ5C6df+ldxxaLIyXY4yOdDQQspfFpV8/vDiaWoJlvflstlYNxg==
+"@babel/plugin-transform-flow-strip-types@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.7.4.tgz?cache=0&sync_timestamp=1574465996775&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-flow-strip-types%2Fdownload%2F%40babel%2Fplugin-transform-flow-strip-types-7.7.4.tgz#cc73f85944782df1d77d80977bc097920a8bf31a"
+ integrity sha1-zHP4WUR4LfHXfYCXe8CXkgqL8xo=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
+ "@babel/plugin-syntax-flow" "^7.7.4"
-"@babel/plugin-transform-for-of@^7.0.0-beta":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
- integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
+"@babel/plugin-transform-for-of@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc"
+ integrity sha1-JIgA46XlB7HxA9i0ypmOd8Y5Mrw=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-function-name@^7.0.0-beta":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
- integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
+"@babel/plugin-transform-function-name@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1"
+ integrity sha1-dabTMD1Q22OP+LU4XRJFHIZQJbE=
dependencies:
- "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-function-name" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-literals@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
- integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
+"@babel/plugin-transform-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e"
+ integrity sha1-J/6H0rUBeipaNNHEGmufamJiZD4=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-commonjs@^7.0.0-beta":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
- integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
+"@babel/plugin-transform-member-expression-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a"
+ integrity sha1-ruEn8vMzn8NM5eMFXX/796om8Zo=
dependencies:
- "@babel/helper-module-transforms" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
+
+"@babel/plugin-transform-modules-commonjs@^7.0.0":
+ version "7.7.5"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345"
+ integrity sha1-HSf16wvPdUPndJUOWy+nguY3s0U=
+ dependencies:
+ "@babel/helper-module-transforms" "^7.7.5"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-simple-access" "^7.7.4"
babel-plugin-dynamic-import-node "^2.3.0"
-"@babel/plugin-transform-object-assign@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.2.0.tgz#6fdeea42be17040f119e38e23ea0f49f31968bde"
- integrity sha512-nmE55cZBPFgUktbF2OuoZgPRadfxosLOpSgzEPYotKSls9J4pEPcembi8r78RU37Rph6UApCpNmsQA4QMWK9Ng==
+"@babel/plugin-transform-object-assign@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-assign/download/@babel/plugin-transform-object-assign-7.7.4.tgz#a31b70c434a00a078b2d4d10dbd59992fa70afca"
+ integrity sha1-oxtwxDSgCgeLLU0Q29WZkvpwr8o=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-parameters@^7.0.0-beta":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
- integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
+"@babel/plugin-transform-object-super@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262"
+ integrity sha1-SEiJN6LVhsAUhFG/Ua+dfdpWcmI=
dependencies:
- "@babel/helper-call-delegate" "^7.4.4"
- "@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.7.4"
-"@babel/plugin-transform-react-display-name@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
- integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
+"@babel/plugin-transform-parameters@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007"
+ integrity sha1-eohLJGAWTcXxlPZoMyc2WEx2AAc=
dependencies:
+ "@babel/helper-call-delegate" "^7.7.4"
+ "@babel/helper-get-function-arity" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-react-jsx-source@^7.0.0-beta":
- version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b"
- integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==
+"@babel/plugin-transform-property-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2"
+ integrity sha1-I4jWUF74myZhA/RQ+RZ+a9c/mMI=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-react-display-name@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-react-display-name/download/@babel/plugin-transform-react-display-name-7.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-react-display-name%2Fdownload%2F%40babel%2Fplugin-transform-react-display-name-7.7.4.tgz#9f2b80b14ebc97eef4a9b29b612c58ed9c0d10dd"
+ integrity sha1-nyuAsU68l+70qbKbYSxY7ZwNEN0=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
-"@babel/plugin-transform-react-jsx@^7.0.0-beta":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290"
- integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==
+"@babel/plugin-transform-react-jsx-source@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx-source/download/@babel/plugin-transform-react-jsx-source-7.7.4.tgz#8994b1bf6014b133f5a46d3b7d1ee5f5e3e72c10"
+ integrity sha1-iZSxv2AUsTP1pG07fR7l9ePnLBA=
dependencies:
- "@babel/helper-builder-react-jsx" "^7.3.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/plugin-syntax-jsx" "^7.7.4"
-"@babel/plugin-transform-regenerator@^7.0.0-beta":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
- integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
+"@babel/plugin-transform-react-jsx@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-react-jsx/download/@babel/plugin-transform-react-jsx-7.7.7.tgz#5cbaa7445b4a09f774029f3cc7bb448ff3122a5d"
+ integrity sha1-XLqnRFtKCfd0Ap88x7tEj/MSKl0=
+ dependencies:
+ "@babel/helper-builder-react-jsx" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.7.4"
+
+"@babel/plugin-transform-regenerator@^7.0.0":
+ version "7.7.5"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9"
+ integrity sha1-OodX7hongPOQ6J8kYGXs9Zwm/Ok=
dependencies:
regenerator-transform "^0.14.0"
-"@babel/plugin-transform-shorthand-properties@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
- integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
+"@babel/plugin-transform-runtime@^7.0.0":
+ version "7.7.6"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.7.6.tgz#4f2b548c88922fb98ec1c242afd4733ee3e12f61"
+ integrity sha1-TytUjIiSL7mOwcJCr9RzPuPhL2E=
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ resolve "^1.8.1"
+ semver "^5.5.1"
+
+"@babel/plugin-transform-shorthand-properties@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e"
+ integrity sha1-dKCpsvbWemhMb7/V8EWOt7qZiR4=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-spread@^7.0.0-beta":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd"
- integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==
+"@babel/plugin-transform-spread@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578"
+ integrity sha1-qmc7NW/mt+cNabbjOhf+9kEAhXg=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-template-literals@^7.0.0-beta":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
- integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
+"@babel/plugin-transform-sticky-regex@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c"
+ integrity sha1-/7aMBQkMMHMgdrEoXcFAG0BKEjw=
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-regex" "^7.0.0"
-"@babel/register@^7.0.0-beta":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45"
- integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ==
+"@babel/plugin-transform-template-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604"
+ integrity sha1-HrZBFzbdP+h9vSDMZmjlEhwX1gQ=
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-typescript@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.7.4.tgz#2974fd05f4e85c695acaf497f432342de9fc0636"
+ integrity sha1-KXT9BfToXGlayvSX9DI0Len8BjY=
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-typescript" "^7.7.4"
+
+"@babel/plugin-transform-unicode-regex@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.7.4.tgz?cache=0&sync_timestamp=1574465997106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae"
+ integrity sha1-o8D2WxF8TIHFtkhPKl57lTRrg64=
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/register@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.7.7.tgz#46910c4d1926b9c6096421b23d1f9e159c1dcee1"
+ integrity sha1-RpEMTRkmucYJZCGyPR+eFZwdzuE=
dependencies:
find-cache-dir "^2.0.0"
lodash "^4.17.13"
- mkdirp "^0.5.1"
+ make-dir "^2.1.0"
pirates "^4.0.0"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.16"
+
+"@babel/runtime@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf"
+ integrity sha1-GUdpyo1td5DsI2Ba+e4+QqCqec8=
+ dependencies:
+ regenerator-runtime "^0.13.2"
"@babel/runtime@^7.4.2":
version "7.6.3"
@@ -519,14 +695,14 @@
babylon "7.0.0-beta.44"
lodash "^4.2.0"
-"@babel/template@^7.0.0-beta", "@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
- integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
+"@babel/template@^7.0.0", "@babel/template@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.7.4.tgz?cache=0&sync_timestamp=1574465630781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b"
+ integrity sha1-Qop9nuz/4n3qwKmOI7+ONnXSp3s=
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.6.0"
- "@babel/types" "^7.6.0"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
"@babel/traverse@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -544,17 +720,17 @@
invariant "^2.2.0"
lodash "^4.2.0"
-"@babel/traverse@^7.0.0-beta", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
- integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.7.4.tgz?cache=0&sync_timestamp=1574465640801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558"
+ integrity sha1-nB58YPtnn+T8+qQlAIMzM8IFhVg=
dependencies:
"@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.3"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.6.3"
- "@babel/types" "^7.6.3"
+ "@babel/generator" "^7.7.4"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.13"
@@ -568,7 +744,7 @@
lodash "^4.2.0"
to-fast-properties "^2.0.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
+"@babel/types@^7.0.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
@@ -577,6 +753,15 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
+"@babel/types@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.7.4.tgz?cache=0&sync_timestamp=1574465636802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193"
+ integrity sha1-UWVw1TnkTd8wjAdWnCWP+U/ekZM=
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
@@ -590,22 +775,62 @@
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
+"@react-native-community/cli@^1.2.1":
+ version "1.12.0"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli/download/@react-native-community/cli-1.12.0.tgz?cache=0&sync_timestamp=1574167126291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40react-native-community%2Fcli%2Fdownload%2F%40react-native-community%2Fcli-1.12.0.tgz#f4cbc2204af63a87d5736d2fa6a018c1fd5efd44"
+ integrity sha1-9MvCIEr2OofVc20vpqAYwf1e/UQ=
+ dependencies:
+ chalk "^1.1.1"
+ commander "^2.19.0"
+ compression "^1.7.1"
+ connect "^3.6.5"
+ denodeify "^1.2.1"
+ envinfo "^5.7.0"
+ errorhandler "^1.5.0"
+ escape-string-regexp "^1.0.5"
+ execa "^1.0.0"
+ fs-extra "^7.0.1"
+ glob "^7.1.1"
+ graceful-fs "^4.1.3"
+ inquirer "^3.0.6"
+ lodash "^4.17.5"
+ metro "^0.51.0"
+ metro-config "^0.51.0"
+ metro-core "^0.51.0"
+ metro-memory-fs "^0.51.0"
+ metro-react-native-babel-transformer "^0.51.0"
+ mime "^1.3.4"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ morgan "^1.9.0"
+ node-fetch "^2.2.0"
+ node-notifier "^5.2.1"
+ opn "^3.0.2"
+ plist "^3.0.0"
+ semver "^5.0.3"
+ serve-static "^1.13.1"
+ shell-quote "1.6.1"
+ slash "^2.0.0"
+ ws "^1.1.0"
+ xcode "^2.0.0"
+ xmldoc "^0.4.0"
+
"@sindresorhus/is@^0.7.0":
version "0.7.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
-"@tarojs/taro@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-1.3.29.tgz#20b28f577f72866a1b0470625617231633c13eae"
- integrity sha512-BhgbaWZWrs0rvz+uu1mHKnqN4CPzlQd4J00Suk0vbIgP4RSDyJplL6sOj/ZjHeGYcEDOIYpO5dopVfuXJrmiBQ==
+"@tarojs/taro@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/taro/download/@tarojs/taro-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772870840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40tarojs%2Ftaro%2Fdownload%2F%40tarojs%2Ftaro-2.0.0-beta.13.tgz#6537b4263a27641fa51e8f98673f9ea48919af01"
+ integrity sha1-ZTe0JjonZB+lHo+YZz+epIkZrwE=
dependencies:
- "@tarojs/utils" "1.3.29"
+ "@tarojs/utils" "2.0.0-beta.13"
-"@tarojs/taroize@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/taroize/-/taroize-1.3.29.tgz#1ba0cae2afb4415b8c40f095e605b4480a12d012"
- integrity sha512-OLcjFFuxN+utSrTfbNX/V+g2rDV+Up+CxcWpz/DcdUpuG7NVqZgotHE1KEMBjmKJJ+DSUa8HBpI82mDo6CqQ1w==
+"@tarojs/taroize@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/taroize/download/@tarojs/taroize-2.0.0-beta.13.tgz#c50b596bb9c6907ed4aede917adc6eb208118dfd"
+ integrity sha1-xQtZa7nGkH7Urt6RetxusggRjf0=
dependencies:
"@babel/code-frame" "^7.0.0"
babel-core "^6.26.3"
@@ -619,10 +844,10 @@
lodash "^4.17.5"
typescript "^3.0.1"
-"@tarojs/transformer-wx@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/transformer-wx/-/transformer-wx-1.3.29.tgz#51ed82a02e822ad9f906420fb62a813046a21042"
- integrity sha512-dxO8xhE8GbxjtRWBxw4ro3bXEeVm0acSCKduGQzjJaXHM+eBP/i3w+bxWh0sXvexDdYXMYdIXxGXcRSSPNIxGQ==
+"@tarojs/transformer-wx@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/transformer-wx/download/@tarojs/transformer-wx-2.0.0-beta.13.tgz#04937cf1686118c76712e67de94d34614c63c58f"
+ integrity sha1-BJN88WhhGMdnEuZ96U00YUxjxY8=
dependencies:
"@babel/code-frame" "^7.0.0-beta.44"
babel-core "^6.26.3"
@@ -632,6 +857,7 @@
babel-helper-remove-or-void "^0.4.3"
babel-plugin-danger-remove-unused-import "^1.1.1"
babel-plugin-minify-dead-code "^1.3.2"
+ babel-plugin-preval "^1.6.4"
babel-plugin-syntax-dynamic-import "^6.18.0"
babel-plugin-transform-class-properties "^6.24.1"
babel-plugin-transform-define "^1.3.0"
@@ -643,16 +869,16 @@
babel-types "^6.26.0"
eslint "5.16.0"
eslint-plugin-react "7.10.0"
- eslint-plugin-taro "1.3.29"
+ eslint-plugin-taro "2.0.0-beta.13"
html "^1.0.0"
lodash "^4.17.5"
prettier "^1.14.2"
typescript "^3.2.2"
-"@tarojs/utils@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-1.3.29.tgz#3f473a470ce64241985725b35052c1c27f5052df"
- integrity sha512-mdyUvbDIEuQ6ZyVOp24F3my3w8x7R+um/uDLO/iqpYcczoE9JSNdFJPvVf6BpCI3CcRxYaDYZ6pCTWGuGvAmOQ==
+"@tarojs/utils@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/utils/download/@tarojs/utils-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772253852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40tarojs%2Futils%2Fdownload%2F%40tarojs%2Futils-2.0.0-beta.13.tgz#a3b9b4a36ab71ac4e2a3fddd96f4fb006862ea62"
+ integrity sha1-o7m0o2q3GsTio/3dlvT7AGhi6mI=
"@types/autoprefixer@^9.1.1":
version "9.6.1"
@@ -790,6 +1016,19 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.0.tgz#537c61a1df699a8331c79dab2ccc2c8799873c66"
integrity sha512-wuJwN2KV4tIRz1bu9vq5kSPasJ8IsEjZaP1ZR7KlmdUZvGF/rXy8DmXOVwUD0kAtvtJ7aqMKPqUXC0NUTDbrDg==
+"@types/prop-types@*":
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+
+"@types/react@^16.9.14":
+ version "16.9.16"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.16.tgz#4f12515707148b1f53a8eaa4341dae5dfefb066d"
+ integrity sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^2.2.0"
+
"@types/request@^2.48.1":
version "2.48.3"
resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.3.tgz#970b8ed2317568c390361d29c555a95e74bd6135"
@@ -808,6 +1047,11 @@
"@types/glob" "*"
"@types/node" "*"
+"@types/tapable@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370"
+ integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ==
+
"@types/tough-cookie@*":
version "2.3.5"
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.5.tgz#9da44ed75571999b65c37b60c9b2b88db54c585d"
@@ -950,13 +1194,6 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
-ansi-escapes@^4.2.1:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d"
- integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==
- dependencies:
- type-fest "^0.8.1"
-
ansi-gray@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
@@ -981,16 +1218,11 @@ ansi-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-ansi-regex@^4.1.0:
+ansi-regex@^4.0.0, ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-ansi-regex@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
- integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
-
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1040,11 +1272,6 @@ aproba@^1.0.3:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-arch@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
- integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==
-
archive-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70"
@@ -1289,7 +1516,7 @@ babel-core@6.10.4:
slash "^1.0.0"
source-map "^0.5.0"
-babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0, babel-core@^6.26.3, babel-core@^6.7.2:
+babel-core@^6.0.0, babel-core@^6.26.0, babel-core@^6.26.3:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
@@ -1460,7 +1687,7 @@ babel-helper-regex@^6.24.1:
babel-types "^6.26.0"
lodash "^4.17.4"
-babel-helper-remap-async-to-generator@^6.16.0, babel-helper-remap-async-to-generator@^6.24.1:
+babel-helper-remap-async-to-generator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=
@@ -1511,7 +1738,7 @@ babel-messages@^6.23.0, babel-messages@^6.8.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-check-es2015-constants@^6.22.0, babel-plugin-check-es2015-constants@^6.5.0, babel-plugin-check-es2015-constants@^6.8.0:
+babel-plugin-check-es2015-constants@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=
@@ -1530,13 +1757,6 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"
-babel-plugin-external-helpers@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1"
- integrity sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=
- dependencies:
- babel-runtime "^6.22.0"
-
babel-plugin-istanbul@^4.1.6:
version "4.1.6"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
@@ -1568,7 +1788,7 @@ babel-plugin-minify-dead-code@^1.3.2:
dependencies:
babel-core "6.10.4"
-babel-plugin-preval@1.6.4:
+babel-plugin-preval@1.6.4, babel-plugin-preval@^1.6.4:
version "1.6.4"
resolved "https://registry.yarnpkg.com/babel-plugin-preval/-/babel-plugin-preval-1.6.4.tgz#96febe8172b3ca6c3d03ed96eeb0382ba4b18056"
integrity sha512-XuNaiZ76CsdWialH2co05YRra9NlsyriTUbJ+56MAcWN9v33drTm5ovBRFuEKVj1dNRhEdBjeEyYtkkaRE8drw==
@@ -1578,13 +1798,6 @@ babel-plugin-preval@1.6.4:
babylon "^6.18.0"
require-from-string "^2.0.1"
-babel-plugin-react-transform@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz#402f25137b7bb66e9b54ead75557dfbc7ecaaa74"
- integrity sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==
- dependencies:
- lodash "^4.6.1"
-
babel-plugin-remove-dead-code@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/babel-plugin-remove-dead-code/-/babel-plugin-remove-dead-code-1.3.2.tgz#e1a2cd9595bb2f767291f35cab4ec9b467ee62c6"
@@ -1592,7 +1805,7 @@ babel-plugin-remove-dead-code@^1.3.2:
dependencies:
babel-core "6.10.4"
-babel-plugin-syntax-async-functions@^6.5.0, babel-plugin-syntax-async-functions@^6.8.0:
+babel-plugin-syntax-async-functions@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=
@@ -1607,7 +1820,7 @@ babel-plugin-syntax-class-constructor-call@^6.18.0:
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=
-babel-plugin-syntax-class-properties@^6.5.0, babel-plugin-syntax-class-properties@^6.8.0:
+babel-plugin-syntax-class-properties@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=
@@ -1637,7 +1850,7 @@ babel-plugin-syntax-export-extensions@^6.8.0:
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE=
-babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.5.0, babel-plugin-syntax-flow@^6.8.0:
+babel-plugin-syntax-flow@^6.18.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=
@@ -1647,7 +1860,7 @@ babel-plugin-syntax-function-bind@^6.8.0:
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
integrity sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=
-babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.5.0, babel-plugin-syntax-jsx@^6.8.0:
+babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
version "6.18.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
@@ -1657,11 +1870,16 @@ babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
-babel-plugin-syntax-trailing-function-commas@^6.20.0, babel-plugin-syntax-trailing-function-commas@^6.22.0, babel-plugin-syntax-trailing-function-commas@^6.5.0, babel-plugin-syntax-trailing-function-commas@^6.8.0:
+babel-plugin-syntax-trailing-function-commas@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=
+babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
+ version "7.0.0-beta.0"
+ resolved "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf"
+ integrity sha1-qiE8FDXiv/62/KhCKH71NK0F1c8=
+
babel-plugin-transform-async-generator-functions@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
@@ -1671,15 +1889,6 @@ babel-plugin-transform-async-generator-functions@^6.24.1:
babel-plugin-syntax-async-generators "^6.5.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-async-to-generator@6.16.0:
- version "6.16.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999"
- integrity sha1-Gew2yxSGtZ+fRorfpCzhOQjKKZk=
- dependencies:
- babel-helper-remap-async-to-generator "^6.16.0"
- babel-plugin-syntax-async-functions "^6.8.0"
- babel-runtime "^6.0.0"
-
babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
@@ -1698,7 +1907,7 @@ babel-plugin-transform-class-constructor-call@^6.24.1:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-class-properties@^6.18.0, babel-plugin-transform-class-properties@^6.24.1, babel-plugin-transform-class-properties@^6.5.0, babel-plugin-transform-class-properties@^6.8.0:
+babel-plugin-transform-class-properties@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
integrity sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=
@@ -1744,21 +1953,21 @@ babel-plugin-transform-do-expressions@^6.22.0:
babel-plugin-syntax-do-expressions "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-arrow-functions@^6.22.0, babel-plugin-transform-es2015-arrow-functions@^6.5.0, babel-plugin-transform-es2015-arrow-functions@^6.8.0:
+babel-plugin-transform-es2015-arrow-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-block-scoped-functions@^6.22.0, babel-plugin-transform-es2015-block-scoped-functions@^6.8.0:
+babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE=
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.5.0, babel-plugin-transform-es2015-block-scoping@^6.8.0:
+babel-plugin-transform-es2015-block-scoping@^6.23.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=
@@ -1769,7 +1978,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20
babel-types "^6.26.0"
lodash "^4.17.4"
-babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.5.0, babel-plugin-transform-es2015-classes@^6.8.0:
+babel-plugin-transform-es2015-classes@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=
@@ -1784,7 +1993,7 @@ babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-cla
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.5.0, babel-plugin-transform-es2015-computed-properties@^6.8.0:
+babel-plugin-transform-es2015-computed-properties@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=
@@ -1792,7 +2001,7 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transfor
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-destructuring@6.x, babel-plugin-transform-es2015-destructuring@^6.23.0, babel-plugin-transform-es2015-destructuring@^6.5.0, babel-plugin-transform-es2015-destructuring@^6.8.0:
+babel-plugin-transform-es2015-destructuring@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=
@@ -1807,14 +2016,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-for-of@^6.23.0, babel-plugin-transform-es2015-for-of@^6.5.0, babel-plugin-transform-es2015-for-of@^6.8.0:
+babel-plugin-transform-es2015-for-of@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-function-name@6.x, babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.5.0, babel-plugin-transform-es2015-function-name@^6.8.0:
+babel-plugin-transform-es2015-function-name@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=
@@ -1823,7 +2032,7 @@ babel-plugin-transform-es2015-function-name@6.x, babel-plugin-transform-es2015-f
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-literals@^6.22.0, babel-plugin-transform-es2015-literals@^6.5.0, babel-plugin-transform-es2015-literals@^6.8.0:
+babel-plugin-transform-es2015-literals@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=
@@ -1839,7 +2048,7 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-modules-commonjs@6.x, babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.5.0, babel-plugin-transform-es2015-modules-commonjs@^6.8.0:
+babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
version "6.26.2"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==
@@ -1867,7 +2076,7 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0:
babel-runtime "^6.22.0"
babel-template "^6.24.1"
-babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.8.0:
+babel-plugin-transform-es2015-object-super@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40=
@@ -1875,7 +2084,7 @@ babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es201
babel-helper-replace-supers "^6.24.1"
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-parameters@6.x, babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.5.0, babel-plugin-transform-es2015-parameters@^6.8.0:
+babel-plugin-transform-es2015-parameters@^6.23.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=
@@ -1887,7 +2096,7 @@ babel-plugin-transform-es2015-parameters@6.x, babel-plugin-transform-es2015-para
babel-traverse "^6.24.1"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-shorthand-properties@6.x, babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.5.0, babel-plugin-transform-es2015-shorthand-properties@^6.8.0:
+babel-plugin-transform-es2015-shorthand-properties@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=
@@ -1895,14 +2104,14 @@ babel-plugin-transform-es2015-shorthand-properties@6.x, babel-plugin-transform-e
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-spread@6.x, babel-plugin-transform-es2015-spread@^6.22.0, babel-plugin-transform-es2015-spread@^6.5.0, babel-plugin-transform-es2015-spread@^6.8.0:
+babel-plugin-transform-es2015-spread@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE=
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-sticky-regex@6.x, babel-plugin-transform-es2015-sticky-regex@^6.22.0:
+babel-plugin-transform-es2015-sticky-regex@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw=
@@ -1911,7 +2120,7 @@ babel-plugin-transform-es2015-sticky-regex@6.x, babel-plugin-transform-es2015-st
babel-runtime "^6.22.0"
babel-types "^6.24.1"
-babel-plugin-transform-es2015-template-literals@^6.22.0, babel-plugin-transform-es2015-template-literals@^6.5.0, babel-plugin-transform-es2015-template-literals@^6.8.0:
+babel-plugin-transform-es2015-template-literals@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=
@@ -1925,7 +2134,7 @@ babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-es2015-unicode-regex@6.x, babel-plugin-transform-es2015-unicode-regex@^6.22.0:
+babel-plugin-transform-es2015-unicode-regex@^6.22.0:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek=
@@ -1934,21 +2143,7 @@ babel-plugin-transform-es2015-unicode-regex@6.x, babel-plugin-transform-es2015-u
babel-runtime "^6.22.0"
regexpu-core "^2.0.0"
-babel-plugin-transform-es3-member-expression-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz#733d3444f3ecc41bef8ed1a6a4e09657b8969ebb"
- integrity sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es3-property-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz#b2078d5842e22abf40f73e8cde9cd3711abd5758"
- integrity sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1, babel-plugin-transform-exponentiation-operator@^6.5.0:
+babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=
@@ -1965,7 +2160,7 @@ babel-plugin-transform-export-extensions@^6.22.0:
babel-plugin-syntax-export-extensions "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-flow-strip-types@^6.21.0, babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-strip-types@^6.5.0, babel-plugin-transform-flow-strip-types@^6.8.0:
+babel-plugin-transform-flow-strip-types@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=
@@ -1981,19 +2176,12 @@ babel-plugin-transform-function-bind@^6.22.0:
babel-plugin-syntax-function-bind "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-jsx-to-stylesheet@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-jsx-to-stylesheet/-/babel-plugin-transform-jsx-to-stylesheet-1.3.29.tgz#2ef60448adb77dd5321de47c1b455e9dab34d31d"
- integrity sha512-/hhL9/G9Xqdmn3okJFSiO0jMralqcgZMiEV+h4q4nJaRSUydzpt9G5X0uvkIpbUBAKSNuT0sNi//G9usX2rfGg==
+babel-plugin-transform-jsx-to-stylesheet@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/babel-plugin-transform-jsx-to-stylesheet/download/babel-plugin-transform-jsx-to-stylesheet-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772259717&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-transform-jsx-to-stylesheet%2Fdownload%2Fbabel-plugin-transform-jsx-to-stylesheet-2.0.0-beta.13.tgz#6b3e0f9121ac2a6b7e198532cc16fd7e3ec7d289"
+ integrity sha1-az4PkSGsKmt+GYUyzBb9fj7H0ok=
-babel-plugin-transform-object-assign@^6.5.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba"
- integrity sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-object-rest-spread@^6.20.2, babel-plugin-transform-object-rest-spread@^6.22.0, babel-plugin-transform-object-rest-spread@^6.5.0, babel-plugin-transform-object-rest-spread@^6.8.0:
+babel-plugin-transform-object-rest-spread@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
@@ -2001,7 +2189,7 @@ babel-plugin-transform-object-rest-spread@^6.20.2, babel-plugin-transform-object
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.26.0"
-babel-plugin-transform-react-display-name@^6.23.0, babel-plugin-transform-react-display-name@^6.5.0, babel-plugin-transform-react-display-name@^6.8.0:
+babel-plugin-transform-react-display-name@^6.23.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=
@@ -2016,7 +2204,7 @@ babel-plugin-transform-react-jsx-self@^6.22.0:
babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-react-jsx-source@^6.22.0, babel-plugin-transform-react-jsx-source@^6.5.0:
+babel-plugin-transform-react-jsx-source@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=
@@ -2024,7 +2212,7 @@ babel-plugin-transform-react-jsx-source@^6.22.0, babel-plugin-transform-react-js
babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-react-jsx@^6.24.1, babel-plugin-transform-react-jsx@^6.5.0, babel-plugin-transform-react-jsx@^6.8.0:
+babel-plugin-transform-react-jsx@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM=
@@ -2033,7 +2221,7 @@ babel-plugin-transform-react-jsx@^6.24.1, babel-plugin-transform-react-jsx@^6.5.
babel-plugin-syntax-jsx "^6.8.0"
babel-runtime "^6.22.0"
-babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.5.0:
+babel-plugin-transform-regenerator@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=
@@ -2089,54 +2277,38 @@ babel-preset-env@^1.7.0:
invariant "^2.2.2"
semver "^5.3.0"
-babel-preset-es2015-node@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz#60b23157024b0cfebf3a63554cb05ee035b4e55f"
- integrity sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=
- dependencies:
- babel-plugin-transform-es2015-destructuring "6.x"
- babel-plugin-transform-es2015-function-name "6.x"
- babel-plugin-transform-es2015-modules-commonjs "6.x"
- babel-plugin-transform-es2015-parameters "6.x"
- babel-plugin-transform-es2015-shorthand-properties "6.x"
- babel-plugin-transform-es2015-spread "6.x"
- babel-plugin-transform-es2015-sticky-regex "6.x"
- babel-plugin-transform-es2015-unicode-regex "6.x"
- semver "5.x"
-
-babel-preset-fbjs@^2.1.2, babel-preset-fbjs@^2.1.4:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-2.3.0.tgz#92ff81307c18b926895114f9828ae1674c097f80"
- integrity sha512-ZOpAI1/bN0Y3J1ZAK9gRsFkHy9gGgJoDRUjtUCla/129LC7uViq9nIK22YdHfey8szohYoZY3f9L2lGOv0Edqw==
- dependencies:
- babel-plugin-check-es2015-constants "^6.8.0"
- babel-plugin-syntax-class-properties "^6.8.0"
- babel-plugin-syntax-flow "^6.8.0"
- babel-plugin-syntax-jsx "^6.8.0"
- babel-plugin-syntax-object-rest-spread "^6.8.0"
- babel-plugin-syntax-trailing-function-commas "^6.8.0"
- babel-plugin-transform-class-properties "^6.8.0"
- babel-plugin-transform-es2015-arrow-functions "^6.8.0"
- babel-plugin-transform-es2015-block-scoped-functions "^6.8.0"
- babel-plugin-transform-es2015-block-scoping "^6.8.0"
- babel-plugin-transform-es2015-classes "^6.8.0"
- babel-plugin-transform-es2015-computed-properties "^6.8.0"
- babel-plugin-transform-es2015-destructuring "^6.8.0"
- babel-plugin-transform-es2015-for-of "^6.8.0"
- babel-plugin-transform-es2015-function-name "^6.8.0"
- babel-plugin-transform-es2015-literals "^6.8.0"
- babel-plugin-transform-es2015-modules-commonjs "^6.8.0"
- babel-plugin-transform-es2015-object-super "^6.8.0"
- babel-plugin-transform-es2015-parameters "^6.8.0"
- babel-plugin-transform-es2015-shorthand-properties "^6.8.0"
- babel-plugin-transform-es2015-spread "^6.8.0"
- babel-plugin-transform-es2015-template-literals "^6.8.0"
- babel-plugin-transform-es3-member-expression-literals "^6.8.0"
- babel-plugin-transform-es3-property-literals "^6.8.0"
- babel-plugin-transform-flow-strip-types "^6.8.0"
- babel-plugin-transform-object-rest-spread "^6.8.0"
- babel-plugin-transform-react-display-name "^6.8.0"
- babel-plugin-transform-react-jsx "^6.8.0"
+babel-preset-fbjs@^3.0.1, babel-preset-fbjs@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541"
+ integrity sha1-pgJHZOqGyOBqIteUyotpU00mNUE=
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-syntax-class-properties" "^7.0.0"
+ "@babel/plugin-syntax-flow" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-member-expression-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-super" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-property-literals" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
babel-preset-flow@^6.23.0:
version "6.23.0"
@@ -2153,44 +2325,6 @@ babel-preset-jest@^23.2.0:
babel-plugin-jest-hoist "^23.2.0"
babel-plugin-syntax-object-rest-spread "^6.13.0"
-babel-preset-react-native@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-4.0.1.tgz#14ff07bdb6c8df9408082c0c18b2ce8e3392e76a"
- integrity sha512-uhFXnl1WbEWNG4W8QB/jeQaVXkd0a0AD+wh4D2VqtdRnEyvscahqyHExnwKLU9N0sXRYwDyed4JfbiBtiOSGgA==
- dependencies:
- babel-plugin-check-es2015-constants "^6.5.0"
- babel-plugin-react-transform "^3.0.0"
- babel-plugin-syntax-async-functions "^6.5.0"
- babel-plugin-syntax-class-properties "^6.5.0"
- babel-plugin-syntax-dynamic-import "^6.18.0"
- babel-plugin-syntax-flow "^6.5.0"
- babel-plugin-syntax-jsx "^6.5.0"
- babel-plugin-syntax-trailing-function-commas "^6.5.0"
- babel-plugin-transform-class-properties "^6.5.0"
- babel-plugin-transform-es2015-arrow-functions "^6.5.0"
- babel-plugin-transform-es2015-block-scoping "^6.5.0"
- babel-plugin-transform-es2015-classes "^6.5.0"
- babel-plugin-transform-es2015-computed-properties "^6.5.0"
- babel-plugin-transform-es2015-destructuring "^6.5.0"
- babel-plugin-transform-es2015-for-of "^6.5.0"
- babel-plugin-transform-es2015-function-name "^6.5.0"
- babel-plugin-transform-es2015-literals "^6.5.0"
- babel-plugin-transform-es2015-modules-commonjs "^6.5.0"
- babel-plugin-transform-es2015-parameters "^6.5.0"
- babel-plugin-transform-es2015-shorthand-properties "^6.5.0"
- babel-plugin-transform-es2015-spread "^6.5.0"
- babel-plugin-transform-es2015-template-literals "^6.5.0"
- babel-plugin-transform-exponentiation-operator "^6.5.0"
- babel-plugin-transform-flow-strip-types "^6.5.0"
- babel-plugin-transform-object-assign "^6.5.0"
- babel-plugin-transform-object-rest-spread "^6.5.0"
- babel-plugin-transform-react-display-name "^6.5.0"
- babel-plugin-transform-react-jsx "^6.5.0"
- babel-plugin-transform-react-jsx-source "^6.5.0"
- babel-plugin-transform-regenerator "^6.5.0"
- babel-template "^6.24.1"
- react-transform-hmr "^1.0.4"
-
babel-preset-react@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
@@ -2242,7 +2376,7 @@ babel-preset-stage-3@^6.24.1:
babel-plugin-transform-exponentiation-operator "^6.24.1"
babel-plugin-transform-object-rest-spread "^6.22.0"
-babel-register@^6.24.1, babel-register@^6.26.0, babel-register@^6.9.0:
+babel-register@^6.26.0, babel-register@^6.9.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
@@ -2255,7 +2389,7 @@ babel-register@^6.24.1, babel-register@^6.26.0, babel-register@^6.9.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1, babel-runtime@^6.9.1:
+babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1, babel-runtime@^6.9.1:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -2309,11 +2443,6 @@ babylon@^6.1.21, babylon@^6.18.0, babylon@^6.7.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-babylon@^7.0.0-beta:
- version "7.0.0-beta.47"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80"
- integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==
-
bail@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.4.tgz#7181b66d508aa3055d3f6c13f0a0c720641dde9b"
@@ -2324,17 +2453,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-base64-js@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
- integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
-
-base64-js@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8"
- integrity sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=
-
-base64-js@^1.0.2, base64-js@^1.1.2:
+base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
@@ -2380,10 +2499,10 @@ better-babel-generator@^6.26.1:
source-map "^0.5.7"
trim-right "^1.0.1"
-big-integer@^1.6.7:
- version "1.6.47"
- resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.47.tgz#e1e9320e26c4cc81f64fbf4b3bb20e025bf18e2d"
- integrity sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg==
+big-integer@^1.6.44:
+ version "1.6.48"
+ resolved "https://registry.npm.taobao.org/big-integer/download/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e"
+ integrity sha1-j9iL0WMsukocjD49cVnwi7lbS54=
big.js@^5.2.2:
version "5.2.2"
@@ -2416,19 +2535,19 @@ boxen@^1.2.1:
term-size "^1.2.0"
widest-line "^2.0.0"
-bplist-creator@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45"
- integrity sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=
+bplist-creator@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c"
+ integrity sha1-VrKm556a7D/DO/gx0JNH1zeU55w=
dependencies:
stream-buffers "~2.2.0"
-bplist-parser@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6"
- integrity sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=
+bplist-parser@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
+ integrity sha1-Q6nRg+W/nVRSAM6sPnEveeu+jQ4=
dependencies:
- big-integer "^1.6.7"
+ big-integer "^1.6.44"
brace-expansion@^1.1.7:
version "1.1.11"
@@ -2503,7 +2622,7 @@ buffer-alloc@^1.2.0:
buffer-alloc-unsafe "^1.1.0"
buffer-fill "^1.0.0"
-buffer-crc32@~0.2.3:
+buffer-crc32@^0.2.13, buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
@@ -2797,13 +2916,6 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
-cli-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
- integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
- dependencies:
- restore-cursor "^3.1.0"
-
cli-spinners@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
@@ -2819,14 +2931,6 @@ cli-width@^2.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
-clipboardy@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.3.tgz#0526361bf78724c1f20be248d428e365433c07ef"
- integrity sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==
- dependencies:
- arch "^2.1.0"
- execa "^0.8.0"
-
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
@@ -3057,6 +3161,13 @@ convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0,
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=
+ dependencies:
+ safe-buffer "~5.1.1"
+
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
@@ -3077,7 +3188,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cosmiconfig@^5.0.0, cosmiconfig@^5.2.0:
+cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
@@ -3198,11 +3309,6 @@ cssesc@^0.1.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
version "0.3.8"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
@@ -3215,6 +3321,11 @@ cssstyle@^1.0.0:
dependencies:
cssom "0.3.x"
+csstype@^2.2.0:
+ version "2.6.7"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
+ integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
+
cuint@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
@@ -3626,11 +3737,16 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-ejs@^2.5.9, ejs@^2.6.1:
+ejs@^2.5.9:
version "2.7.1"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228"
integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==
+ejs@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz#30c8f6ee9948502cc32e85c37a3f8b39b5a614a5"
+ integrity sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw==
+
electron-to-chromium@^1.3.47:
version "1.3.296"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz#a1d4322d742317945285d3ba88966561b67f3ac8"
@@ -3641,11 +3757,6 @@ emoji-regex@^7.0.1:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
@@ -3680,16 +3791,10 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
-envinfo@^3.0.0:
- version "3.11.1"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-3.11.1.tgz#45968faf5079aa797b7dcdc3b123f340d4529e1c"
- integrity sha512-hKkh7aKtont6Zuv4RmE4VkOc96TkBj9NXj7Ghsd/qCA9LuJI0Dh+ImwA1N5iORB9Vg+sz5bq9CHJzs51BILNCQ==
- dependencies:
- clipboardy "^1.2.2"
- glob "^7.1.2"
- minimist "^1.2.0"
- os-name "^2.0.1"
- which "^1.2.14"
+envinfo@^5.7.0:
+ version "5.12.1"
+ resolved "https://registry.npm.taobao.org/envinfo/download/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef"
+ integrity sha1-gwaMM+CXLrZX1rxppt8wut77Ru8=
envinfo@^6.0.1:
version "6.0.1"
@@ -3765,12 +3870,12 @@ escodegen@^1.9.1:
optionalDependencies:
source-map "~0.6.1"
-eslint-config-taro@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/eslint-config-taro/-/eslint-config-taro-1.3.29.tgz#3acc65336315a5560344c9a728dea8806bdb8c46"
- integrity sha512-zYr7TcC7SR0xRQHz19CbIKP2VyfSdiELlF1ycbQhjxJBRQ8m4F34yOvh8TEg9RKlJkWUk1Wqrj7Sjx8A4jDQKw==
+eslint-config-taro@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/eslint-config-taro/download/eslint-config-taro-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772387773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-taro%2Fdownload%2Feslint-config-taro-2.0.0-beta.13.tgz#1713e11af2677da0216b245034968fb1d57c22ff"
+ integrity sha1-FxPhGvJnfaAhayRQNJaPsdV8Iv8=
dependencies:
- eslint-plugin-taro "1.3.29"
+ eslint-plugin-taro "2.0.0-beta.13"
eslint-import-resolver-node@^0.3.2:
version "0.3.2"
@@ -3810,18 +3915,6 @@ eslint-plugin-react-hooks@^1.6.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04"
integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
-eslint-plugin-react-native-globals@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
- integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
-
-eslint-plugin-react-native@^3.2.1:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.7.0.tgz#7e2cc1f3cf24919c4c0ea7fac13301e7444e105f"
- integrity sha512-krLtQmGih/uJDPxF8DBpnU8J3kRUsDm/Dey5yEhOO8LN1I3Wesbk4PGCg8Zah57azKFU+9YtGooFjJcDJWUs+g==
- dependencies:
- eslint-plugin-react-native-globals "^0.1.1"
-
eslint-plugin-react@7.10.0:
version "7.10.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.10.0.tgz#af5c1fef31c4704db02098f9be18202993828b50"
@@ -3847,10 +3940,10 @@ eslint-plugin-react@^7.4.0:
prop-types "^15.7.2"
resolve "^1.12.0"
-eslint-plugin-taro@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/eslint-plugin-taro/-/eslint-plugin-taro-1.3.29.tgz#dd8368fa16cb73abfec356c86dfb80566c0a4490"
- integrity sha512-FKbne+jcD2SIguIRCSlbWzMvHWCDi0lWDWV24AGo4IZ+er/w2hwdNd8akZENKd28BZXcN4X31K1XeIlA78JUYQ==
+eslint-plugin-taro@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-taro/download/eslint-plugin-taro-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772250575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-taro%2Fdownload%2Feslint-plugin-taro-2.0.0-beta.13.tgz#b11108a151517f4a1fb7e6048222af239e5478f2"
+ integrity sha1-sREIoVFRf0oft+YEgiKvI55UePI=
dependencies:
has "^1.0.1"
@@ -4085,19 +4178,6 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
- integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -4216,7 +4296,7 @@ extend@^3.0.0, extend@~3.0.2:
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-external-editor@^2.0.4:
+external-editor@^2.0.4, external-editor@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
@@ -4319,14 +4399,14 @@ fbjs-css-vars@^1.0.0:
resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==
-fbjs-scripts@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.8.3.tgz#b854de7a11e62a37f72dab9aaf4d9b53c4a03174"
- integrity sha512-aUJ/uEzMIiBYuj/blLp4sVNkQQ7ZEB/lyplG1IzzOmZ83meiWecrGg5jBo4wWrxXmO4RExdtsSV1QkTjPt2Gag==
+fbjs-scripts@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.npm.taobao.org/fbjs-scripts/download/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27"
+ integrity sha1-BpoMBjQkLRADHGRg7x/M782uiyc=
dependencies:
+ "@babel/core" "^7.0.0"
ansi-colors "^1.0.1"
- babel-core "^6.7.2"
- babel-preset-fbjs "^2.1.2"
+ babel-preset-fbjs "^3.2.0"
core-js "^2.4.1"
cross-spawn "^5.1.0"
fancy-log "^1.3.2"
@@ -4335,7 +4415,7 @@ fbjs-scripts@^0.8.1:
semver "^5.1.0"
through2 "^2.0.0"
-fbjs@^0.8.14, fbjs@^0.8.9:
+fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@@ -4384,13 +4464,6 @@ figures@^2.0.0:
dependencies:
escape-string-regexp "^1.0.5"
-figures@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec"
- integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==
- dependencies:
- escape-string-regexp "^1.0.5"
-
file-entry-cache@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
@@ -4657,6 +4730,15 @@ fs-extra@^5.0.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -5015,9 +5097,9 @@ growly@^1.3.0:
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
handlebars@^4.0.3:
- version "4.4.5"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.5.tgz#1b1f94f9bfe7379adda86a8b73fb570265a0dddd"
- integrity sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg==
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
neo-async "^2.6.0"
optimist "^0.6.1"
@@ -5217,6 +5299,11 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, ic
dependencies:
safer-buffer ">= 2.1.2 < 3"
+icss-replace-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+ integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
+
icss-utils@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-3.0.1.tgz#ee70d3ae8cac38c6be5ed91e851b27eed343ad0f"
@@ -5224,13 +5311,6 @@ icss-utils@^3.0.1:
dependencies:
postcss "^6.0.2"
-icss-utils@^4.0.0, icss-utils@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
- integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
- dependencies:
- postcss "^7.0.14"
-
ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
@@ -5371,6 +5451,25 @@ inquirer@^3.0.6:
strip-ansi "^4.0.0"
through "^2.3.6"
+inquirer@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
+ integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.1.0"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rxjs "^5.5.2"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
inquirer@^6.2.2, inquirer@^6.4.1:
version "6.5.2"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
@@ -5390,25 +5489,6 @@ inquirer@^6.2.2, inquirer@^6.4.1:
strip-ansi "^5.1.0"
through "^2.3.6"
-inquirer@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a"
- integrity sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==
- dependencies:
- ansi-escapes "^4.2.1"
- chalk "^2.4.2"
- cli-cursor "^3.1.0"
- cli-width "^2.0.0"
- external-editor "^3.0.3"
- figures "^3.0.0"
- lodash "^4.17.15"
- mute-stream "0.0.8"
- run-async "^2.2.0"
- rxjs "^6.4.0"
- string-width "^4.1.0"
- strip-ansi "^5.1.0"
- through "^2.3.6"
-
interpret@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
@@ -5613,11 +5693,6 @@ is-fullwidth-code-point@^2.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
is-generator-fn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
@@ -6034,20 +6109,6 @@ jest-diff@^23.6.0:
jest-get-type "^22.1.0"
pretty-format "^23.6.0"
-jest-docblock@22.4.0:
- version "22.4.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8"
- integrity sha512-lDY7GZ+/CJb02oULYLBDj7Hs5shBhVpDYpIm8LUyqw9X2J22QRsM19gmGQwIFqGSJmpc/LRrSYudeSrG510xlQ==
- dependencies:
- detect-newline "^2.1.0"
-
-jest-docblock@^22.4.0:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19"
- integrity sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==
- dependencies:
- detect-newline "^2.1.0"
-
jest-docblock@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7"
@@ -6085,18 +6146,18 @@ jest-get-type@^22.1.0:
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
-jest-haste-map@22.4.2:
- version "22.4.2"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4"
- integrity sha512-EdQADHGXRqHJYAr7q9B9YYHZnrlcMwhx1+DnIgc9uN05nCW3RvGCxJ91MqWXcC1AzatLoSv7SNd0qXMp2jKBDA==
+jest-haste-map@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.0.0-alpha.6.tgz?cache=0&sync_timestamp=1566444279671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-24.0.0-alpha.6.tgz#fb2c785080f391b923db51846b86840d0d773076"
+ integrity sha1-+yx4UIDzkbkj21GEa4aEDQ13MHY=
dependencies:
fb-watchman "^2.0.0"
graceful-fs "^4.1.11"
- jest-docblock "^22.4.0"
- jest-serializer "^22.4.0"
- jest-worker "^22.2.2"
+ invariant "^2.2.4"
+ jest-serializer "^24.0.0-alpha.6"
+ jest-worker "^24.0.0-alpha.6"
micromatch "^2.3.11"
- sane "^2.0.0"
+ sane "^3.0.0"
jest-haste-map@^23.6.0:
version "23.6.0"
@@ -6235,16 +6296,21 @@ jest-runtime@^23.6.0:
write-file-atomic "^2.1.0"
yargs "^11.0.0"
-jest-serializer@^22.4.0:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436"
- integrity sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==
+jest-serializer@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.0.0-alpha.6.tgz#27d2fee4b1a85698717a30c3ec2ab80767312597"
+ integrity sha1-J9L+5LGoVphxejDD7Cq4B2cxJZc=
jest-serializer@^23.0.1:
version "23.0.1"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165"
integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=
+jest-serializer@^24.0.0-alpha.6:
+ version "24.9.0"
+ resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
+ integrity sha1-5tfX75bTHouQeacUdUxdXFgojnM=
+
jest-snapshot@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a"
@@ -6294,17 +6360,10 @@ jest-watcher@^23.4.0:
chalk "^2.0.1"
string-length "^2.0.0"
-jest-worker@22.2.2:
- version "22.2.2"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390"
- integrity sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==
- dependencies:
- merge-stream "^1.0.1"
-
-jest-worker@^22.2.2:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b"
- integrity sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==
+jest-worker@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.0.0-alpha.6.tgz#463681b92c117c57107135c14b9b9d6cd51d80ce"
+ integrity sha1-RjaBuSwRfFcQcTXBS5udbNUdgM4=
dependencies:
merge-stream "^1.0.1"
@@ -6315,6 +6374,14 @@ jest-worker@^23.2.0:
dependencies:
merge-stream "^1.0.1"
+jest-worker@^24.0.0-alpha.6:
+ version "24.9.0"
+ resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
+ integrity sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=
+ dependencies:
+ merge-stream "^2.0.0"
+ supports-color "^6.1.0"
+
jest@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d"
@@ -6607,7 +6674,7 @@ lead@^1.0.0:
dependencies:
flush-write-stream "^1.0.2"
-left-pad@^1.1.3, left-pad@^1.3.0:
+left-pad@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
@@ -6726,16 +6793,11 @@ lodash.unescape@4.0.1:
resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
-"lodash@4.6.1 || ^4.16.1", lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@^4.7.0:
+"lodash@4.6.1 || ^4.16.1", lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1, lodash@^4.7.0:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-lodash@^3.5.0:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
- integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
-
log-symbols@^2.0.0, log-symbols@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
@@ -6781,11 +6843,6 @@ lru-cache@^4.0.0, lru-cache@^4.0.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
-macos-release@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-1.1.0.tgz#831945e29365b470aa8724b0ab36c8f8959d10fb"
- integrity sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==
-
make-dir@^1.0.0, make-dir@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -6793,7 +6850,7 @@ make-dir@^1.0.0, make-dir@^1.2.0:
dependencies:
pify "^3.0.0"
-make-dir@^2.0.0:
+make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
@@ -6949,6 +7006,11 @@ merge-stream@^1.0.1:
dependencies:
readable-stream "^2.0.1"
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=
+
merge2@^1.2.3:
version "1.3.0"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
@@ -6959,127 +7021,256 @@ merge@^1.2.0:
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
-metro-babylon7@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-babylon7/-/metro-babylon7-0.30.2.tgz#73784a958916bf5541b6a930598b62460fc376f5"
- integrity sha512-ZI0h4/3raGnzA6fFXwLUMidGOG4jkDi9fgFkoI8I4Ack3TDMabmZATu9RD6DaSolu3lylhfPd8DeAAMeopX9CA==
+metro-babel-register@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-register/download/metro-babel-register-0.51.0.tgz#d86d3f2d90b45c7a3c6ae67a53bd1e50bad7a24d"
+ integrity sha1-2G0/LZC0XHo8auZ6U70eULrXok0=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-transform-async-to-generator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/register" "^7.0.0"
+ core-js "^2.2.2"
+ escape-string-regexp "^1.0.5"
+
+metro-babel-transformer@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.51.0.tgz#9ee5199163ac46b2057527b3f8cbd8b089ffc03e"
+ integrity sha1-nuUZkWOsRrIFdSez+MvYsIn/wD4=
+ dependencies:
+ "@babel/core" "^7.0.0"
+
+metro-babel-transformer@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.51.1.tgz#97be9e2b96c78aa202b52ae05fb86f71327aef72"
+ integrity sha1-l76eK5bHiqICtSrgX7hvcTJ673I=
+ dependencies:
+ "@babel/core" "^7.0.0"
+
+metro-babel7-plugin-react-transform@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel7-plugin-react-transform/download/metro-babel7-plugin-react-transform-0.51.0.tgz#af27dd81666b91f05d2b371b0d6d283c585e38b6"
+ integrity sha1-ryfdgWZrkfBdKzcbDW0oPFheOLY=
dependencies:
- babylon "^7.0.0-beta"
+ "@babel/helper-module-imports" "^7.0.0"
+
+metro-babel7-plugin-react-transform@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-babel7-plugin-react-transform/download/metro-babel7-plugin-react-transform-0.51.1.tgz#9cce2c340cc4006fc82aa6dfab27af22d592607e"
+ integrity sha1-nM4sNAzEAG/IKqbfqyevItWSYH4=
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
-metro-cache@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.30.2.tgz#1fb1ff92d3d8c596fd8cddc1635a9cb1c26e4cba"
- integrity sha512-XYd07OwgtZRHFXyip40wdNJ8abPJRziuE5bb3jjf8wvyHxCpzlZlvbe0ZhcR8ChBwFUjHMuVyoou52AC3a0f+g==
+metro-cache@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-cache/download/metro-cache-0.51.1.tgz#d0b296eab8e009214413bba87e4eac3d9b44cd04"
+ integrity sha1-0LKW6rjgCSFEE7uofk6sPZtEzQQ=
dependencies:
- jest-serializer "^22.4.0"
+ jest-serializer "24.0.0-alpha.6"
+ metro-core "0.51.1"
mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+
+metro-config@0.51.1, metro-config@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-config/download/metro-config-0.51.1.tgz#8f1a241ce2c0b521cd492c39bc5c6c69e3397b82"
+ integrity sha1-jxokHOLAtSHNSSw5vFxsaeM5e4I=
+ dependencies:
+ cosmiconfig "^5.0.5"
+ metro "0.51.1"
+ metro-cache "0.51.1"
+ metro-core "0.51.1"
+ pretty-format "24.0.0-alpha.6"
-metro-core@0.30.2, metro-core@^0.30.0:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.30.2.tgz#380ae13cceee29e5be166df7acca9f1daa19fd7e"
- integrity sha512-2Y89PpD9sE/8QaHhYxaI21WFxkVmjbxdphiOPdsC9t7A3kQHMYOTQPYFon3bkYM7tL8k9YVBimXSv20JGglqUA==
+metro-core@0.51.1, metro-core@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-core/download/metro-core-0.51.1.tgz#e7227fb1dd1bb3f953272fad9876e6201140b038"
+ integrity sha1-5yJ/sd0bs/lTJy+tmHbmIBFAsDg=
dependencies:
+ jest-haste-map "24.0.0-alpha.6"
lodash.throttle "^4.1.1"
+ metro-resolver "0.51.1"
wordwrap "^1.0.0"
-metro-minify-uglify@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.30.2.tgz#7299a0376ad6340e9acf415912d54b5309702040"
- integrity sha512-xwqMqYYKZEqJ66Wpf5OpyPJhApOQDb8rYiO94VInlDeHpN7eKGCVILclnx9AmVM3dStmebvXa5jrdgsbnJ1bSg==
+metro-memory-fs@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-memory-fs/download/metro-memory-fs-0.51.1.tgz#624291f5956b0fd11532d80b1b85d550926f96c9"
+ integrity sha1-YkKR9ZVrD9EVMtgLG4XVUJJvlsk=
+
+metro-minify-uglify@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.51.1.tgz#60cd8fe4d3e82d6670c717b8ddb52ae63199c0e4"
+ integrity sha1-YM2P5NPoLWZwxxe43bUq5jGZwOQ=
dependencies:
uglify-es "^3.1.9"
-metro-resolver@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.30.2.tgz#c26847e59cdc6a8ab1fb4b92d765165ec06946dd"
- integrity sha512-bODCys/WYpqJ+KYbCIENZu1eqdQu3g/d2fXfhAROhutqojMqrT1eIGhzWpk3G1k/J6vlaf69uW6xrVuheg0ktg==
+metro-react-native-babel-preset@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.51.0.tgz#978d960acf2d214bbbe43e59145878d663bd07de"
+ integrity sha1-l42WCs8tIUu75D5ZFFh41mO9B94=
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.0"
+ "@babel/plugin-syntax-export-default-from" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-assign" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/plugin-transform-regenerator" "^7.0.0"
+ "@babel/plugin-transform-runtime" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-sticky-regex" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.0.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ metro-babel7-plugin-react-transform "0.51.0"
+ react-transform-hmr "^1.0.4"
+
+metro-react-native-babel-preset@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.51.1.tgz#44aeeedfea37f7c2ab8f6f273fa71b90fe65f089"
+ integrity sha1-RK7u3+o398Krj28nP6cbkP5l8Ik=
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.0"
+ "@babel/plugin-syntax-export-default-from" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-assign" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/plugin-transform-regenerator" "^7.0.0"
+ "@babel/plugin-transform-runtime" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-sticky-regex" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.0.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ metro-babel7-plugin-react-transform "0.51.1"
+ react-transform-hmr "^1.0.4"
+
+metro-react-native-babel-transformer@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.51.0.tgz#57a695e97a19d95de63c9633f9d0dc024ee8e99a"
+ integrity sha1-V6aV6XoZ2V3mPJYz+dDcAk7o6Zo=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ babel-preset-fbjs "^3.0.1"
+ metro-babel-transformer "0.51.0"
+ metro-react-native-babel-preset "0.51.0"
+
+metro-react-native-babel-transformer@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.51.1.tgz#bac34f988c150c725cd1875c13701cc2032615f9"
+ integrity sha1-usNPmIwVDHJc0YdcE3AcwgMmFfk=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ babel-preset-fbjs "^3.0.1"
+ metro-babel-transformer "0.51.1"
+ metro-react-native-babel-preset "0.51.1"
+
+metro-resolver@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.51.1.tgz#4c26f0baee47d30250187adca3d34c902e627611"
+ integrity sha1-TCbwuu5H0wJQGHrco9NMkC5idhE=
dependencies:
absolute-path "^0.0.0"
-metro-source-map@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.30.2.tgz#4ac056642a2c521d974d42a617c8731d094365bb"
- integrity sha512-9tW3B1JOdXhyDJnR4wOPOsOlYWSL+xh6J+N5/DADGEK/X/+Up/lEHdEfpB+/+yGk1LHaRHcKCahtLPNl/to7Sg==
+metro-source-map@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.51.1.tgz#1a8da138e98e184304d5558b4f92a5c2141822d0"
+ integrity sha1-Go2hOOmOGEME1VWLT5KlwhQYItA=
dependencies:
source-map "^0.5.6"
-metro@^0.30.0:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.30.2.tgz#e722e0eb106530f6d5bcf8de1f50353a0732cfb3"
- integrity sha512-wmdkh4AsfZjWaMM++KMDswQHdyo5L9a0XAaQBL4XTJdQIRG+x+Rmjixe7tDki5jKwe9XxsjjbpbdYKswOANuiw==
- dependencies:
- "@babel/core" "^7.0.0-beta"
- "@babel/generator" "^7.0.0-beta"
- "@babel/helper-remap-async-to-generator" "^7.0.0-beta"
- "@babel/plugin-external-helpers" "^7.0.0-beta"
- "@babel/plugin-proposal-class-properties" "^7.0.0-beta"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0-beta"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0-beta"
- "@babel/plugin-transform-arrow-functions" "^7.0.0-beta"
- "@babel/plugin-transform-block-scoping" "^7.0.0-beta"
- "@babel/plugin-transform-classes" "^7.0.0-beta"
- "@babel/plugin-transform-computed-properties" "^7.0.0-beta"
- "@babel/plugin-transform-destructuring" "^7.0.0-beta"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0-beta"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0-beta"
- "@babel/plugin-transform-for-of" "^7.0.0-beta"
- "@babel/plugin-transform-function-name" "^7.0.0-beta"
- "@babel/plugin-transform-literals" "^7.0.0-beta"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0-beta"
- "@babel/plugin-transform-object-assign" "^7.0.0-beta"
- "@babel/plugin-transform-parameters" "^7.0.0-beta"
- "@babel/plugin-transform-react-display-name" "^7.0.0-beta"
- "@babel/plugin-transform-react-jsx" "^7.0.0-beta"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0-beta"
- "@babel/plugin-transform-regenerator" "^7.0.0-beta"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0-beta"
- "@babel/plugin-transform-spread" "^7.0.0-beta"
- "@babel/plugin-transform-template-literals" "^7.0.0-beta"
- "@babel/register" "^7.0.0-beta"
- "@babel/template" "^7.0.0-beta"
- "@babel/traverse" "^7.0.0-beta"
- "@babel/types" "^7.0.0-beta"
+metro@0.51.1, metro@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro/download/metro-0.51.1.tgz#b0aad4731593b9f244261bad1abb2a006d1c8969"
+ integrity sha1-sKrUcxWTufJEJhutGrsqAG0ciWk=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.0.0"
+ "@babel/parser" "^7.0.0"
+ "@babel/plugin-external-helpers" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
absolute-path "^0.0.0"
async "^2.4.0"
- babel-core "^6.24.1"
- babel-generator "^6.26.0"
- babel-plugin-external-helpers "^6.22.0"
- babel-plugin-react-transform "^3.0.0"
- babel-plugin-transform-flow-strip-types "^6.21.0"
- babel-preset-es2015-node "^6.1.1"
- babel-preset-fbjs "^2.1.4"
- babel-preset-react-native "^4.0.0"
- babel-register "^6.24.1"
- babel-template "^6.24.1"
- babylon "^6.18.0"
- chalk "^1.1.1"
+ babel-preset-fbjs "^3.0.1"
+ buffer-crc32 "^0.2.13"
+ chalk "^2.4.1"
concat-stream "^1.6.0"
connect "^3.6.5"
- core-js "^2.2.2"
debug "^2.2.0"
denodeify "^1.2.1"
eventemitter3 "^3.0.0"
- fbjs "^0.8.14"
+ fbjs "^1.0.0"
fs-extra "^1.0.0"
graceful-fs "^4.1.3"
image-size "^0.6.0"
- jest-docblock "22.4.0"
- jest-haste-map "22.4.2"
- jest-worker "22.2.2"
+ invariant "^2.2.4"
+ jest-haste-map "24.0.0-alpha.6"
+ jest-worker "24.0.0-alpha.6"
json-stable-stringify "^1.0.1"
- json5 "^0.4.0"
- left-pad "^1.1.3"
lodash.throttle "^4.1.1"
merge-stream "^1.0.1"
- metro-babylon7 "0.30.2"
- metro-cache "0.30.2"
- metro-core "0.30.2"
- metro-minify-uglify "0.30.2"
- metro-resolver "0.30.2"
- metro-source-map "0.30.2"
+ metro-babel-transformer "0.51.1"
+ metro-cache "0.51.1"
+ metro-config "0.51.1"
+ metro-core "0.51.1"
+ metro-minify-uglify "0.51.1"
+ metro-react-native-babel-preset "0.51.1"
+ metro-resolver "0.51.1"
+ metro-source-map "0.51.1"
mime-types "2.1.11"
mkdirp "^0.5.1"
- node-fetch "^1.3.3"
+ node-fetch "^2.2.0"
+ nullthrows "^1.1.0"
+ react-transform-hmr "^1.0.4"
resolve "^1.5.0"
rimraf "^2.5.4"
serialize-error "^2.1.0"
@@ -7088,7 +7279,7 @@ metro@^0.30.0:
throat "^4.1.0"
wordwrap "^1.0.0"
write-file-atomic "^1.2.0"
- ws "^1.1.0"
+ ws "^1.1.5"
xpipe "^1.0.5"
yargs "^9.0.0"
@@ -7169,7 +7360,7 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-mimic-fn@^2.0.0, mimic-fn@^2.1.0:
+mimic-fn@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
@@ -7297,11 +7488,6 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-mute-stream@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
- integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-
nan@^2.12.1:
version "2.14.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
@@ -7360,7 +7546,7 @@ node-emoji@^1.0.3:
dependencies:
lodash.toarray "^4.4.0"
-node-fetch@^1.0.1, node-fetch@^1.3.3:
+node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
@@ -7368,6 +7554,11 @@ node-fetch@^1.0.1, node-fetch@^1.3.3:
encoding "^0.1.11"
is-stream "^1.0.1"
+node-fetch@^2.2.0:
+ version "2.6.0"
+ resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
+ integrity sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0=
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -7562,6 +7753,11 @@ npmlog@^4.0.2:
gauge "~2.7.3"
set-blocking "~2.0.0"
+nullthrows@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.npm.taobao.org/nullthrows/download/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
+ integrity sha1-eBgliEOFaulx6uQgitfX6xmkMbE=
+
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@@ -7707,13 +7903,6 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
-onetime@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
- integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
- dependencies:
- mimic-fn "^2.1.0"
-
opn@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a"
@@ -7798,14 +7987,6 @@ os-locale@^3.1.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-name@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/os-name/-/os-name-2.0.1.tgz#b9a386361c17ae3a21736ef0599405c9a8c5dc5e"
- integrity sha1-uaOGNhwXrjohc27wWZQFyajF3F4=
- dependencies:
- macos-release "^1.0.0"
- win-release "^1.0.0"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -8055,11 +8236,6 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
-pegjs@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd"
- integrity sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=
-
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -8130,23 +8306,13 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-plist@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b"
- integrity sha1-CjLKlIGxw2TpLhjcVch23p0B2os=
- dependencies:
- base64-js "1.1.2"
- xmlbuilder "8.2.2"
- xmldom "0.1.x"
-
-plist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/plist/-/plist-1.2.0.tgz#084b5093ddc92506e259f874b8d9b1afb8c79593"
- integrity sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=
+plist@^3.0.0, plist@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
+ integrity sha1-qbkx0XwwTokS7wujvdYYK68uH4w=
dependencies:
- base64-js "0.0.8"
- util-deprecate "1.0.2"
- xmlbuilder "4.0.0"
+ base64-js "^1.2.3"
+ xmlbuilder "^9.0.7"
xmldom "0.1.x"
plugin-error@^0.1.2:
@@ -8204,15 +8370,13 @@ postcss-modules-extract-imports@^1.1.0:
dependencies:
postcss "^6.0.1"
-postcss-modules-local-by-default@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915"
- integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==
+postcss-modules-local-by-default@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+ integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
dependencies:
- icss-utils "^4.1.1"
- postcss "^7.0.16"
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.0.0"
+ css-selector-tokenizer "^0.7.0"
+ postcss "^6.0.1"
postcss-modules-resolve-imports@^1.3.0:
version "1.3.0"
@@ -8231,13 +8395,13 @@ postcss-modules-scope@^1.1.0:
css-selector-tokenizer "^0.7.0"
postcss "^6.0.1"
-postcss-modules-values@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
- integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
+postcss-modules-values@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+ integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
dependencies:
- icss-utils "^4.0.0"
- postcss "^7.0.6"
+ icss-replace-symbols "^1.1.0"
+ postcss "^6.0.1"
postcss-pxtorem@^4.0.1:
version "4.0.1"
@@ -8247,10 +8411,10 @@ postcss-pxtorem@^4.0.1:
object-assign "^4.1.0"
postcss "^5.2.10"
-postcss-pxtransform@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/postcss-pxtransform/-/postcss-pxtransform-1.3.29.tgz#909740e7362175375905cedfec460dbd9678ba16"
- integrity sha512-p6gdtDVaHfAebw9M0EFj2rqcPf9jOF5hSmxxRZVDxaNlom7A4Ou5u8DGW2sgwO6gEDey1PColxdPcMQ7Vk24Rw==
+postcss-pxtransform@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/postcss-pxtransform/download/postcss-pxtransform-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772263445&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-pxtransform%2Fdownload%2Fpostcss-pxtransform-2.0.0-beta.13.tgz#14777ccc07ec1201a30a27fc9298dd7e00dfa3fb"
+ integrity sha1-FHd8zAfsEgGjCif8kpjdfgDfo/s=
dependencies:
postcss "^6.0.16"
postcss-pxtorem "^4.0.1"
@@ -8311,15 +8475,6 @@ postcss-selector-parser@^3.1.0:
indexes-of "^1.0.1"
uniq "^1.0.1"
-postcss-selector-parser@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
- integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
- dependencies:
- cssesc "^3.0.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
postcss-syntax@^0.28.0:
version "0.28.0"
resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.28.0.tgz#e17572a7dcf5388f0c9b68232d2dad48fa7f0b12"
@@ -8348,7 +8503,7 @@ postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-postcss@7.x.x, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.6, postcss@^7.0.7:
+postcss@7.x.x, postcss@^7.0.1, postcss@^7.0.7:
version "7.0.24"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.24.tgz#972c3c5be431b32e40caefe6c81b5a19117704c2"
integrity sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==
@@ -8409,6 +8564,14 @@ prettier@^1.14.2, prettier@^1.16.4:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
+pretty-format@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-24.0.0-alpha.6.tgz#25ad2fa46b342d6278bf241c5d2114d4376fbac1"
+ integrity sha1-Ja0vpGs0LWJ4vyQcXSEU1DdvusE=
+ dependencies:
+ ansi-regex "^4.0.0"
+ ansi-styles "^3.2.0"
+
pretty-format@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
@@ -8417,11 +8580,6 @@ pretty-format@^23.6.0:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
-pretty-format@^4.2.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-4.3.1.tgz#530be5c42b3c05b36414a7a2a4337aa80acd0e8d"
- integrity sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=
-
private@^0.1.6, private@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
@@ -8569,13 +8727,13 @@ react-deep-force-update@^1.0.0:
resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1"
integrity sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==
-react-devtools-core@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-3.1.0.tgz#eec2e9e0e6edb77772e2bfc7d286a296f55a261a"
- integrity sha512-fO6SmpW16E9u6Lb6zQOHrjhJXGBNz+cJ0/a9cSF55nXfL0sQLlvYJR8DpU7f4rMUrVnVineg4XQyYYBZicmhJg==
+react-devtools-core@^3.6.0:
+ version "3.6.3"
+ resolved "https://registry.npm.taobao.org/react-devtools-core/download/react-devtools-core-3.6.3.tgz#977d95b684c6ad28205f0c62e1e12c5f16675814"
+ integrity sha1-l32VtoTGrSggXwxi4eEsXxZnWBQ=
dependencies:
shell-quote "^1.6.1"
- ws "^2.0.3"
+ ws "^3.3.1"
react-is@^16.8.1:
version "16.11.0"
@@ -8587,68 +8745,59 @@ react-native-known-styling-properties@^1.0.4:
resolved "https://registry.yarnpkg.com/react-native-known-styling-properties/-/react-native-known-styling-properties-1.0.5.tgz#dd99690d579c5136541e1df836e75088af6e7356"
integrity sha512-PKRW5v9Um2/7mIaUy2fxg3XugP/QyVoqnzpnkY6AUTIlfyC2c/PeEhDwEVJgTotWiFCIj2lUACQ2lsG5zp0NUQ==
-react-native@^0.55.4:
- version "0.55.4"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.55.4.tgz#eecffada3750a928e2ddd07cf11d857ae9751c30"
- integrity sha512-J6U2KeuFIfH0I6kbwymQWe7Yw7AVzPq22tq6z5VmvcYQiKbqKkvjJukgHqR6keRreHjohEaWP5Gi007IGFJdyQ==
+react-native@^0.59.9:
+ version "0.59.10"
+ resolved "https://registry.npm.taobao.org/react-native/download/react-native-0.59.10.tgz?cache=0&sync_timestamp=1576689336916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-native%2Fdownload%2Freact-native-0.59.10.tgz#352f381e382f93a0403be499c9e384bf51c2591c"
+ integrity sha1-NS84Hjgvk6BAO+SZyeOEv1HCWRw=
dependencies:
+ "@babel/runtime" "^7.0.0"
+ "@react-native-community/cli" "^1.2.1"
absolute-path "^0.0.0"
art "^0.10.0"
- babel-core "^6.24.1"
- babel-plugin-syntax-trailing-function-commas "^6.20.0"
- babel-plugin-transform-async-to-generator "6.16.0"
- babel-plugin-transform-class-properties "^6.18.0"
- babel-plugin-transform-exponentiation-operator "^6.5.0"
- babel-plugin-transform-flow-strip-types "^6.21.0"
- babel-plugin-transform-object-rest-spread "^6.20.2"
- babel-register "^6.24.1"
- babel-runtime "^6.23.0"
base64-js "^1.1.2"
- chalk "^1.1.1"
+ chalk "^2.4.1"
commander "^2.9.0"
compression "^1.7.1"
connect "^3.6.5"
create-react-class "^15.6.3"
debug "^2.2.0"
denodeify "^1.2.1"
- envinfo "^3.0.0"
errorhandler "^1.5.0"
- eslint-plugin-react-native "^3.2.1"
+ escape-string-regexp "^1.0.5"
event-target-shim "^1.0.5"
- fbjs "^0.8.14"
- fbjs-scripts "^0.8.1"
+ fbjs "^1.0.0"
+ fbjs-scripts "^1.0.0"
fs-extra "^1.0.0"
glob "^7.1.1"
graceful-fs "^4.1.3"
inquirer "^3.0.6"
+ invariant "^2.2.4"
lodash "^4.17.5"
- metro "^0.30.0"
- metro-core "^0.30.0"
+ metro-babel-register "0.51.0"
+ metro-react-native-babel-transformer "0.51.0"
mime "^1.3.4"
minimist "^1.2.0"
mkdirp "^0.5.1"
morgan "^1.9.0"
- node-fetch "^1.3.3"
+ node-fetch "^2.2.0"
node-notifier "^5.2.1"
npmlog "^2.0.4"
+ nullthrows "^1.1.0"
opn "^3.0.2"
optimist "^0.6.1"
- plist "^1.2.0"
- pretty-format "^4.2.1"
+ plist "^3.0.0"
+ pretty-format "24.0.0-alpha.6"
promise "^7.1.1"
prop-types "^15.5.8"
react-clone-referenced-element "^1.0.1"
- react-devtools-core "3.1.0"
- react-timer-mixin "^0.13.2"
+ react-devtools-core "^3.6.0"
regenerator-runtime "^0.11.0"
rimraf "^2.5.4"
semver "^5.0.3"
serve-static "^1.13.1"
shell-quote "1.6.1"
stacktrace-parser "^0.1.3"
- whatwg-fetch "^1.0.0"
- ws "^1.1.0"
- xcode "^0.9.1"
+ ws "^1.1.5"
xmldoc "^0.4.0"
yargs "^9.0.0"
@@ -8660,11 +8809,6 @@ react-proxy@^1.1.7:
lodash "^4.6.1"
react-deep-force-update "^1.0.0"
-react-timer-mixin@^0.13.2:
- version "0.13.4"
- resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz#75a00c3c94c13abe29b43d63b4c65a88fc8264d3"
- integrity sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q==
-
react-transform-hmr@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb"
@@ -8794,7 +8938,14 @@ redent@^2.0.0:
indent-string "^3.0.0"
strip-indent "^2.0.0"
-regenerate@^1.2.1:
+regenerate-unicode-properties@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
+ integrity sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=
+ dependencies:
+ regenerate "^1.4.0"
+
+regenerate@^1.2.1, regenerate@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
@@ -8863,6 +9014,18 @@ regexpu-core@^2.0.0:
regjsgen "^0.2.0"
regjsparser "^0.1.4"
+regexpu-core@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
+ integrity sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY=
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.1.0"
+ regjsgen "^0.5.0"
+ regjsparser "^0.6.0"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.1.0"
+
registry-auth-token@^3.0.1, registry-auth-token@^3.3.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e"
@@ -8883,6 +9046,11 @@ regjsgen@^0.2.0:
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
+regjsgen@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz?cache=0&sync_timestamp=1571560410206&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
+ integrity sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw=
+
regjsparser@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
@@ -8890,6 +9058,13 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
+regjsparser@^0.6.0:
+ version "0.6.2"
+ resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.2.tgz?cache=0&sync_timestamp=1576908177912&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96"
+ integrity sha1-/WLHU5kUZ9nR/+Cp9n8npSkCS5Y=
+ dependencies:
+ jsesc "~0.5.0"
+
remark-parse@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95"
@@ -9105,6 +9280,13 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.
dependencies:
path-parse "^1.0.6"
+resolve@^1.8.1:
+ version "1.14.1"
+ resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.14.1.tgz?cache=0&sync_timestamp=1577139902451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff"
+ integrity sha1-ngGMVA/PDEJ9Z4uZMcv0XphLyv8=
+ dependencies:
+ path-parse "^1.0.6"
+
responselike@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@@ -9128,14 +9310,6 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
-restore-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
- integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
- dependencies:
- onetime "^5.1.0"
- signal-exit "^3.0.2"
-
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
@@ -9196,6 +9370,13 @@ rx-lite@^3.1.2:
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
+rxjs@^5.5.2:
+ version "5.5.12"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
+ integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==
+ dependencies:
+ symbol-observable "1.0.1"
+
rxjs@^6.4.0:
version "6.5.3"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
@@ -9213,11 +9394,6 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2,
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
-safe-buffer@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
- integrity sha1-0mPKVGls2KMGtcplUekt5XkY++c=
-
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -9246,6 +9422,23 @@ sane@^2.0.0:
optionalDependencies:
fsevents "^1.2.3"
+sane@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/sane/download/sane-3.1.0.tgz#995193b7dc1445ef1fe41ddfca2faf9f111854c6"
+ integrity sha1-mVGTt9wURe8f5B3fyi+vnxEYVMY=
+ dependencies:
+ anymatch "^2.0.0"
+ capture-exit "^1.2.0"
+ exec-sh "^0.2.0"
+ execa "^1.0.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+ watch "~0.18.0"
+ optionalDependencies:
+ fsevents "^1.2.3"
+
sax@>=0.6.0, sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -9270,7 +9463,7 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
-"semver@2 || 3 || 4 || 5", semver@5.x, semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9385,14 +9578,14 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-simple-plist@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.2.1.tgz#71766db352326928cf3a807242ba762322636723"
- integrity sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=
+simple-plist@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/simple-plist/download/simple-plist-1.1.0.tgz?cache=0&sync_timestamp=1573092499539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsimple-plist%2Fdownload%2Fsimple-plist-1.1.0.tgz#8354ab63eb3922a054c78ce96c209c532e907a23"
+ integrity sha1-g1SrY+s5IqBUx4zpbCCcUy6QeiM=
dependencies:
- bplist-creator "0.0.7"
- bplist-parser "0.1.1"
- plist "2.0.1"
+ bplist-creator "0.0.8"
+ bplist-parser "0.2.0"
+ plist "^3.0.1"
sisteransi@^0.1.1:
version "0.1.1"
@@ -9404,6 +9597,11 @@ slash@^1.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=
+
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
@@ -9494,7 +9692,15 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.6, source-map-support@^0.5.9:
+source-map-support@^0.5.16:
+ version "0.5.16"
+ resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
+ integrity sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-support@^0.5.6:
version "0.5.13"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
@@ -9664,15 +9870,6 @@ string-width@^3.0.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
-string-width@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
- integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.0"
-
string.prototype.padend@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
@@ -9743,13 +9940,6 @@ strip-ansi@^5.1.0, strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
-strip-ansi@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
- integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
- dependencies:
- ansi-regex "^5.0.0"
-
strip-bom-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca"
@@ -9816,15 +10006,15 @@ style-search@^0.1.0:
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=
-stylelint-config-taro-rn@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/stylelint-config-taro-rn/-/stylelint-config-taro-rn-1.3.29.tgz#1799cab68ad57ab10d552ba64989c3cf45bfd1f7"
- integrity sha512-P7GQajFb34iCIJRSvXN0Zp88R8T24xH/73A4FdM3iS54HiCFTex566oFxd5I+A4BiVeSEaNQxjrBW1HROVDMdw==
+stylelint-config-taro-rn@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/stylelint-config-taro-rn/download/stylelint-config-taro-rn-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772270072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylelint-config-taro-rn%2Fdownload%2Fstylelint-config-taro-rn-2.0.0-beta.13.tgz#bfd885b1439bde672b18eadf88308b347530eebe"
+ integrity sha1-v9iFsUOb3mcrGOrfiDCLNHUw7r4=
-stylelint-taro-rn@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/stylelint-taro-rn/-/stylelint-taro-rn-1.3.29.tgz#b4a7c76e226f30f256dff7b5b0cd52831c630b51"
- integrity sha512-3vcYCc0IJpSQcKjjFV1ssvySlDMq64jILs2PfA+udeai3k/JME4XttEiFLf3/qgOFHHTtDpDoaLAYbBpXdYaig==
+stylelint-taro-rn@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/stylelint-taro-rn/download/stylelint-taro-rn-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772270269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstylelint-taro-rn%2Fdownload%2Fstylelint-taro-rn-2.0.0-beta.13.tgz#efcb6c9d38c4eecdf27bf36e599694265f43fc80"
+ integrity sha1-78tsnTjE7s3ye/NuWZaUJl9D/IA=
dependencies:
react-native-known-styling-properties "^1.0.4"
@@ -9915,6 +10105,11 @@ svg-tags@^1.0.0:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
+symbol-observable@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
+ integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
+
symbol-tree@^3.2.2:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -9942,6 +10137,11 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
+tapable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+ integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
+
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
@@ -9968,10 +10168,10 @@ tar@^4:
safe-buffer "^5.1.2"
yallist "^3.0.3"
-taro-css-to-react-native@1.3.29:
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/taro-css-to-react-native/-/taro-css-to-react-native-1.3.29.tgz#bd7184ad2eb0c988fbf0235887154e05b43c63d3"
- integrity sha512-Mw55enyS7Sca+L6Kc+z3x7RVGZeCOqDyS04FEXIXBL3kcCu0hKuPd5A79Hz99atTXjf7mpPdAGIgH5tpCrdDxQ==
+taro-css-to-react-native@2.0.0-beta.13:
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/taro-css-to-react-native/download/taro-css-to-react-native-2.0.0-beta.13.tgz#3661ec74e4343194a9d1575c7de8a8f1478b1a5d"
+ integrity sha1-NmHsdOQ0MZSp0Vdcfeio8UeLGl0=
dependencies:
camelize "^1.0.0"
css "^2.2.4"
@@ -10283,11 +10483,6 @@ type-fest@^0.7.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-type-fest@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
- integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -10317,9 +10512,9 @@ uglify-es@^3.1.9:
source-map "~0.6.1"
uglify-js@^3.1.4:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.4.tgz#88cc880c6ed5cf9868fdfa0760654e7bed463f1d"
- integrity sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
+ integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
dependencies:
commander "~2.20.3"
source-map "~0.6.1"
@@ -10355,6 +10550,29 @@ unherit@^1.0.4:
inherits "^2.0.1"
xtend "^4.0.1"
+unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+ integrity sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=
+
+unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ integrity sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
+ integrity sha1-W0tCbgjROoA2Xg1lesemwexGonc=
+
+unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
+ integrity sha1-qcxsx85joKMCP8meNBuUQx1AWlc=
+
unified@^6.0.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba"
@@ -10515,7 +10733,7 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-util-deprecate@1.0.2, util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
@@ -10533,11 +10751,6 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-uuid@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
- integrity sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=
-
uuid@^3.3.2:
version "3.3.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
@@ -10717,11 +10930,6 @@ whatwg-fetch@>=0.10.0:
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
-whatwg-fetch@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319"
- integrity sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk=
-
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
@@ -10779,13 +10987,6 @@ widest-line@^2.0.0:
dependencies:
string-width "^2.1.1"
-win-release@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/win-release/-/win-release-1.1.1.tgz#5fa55e02be7ca934edfc12665632e849b72e5209"
- integrity sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=
- dependencies:
- semver "^5.0.1"
-
wordwrap@^1.0.0, wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
@@ -10841,20 +11042,21 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-ws@^1.1.0:
+ws@^1.1.0, ws@^1.1.5:
version "1.1.5"
- resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
- integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
+ resolved "https://registry.npm.taobao.org/ws/download/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
+ integrity sha1-y9nm514J/F0skAFfIfDECHXg3VE=
dependencies:
options ">=0.0.5"
ultron "1.0.x"
-ws@^2.0.3:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80"
- integrity sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=
+ws@^3.3.1:
+ version "3.3.3"
+ resolved "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ integrity sha1-8c+E/i1ekB686U767OeF8YeiKPI=
dependencies:
- safe-buffer "~5.0.1"
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
ultron "~1.1.0"
ws@^5.2.0:
@@ -10869,14 +11071,13 @@ x-is-string@^0.1.0:
resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
-xcode@^0.9.1:
- version "0.9.3"
- resolved "https://registry.yarnpkg.com/xcode/-/xcode-0.9.3.tgz#910a89c16aee6cc0b42ca805a6d0b4cf87211cf3"
- integrity sha1-kQqJwWrubMC0LKgFptC0z4chHPM=
+xcode@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/xcode/download/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe"
+ integrity sha1-urZKfpVLtQyo0Z2n4JUxxlpD7P4=
dependencies:
- pegjs "^0.10.0"
- simple-plist "^0.2.1"
- uuid "3.0.1"
+ simple-plist "^1.0.0"
+ uuid "^3.3.2"
xdg-basedir@^3.0.0:
version "3.0.0"
@@ -10897,17 +11098,10 @@ xml2js@^0.4.19:
util.promisify "~1.0.0"
xmlbuilder "~11.0.0"
-xmlbuilder@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.0.0.tgz#98b8f651ca30aa624036f127d11cc66dc7b907a3"
- integrity sha1-mLj2UcowqmJANvEn0RzGbce5B6M=
- dependencies:
- lodash "^3.5.0"
-
-xmlbuilder@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
- integrity sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=
+xmlbuilder@^9.0.7:
+ version "9.0.7"
+ resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+ integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xmlbuilder@~11.0.0:
version "11.0.1"
diff --git a/packages/taro-components-qa/package.json b/packages/taro-components-qa/package.json
index 65f136b8d23a..08ffb64197bd 100644
--- a/packages/taro-components-qa/package.json
+++ b/packages/taro-components-qa/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/components-qa",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "多端解决方案基础组件(快应用)",
"main": "./index.js",
"files": [
diff --git a/packages/taro-components-qa/src/common/css/common.css b/packages/taro-components-qa/src/common/css/common.css
new file mode 100644
index 000000000000..b7c99c57c81e
--- /dev/null
+++ b/packages/taro-components-qa/src/common/css/common.css
@@ -0,0 +1,57 @@
+.index {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.secondary {
+ flex-direction: column;
+}
+
+.plain {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.full {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.small {
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+}
+
+.taro-button-txt {
+ text-overflow: ellipsis;
+ color: #FFF;
+ font-size: 36px;
+}
+
+.font {
+ color: #FFF;
+ font-size: 30px;
+ text-align: center;
+}
+
+.txt {
+ text-align: center;
+ font-size: 30px;
+ color: #000000;
+}
+
+.txt-white {
+ text-align: center;
+ font-size: 30px;
+ color: #ffffff;
+}
+
+.txt-blue {
+ text-align: center;
+ font-size: 30px;
+ color: #6190E8;
+}
\ No newline at end of file
diff --git a/packages/taro-components-qa/src/components/taro-button/img.js b/packages/taro-components-qa/src/components/taro-button/img.js
deleted file mode 100644
index 619081d152a4..000000000000
--- a/packages/taro-components-qa/src/components/taro-button/img.js
+++ /dev/null
@@ -1 +0,0 @@
-export default 'data:image/gif;base64,R0lGODlhgACAAKIAAP///93d3bu7u5mZmQAA/wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBQAEACwCAAIAfAB8AAAD/0i63P4wygYqmDjrzbtflvWNZGliYXiubKuloivPLlzReD7al+7/Eh5wSFQIi8hHYBkwHUmD6CD5YTJLz49USuVYraRsZ7vtar7XnQ1Kjpoz6LRHvGlz35O4nEPP2O94EnpNc2sef1OBGIOFMId/inB6jSmPdpGScR19EoiYmZobnBCIiZ95k6KGGp6ni4wvqxilrqBfqo6skLW2YBmjDa28r6Eosp27w8Rov8ekycqoqUHODrTRvXsQwArC2NLF29UM19/LtxO5yJd4Au4CK7DUNxPebG4e7+8n8iv2WmQ66BtoYpo/dvfacBjIkITBE9DGlMvAsOIIZjIUAixliv9ixYZVtLUos5GjwI8gzc3iCGghypQqrbFsme8lwZgLZtIcYfNmTJ34WPTUZw5oRxdD9w0z6iOpO15MgTh1BTTJUKos39jE+o/KS64IFVmsFfYT0aU7capdy7at27dw48qdS7eu3bt480I02vUbX2F/JxYNDImw4GiGE/P9qbhxVpWOI/eFKtlNZbWXuzlmG1mv58+gQ4seTbq06dOoU6vGQZJy0FNlMcV+czhQ7SQmYd8eMhPs5BxVdfcGEtV3buDBXQ+fURxx8oM6MT9P+Fh6dOrH2zavc13u9JXVJb520Vp8dvC76wXMuN5Sepm/1WtkEZHDefnzR9Qvsd9+/wi8+en3X0ntYVcSdAE+UN4zs7ln24CaLagghIxBaGF8kFGoIYV+Ybghh841GIyI5ICIFoklJsigihmimJOLEbLYIYwxSgigiZ+8l2KB+Ml4oo/w8dijjcrouCORKwIpnJIjMnkkksalNeR4fuBIm5UEYImhIlsGCeWNNJphpJdSTlkml1jWeOY6TnaRpppUctcmFW9mGSaZceYopH9zkjnjUe59iR5pdapWaGqHopboaYua1qije67GJ6CuJAAAIfkEBQUABAAsCgACAFcAMAAAA/9Iutz+ML5Ag7w46z0r5WAoSp43nihXVmnrdusrv+s332dt4Tyo9yOBUJD6oQBIQGs4RBlHySSKyczVTtHoidocPUNZaZAr9F5FYbGI3PWdQWn1mi36buLKFJvojsHjLnshdhl4L4IqbxqGh4gahBJ4eY1kiX6LgDN7fBmQEJI4jhieD4yhdJ2KkZk8oiSqEaatqBekDLKztBG2CqBACq4wJRi4PZu1sA2+v8C6EJexrBAD1AOBzsLE0g/V1UvYR9sN3eR6lTLi4+TlY1wz6Qzr8u1t6FkY8vNzZTxaGfn6mAkEGFDgL4LrDDJDyE4hEIbdHB6ESE1iD4oVLfLAqPETIsOODwmCDJlv5MSGJklaS6khAQAh+QQFBQAEACwfAAIAVwAwAAAD/0i63P5LSAGrvTjrNuf+YKh1nWieIumhbFupkivPBEzR+GnnfLj3ooFwwPqdAshAazhEGUXJJIrJ1MGOUamJ2jQ9QVltkCv0XqFh5IncBX01afGYnDqD40u2z76JK/N0bnxweC5sRB9vF34zh4gjg4uMjXobihWTlJUZlw9+fzSHlpGYhTminKSepqebF50NmTyor6qxrLO0L7YLn0ALuhCwCrJAjrUqkrjGrsIkGMW/BMEPJcphLgDaABjUKNEh29vdgTLLIOLpF80s5xrp8ORVONgi8PcZ8zlRJvf40tL8/QPYQ+BAgjgMxkPIQ6E6hgkdjoNIQ+JEijMsasNY0RQix4gKP+YIKXKkwJIFF6JMudFEAgAh+QQFBQAEACw8AAIAQgBCAAAD/kg0PPowykmrna3dzXvNmSeOFqiRaGoyaTuujitv8Gx/661HtSv8gt2jlwIChYtc0XjcEUnMpu4pikpv1I71astytkGh9wJGJk3QrXlcKa+VWjeSPZHP4Rtw+I2OW81DeBZ2fCB+UYCBfWRqiQp0CnqOj4J1jZOQkpOUIYx/m4oxg5cuAaYBO4Qop6c6pKusrDevIrG2rkwptrupXB67vKAbwMHCFcTFxhLIt8oUzLHOE9Cy0hHUrdbX2KjaENzey9Dh08jkz8Tnx83q66bt8PHy8/T19vf4+fr6AP3+/wADAjQmsKDBf6AOKjS4aaHDgZMeSgTQcKLDhBYPEswoA1BBAgAh+QQFBQAEACxOAAoAMABXAAAD7Ei6vPOjyUkrhdDqfXHm4OZ9YSmNpKmiqVqykbuysgvX5o2HcLxzup8oKLQQix0UcqhcVo5ORi+aHFEn02sDeuWqBGCBkbYLh5/NmnldxajX7LbPBK+PH7K6narfO/t+SIBwfINmUYaHf4lghYyOhlqJWgqDlAuAlwyBmpVnnaChoqOkpaanqKmqKgGtrq+wsbA1srW2ry63urasu764Jr/CAb3Du7nGt7TJsqvOz9DR0tPU1TIA2ACl2dyi3N/aneDf4uPklObj6OngWuzt7u/d8fLY9PXr9eFX+vv8+PnYlUsXiqC3c6PmUUgAACH5BAUFAAQALE4AHwAwAFcAAAPpSLrc/m7IAau9bU7MO9GgJ0ZgOI5leoqpumKt+1axPJO1dtO5vuM9yi8TlAyBvSMxqES2mo8cFFKb8kzWqzDL7Xq/4LB4TC6bz1yBes1uu9uzt3zOXtHv8xN+Dx/x/wJ6gHt2g3Rxhm9oi4yNjo+QkZKTCgGWAWaXmmOanZhgnp2goaJdpKGmp55cqqusrZuvsJays6mzn1m4uRAAvgAvuBW/v8GwvcTFxqfIycA3zA/OytCl0tPPO7HD2GLYvt7dYd/ZX99j5+Pi6tPh6+bvXuTuzujxXens9fr7YPn+7egRI9PPHrgpCQAAIfkEBQUABAAsPAA8AEIAQgAAA/lIutz+UI1Jq7026h2x/xUncmD5jehjrlnqSmz8vrE8u7V5z/m5/8CgcEgsGo/IpHLJbDqf0Kh0ShBYBdTXdZsdbb/Yrgb8FUfIYLMDTVYz2G13FV6Wz+lX+x0fdvPzdn9WeoJGAYcBN39EiIiKeEONjTt0kZKHQGyWl4mZdREAoQAcnJhBXBqioqSlT6qqG6WmTK+rsa1NtaGsuEu6o7yXubojsrTEIsa+yMm9SL8osp3PzM2cStDRykfZ2tfUtS/bRd3ewtzV5pLo4eLjQuUp70Hx8t9E9eqO5Oku5/ztdkxi90qPg3x2EMpR6IahGocPCxp8AGtigwQAIfkEBQUABAAsHwBOAFcAMAAAA/9Iutz+MMo36pg4682J/V0ojs1nXmSqSqe5vrDXunEdzq2ta3i+/5DeCUh0CGnF5BGULC4tTeUTFQVONYAs4CfoCkZPjFar83rBx8l4XDObSUL1Ott2d1U4yZwcs5/xSBB7dBMBhgEYfncrTBGDW4WHhomKUY+QEZKSE4qLRY8YmoeUfkmXoaKInJ2fgxmpqqulQKCvqRqsP7WooriVO7u8mhu5NacasMTFMMHCm8qzzM2RvdDRK9PUwxzLKdnaz9y/Kt8SyR3dIuXmtyHpHMcd5+jvWK4i8/TXHff47SLjQvQLkU+fG29rUhQ06IkEG4X/Rryp4mwUxSgLL/7IqFETB8eONT6ChCFy5ItqJomES6kgAQAh+QQFBQAEACwKAE4AVwAwAAAD/0i63A4QuEmrvTi3yLX/4MeNUmieITmibEuppCu3sDrfYG3jPKbHveDktxIaF8TOcZmMLI9NyBPanFKJp4A2IBx4B5lkdqvtfb8+HYpMxp3Pl1qLvXW/vWkli16/3dFxTi58ZRcChwIYf3hWBIRchoiHiotWj5AVkpIXi4xLjxiaiJR/T5ehoomcnZ+EGamqq6VGoK+pGqxCtaiiuJVBu7yaHrk4pxqwxMUzwcKbyrPMzZG90NGDrh/JH8t72dq3IN1jfCHb3L/e5ebh4ukmxyDn6O8g08jt7tf26ybz+m/W9GNXzUQ9fm1Q/APoSWAhhfkMAmpEbRhFKwsvCsmosRIHx444PoKcIXKkjIImjTzjkQAAIfkEBQUABAAsAgA8AEIAQgAAA/VIBNz+8KlJq72Yxs1d/uDVjVxogmQqnaylvkArT7A63/V47/m2/8CgcEgsGo/IpHLJbDqf0Kh0Sj0FroGqDMvVmrjgrDcTBo8v5fCZki6vCW33Oq4+0832O/at3+f7fICBdzsChgJGeoWHhkV0P4yMRG1BkYeOeECWl5hXQ5uNIAOjA1KgiKKko1CnqBmqqk+nIbCkTq20taVNs7m1vKAnurtLvb6wTMbHsUq4wrrFwSzDzcrLtknW16tI2tvERt6pv0fi48jh5h/U6Zs77EXSN/BE8jP09ZFA+PmhP/xvJgAMSGBgQINvEK5ReIZhQ3QEMTBLAAAh+QQFBQAEACwCAB8AMABXAAAD50i6DA4syklre87qTbHn4OaNYSmNqKmiqVqyrcvBsazRpH3jmC7yD98OCBF2iEXjBKmsAJsWHDQKmw571l8my+16v+CweEwum8+hgHrNbrvbtrd8znbR73MVfg838f8BeoB7doN0cYZvaIuMjY6PkJGSk2gClgJml5pjmp2YYJ6dX6GeXaShWaeoVqqlU62ir7CXqbOWrLafsrNctjIDwAMWvC7BwRWtNsbGFKc+y8fNsTrQ0dK3QtXAYtrCYd3eYN3c49/a5NVj5eLn5u3s6e7x8NDo9fbL+Mzy9/T5+tvUzdN3Zp+GBAAh+QQJBQAEACwCAAIAfAB8AAAD/0i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdArcQK2TOL7/nl4PSMwIfcUk5YhUOh3M5nNKiOaoWCuWqt1Ou16l9RpOgsvEMdocXbOZ7nQ7DjzTaeq7zq6P5fszfIASAYUBIYKDDoaGIImKC4ySH3OQEJKYHZWWi5iZG0ecEZ6eHEOio6SfqCaqpaytrpOwJLKztCO2jLi1uoW8Ir6/wCHCxMG2x7muysukzb230M6H09bX2Nna29zd3t/g4cAC5OXm5+jn3Ons7eba7vHt2fL16tj2+QL0+vXw/e7WAUwnrqDBgwgTKlzIsKHDh2gGSBwAccHEixAvaqTYcFCjRoYeNyoM6REhyZIHT4o0qPIjy5YTTcKUmHImx5cwE85cmJPnSYckK66sSAAj0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gwxZJAAA7'
diff --git a/packages/taro-components-qa/src/components/taro-button/index.ux b/packages/taro-components-qa/src/components/taro-button/index.ux
index b65dfb3edb07..3d80bfeecbb6 100644
--- a/packages/taro-components-qa/src/components/taro-button/index.ux
+++ b/packages/taro-components-qa/src/components/taro-button/index.ux
@@ -4,104 +4,189 @@
disabled="{{disabled}}"
style="{{customstyle}}"
>
+
+
+
+
+ onInit() {
+ this.btnClass = `taro-button taro-button-${this.type} taro-button-${this.size} ${this.plain ? `taro-button-plain` : `taro-button-noplain`} ${this.disabled ? `taro-button-disabled` : `taro-button-nodisabled`} ${this.circle ? `taro-button-circle` : `taro-button-nocircle`} ${this.className}`;
+ this.imageClass = `taro-spin taro-spin-${this.size}`;
+ this.spinType = this.spin;
+ this.circularClass = `taro-circular taro-circular-${this.type} taro-circular-${this.size}`;
+ },
+
+ onclick() {}
+};
+ border-radius: 7px;
+ border: 1px solid #AFAFAF;
+ background-color: #F7F7F7;
+ }
+ .taro-button:active {
+ border-width: 1px;
+ border-color: lightslategray;
+ background-color: #F6F6E5;
+ }
+ .taro-button-small {
+ margin-right: 20px;
+ height: 56px;
+ width: 116px;
+ }
+ .taro-button-full {
+ border-radius: 0px;
+ width: 100%;
+ }
+ .taro-button-circle {
+ border-radius: 30px;
+ }
+ .taro-button-primary{
+ color: #FFF;
+ border: 1px solid #6190E8;
+ background-color: #6190E8;
+ }
+ .taro-button-primary:active {
+ color: #FFF;
+ border: 1px solid #78A4F4;
+ background-color: #78A4F4;
+ }
+ .taro-button-secondary{
+ color: #6190E8;
+ border: 1.5px solid #6190E8;
+ background-color: #FFF;
+ }
+ .taro-button-secondary:active {
+ color: #6190E8;
+ border: 1.5px solid #78A4F4;
+ background-color: #FFF;
+ }
+ .taro-button-danger {
+ background-color: #EF4F4F;
+ border-color: #EF4F4F;
+ color: #FFF;
+ }
+ .taro-button-danger:active {
+ background-color: #ab2048;
+ border-color: #ab2048;
+ color: #FFF;
+ }
+ .taro-button-plain {
+ opacity: 0.6;
+ }
+ .taro-button-disabled {
+ opacity: 0.3;
+ }
+ .taro-spin {
+ margin-right: 10px;
+ margin-top: 10px;
+ height: 60px;
+ }
+ .taro-spin-small {
+ margin-left: 5px;
+ margin-top: 8px;
+ margin-bottom: 5px;
+ height: 40px;
+ }
+ .taro-circular {
+ margin-right: 10px;
+ margin-left: 60px;
+ margin-top: 15px;
+ flex-direction: column;
+ align-items: center;
+ height: 50px;
+ color: #09ba07
+ }
+ .taro-circular-primary {
+ color: #FFF;
+ }
+ .taro-circular-small {
+ margin-left: 3px;
+ margin-top: 12px;
+ margin-bottom: 5px;
+ height: 32px;
+ }
+
\ No newline at end of file
diff --git a/packages/taro-components-qa/src/components/taro-page/index.ux b/packages/taro-components-qa/src/components/taro-page/index.ux
index 3bd31bcc8cb0..a0ba59ca9558 100644
--- a/packages/taro-components-qa/src/components/taro-page/index.ux
+++ b/packages/taro-components-qa/src/components/taro-page/index.ux
@@ -64,6 +64,13 @@
`
+ }
+ })
+ if (hitScriptItem) {
+ delete compilation.assets[hitScriptItem]
+ }
+ const quickappJSON = generateQuickAppManifest({
+ appConfig: this.appConfig,
+ designWidth: this.options.designWidth,
+ pageConfigs: this.pageConfigs,
+ quickappJSON: this.options.quickappJSON
+ })
+ const quickappJSONStr = JSON.stringify(quickappJSON).replace(/\\\\/g, '/')
+ compilation.assets['./manifest.json'] = {
+ size: () => quickappJSONStr.length,
+ source: () => quickappJSONStr
+ }
+ }
+ if (template && (
+ !this.changedFile
+ || this.changedFile === item
+ || this.changedFileType === PARSE_AST_TYPE.ENTRY
+ || Array.from(this.addedComponents).some(component => component.path === item))) {
+ compilation.assets[templatePath] = {
+ size: () => template!.length,
+ source: () => template
+ }
+ }
+ if (itemInfo.style) {
+ compilation.assets[stylePath] = {
+ size: () => itemInfo.style!.length,
+ source: () => itemInfo.style
+ }
+ }
+ if (itemInfo.taroSelfComponents) {
+ itemInfo.taroSelfComponents.forEach(item => {
+ if (fs.existsSync(item.path)) {
+ const content = fs.readFileSync(item.path).toString()
+ let relativePath
+ if (NODE_MODULES_REG.test(item.path)) {
+ relativePath = item.path.replace(this.context, '').replace(/node_modules/gi, 'npm')
+ } else {
+ relativePath = item.path.replace(this.sourceDir, '')
+ }
+ compilation.assets[relativePath] = {
+ size: () => content.length,
+ source: () => content
+ }
+ }
+ })
+ }
+ })
+
+ this.tabBarIcons.forEach(icon => {
+ const iconPath = path.resolve(this.sourceDir, icon)
+ if (fs.existsSync(iconPath)) {
+ const iconStat = fs.statSync(iconPath)
+ const iconSource = fs.readFileSync(iconPath)
+ compilation.assets[icon] = {
+ size: () => iconStat.size,
+ source: () => iconSource
+ }
+ }
+ })
+
+ this.quickappStyleFiles.forEach(item => {
+ if (fs.existsSync(item.path)) {
+ const styleContent = fs.readFileSync(item.path).toString()
+ let relativePath
+ if (NODE_MODULES_REG.test(item.path)) {
+ relativePath = item.path.replace(this.context, '').replace(/node_modules/gi, 'npm').replace(/\\\\/g, '/')
+ }
+ else {
+ relativePath = item.path.replace(this.sourceDir, '').replace(/\\\\/g, '/')
+ }
+ compilation.assets[relativePath] = {
+ size: () => styleContent.length,
+ source: () => styleContent
+ }
+ }
+ })
+ }
+
+ addTarBarFilesToDependencies (compilation: webpack.compilation.Compilation) {
+ const { fileDependencies } = compilation
+ this.tabBarIcons.forEach(icon => {
+ if (!fileDependencies.has(icon)) {
+ fileDependencies.add(icon)
+ }
+ })
+ }
+
+ transferFileContent (compiler: webpack.Compiler) {
+ Object.keys(taroFileTypeMap).forEach(item => {
+ const relativePath = item.replace(compiler.context, '')
+ const itemInfo = taroFileTypeMap[item]
+ if (typeof itemInfo.code === 'string') {
+ new VirtualModulePlugin({
+ moduleName: relativePath,
+ contents: itemInfo.code
+ }).apply(compiler)
+ }
+ })
+ }
+
+ run (compiler: webpack.Compiler) {
+ this.errors = []
+ if (!this.options.isBuildPlugin) {
+ this.getPages(compiler)
+ this.getComponents(compiler, this.pages, true)
+ this.addEntries(compiler)
+ } else {
+ this.getPluginFiles(compiler)
+ }
+ this.transferFileContent(compiler)
+ }
+
+ watchRun (compiler: webpack.Compiler, changedFiles: string[]) {
+ const changedFile = changedFiles[0]
+ this.isWatch = true
+ if (REG_SCRIPTS.test(changedFile)) {
+ this.changedFile = changedFile
+ let { type, obj } = this.getChangedFileInfo(changedFile)
+ if (!type) {
+ const code = fs.readFileSync(changedFile).toString()
+ const isTaroComponentRes = isFileToBeTaroComponent(code, changedFile, this.options.buildAdapter)
+ if (isTaroComponentRes.isTaroComponent) {
+ type = PARSE_AST_TYPE.COMPONENT
+ obj = {
+ name: changedFile.replace(this.sourceDir, '').replace(path.extname(changedFile), ''),
+ path: changedFile,
+ isNative: this.isNativePageOrComponent(this.getTemplatePath(changedFile), code)
+ }
+ }
+ }
+ this.changedFileType = type
+ if (this.changedFileType === PARSE_AST_TYPE.ENTRY
+ || this.changedFileType === PARSE_AST_TYPE.PAGE
+ || this.changedFileType === PARSE_AST_TYPE.COMPONENT) {
+ this.components.forEach(component => {
+ if (component.path === changedFile) {
+ this.components.delete(component)
+ }
+ })
+ this.errors = []
+ if (this.changedFileType === PARSE_AST_TYPE.ENTRY) {
+ this.run(compiler)
+ } else {
+ if (!this.options.isBuildPlugin) {
+ this.getComponents(compiler, new Set([obj]), this.changedFileType === PARSE_AST_TYPE.PAGE)
+ if (this.addedComponents.size) {
+ this.addedComponents.forEach(item => {
+ if (item.isNative) {
+ this.addEntry(compiler, item.path, item.name, PARSE_AST_TYPE.NORMAL)
+ } else {
+ this.addEntry(compiler, item.path, item.name, PARSE_AST_TYPE.COMPONENT)
+ }
+ })
+ }
+ } else {
+ this.getPluginFiles(compiler)
+ }
+ this.transferFileContent(compiler)
+ }
+ if (!this.components.has(obj)) {
+ this.components.add(obj)
+ }
+ }
+ }
+ }
+
+ getChangedFileInfo (filePath) {
+ let type
+ let obj
+ this.pages.forEach(page => {
+ if (page.path === filePath) {
+ type = PARSE_AST_TYPE.PAGE
+ obj = page
+ }
+ })
+ this.components.forEach(component => {
+ if (component.path === filePath) {
+ type = PARSE_AST_TYPE.COMPONENT
+ obj = component
+ }
+ })
+ if (filePath === this.appEntry) {
+ type = PARSE_AST_TYPE.ENTRY
+ }
+ return {
+ type,
+ obj
+ }
+ }
+
+ getTargetFilePath (filePath, targetExtname) {
+ const extname = path.extname(filePath)
+ if (extname) {
+ return filePath.replace(extname, targetExtname)
+ }
+ return filePath + targetExtname
+ }
+
+ getTemplatePath (filePath) {
+ return this.getTargetFilePath(filePath, MINI_APP_FILES[this.options.buildAdapter].TEMPL)
+ }
+
+ getConfigPath (filePath) {
+ return this.getTargetFilePath(filePath, MINI_APP_FILES[this.options.buildAdapter].CONFIG)
+ }
+
+ getStylePath (filePath) {
+ return this.getTargetFilePath(filePath, MINI_APP_FILES[this.options.buildAdapter].STYLE)
+ }
+
+ static getTaroFileTypeMap () {
+ return taroFileTypeMap
+ }
+}
diff --git a/packages/taro-mini-runner/src/plugins/TaroLoadChunksPlugin.ts b/packages/taro-mini-runner/src/plugins/TaroLoadChunksPlugin.ts
new file mode 100644
index 000000000000..3bd632eaf7d7
--- /dev/null
+++ b/packages/taro-mini-runner/src/plugins/TaroLoadChunksPlugin.ts
@@ -0,0 +1,93 @@
+import * as path from 'path'
+
+import webpack, { compilation } from 'webpack'
+import { ConcatSource } from 'webpack-sources'
+import { urlToRequest } from 'loader-utils'
+
+import { PARSE_AST_TYPE, REG_STYLE, BUILD_TYPES } from '../utils/constants'
+import { promoteRelativePath } from '../utils'
+
+const PLUGIN_NAME = 'TaroLoadChunksPlugin'
+
+interface IOptions {
+ commonChunks: string[],
+ buildAdapter: BUILD_TYPES,
+ isBuildPlugin: boolean
+}
+
+export default class TaroLoadChunksPlugin {
+ commonChunks: string[]
+ buildAdapter: BUILD_TYPES
+ isBuildPlugin: boolean
+
+ constructor (options: IOptions) {
+ this.commonChunks = options.commonChunks
+ this.buildAdapter = options.buildAdapter
+ this.isBuildPlugin = options.isBuildPlugin
+ }
+
+ apply (compiler: webpack.Compiler) {
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation: any) => {
+ let commonChunks
+ compilation.hooks.afterOptimizeChunks.tap(PLUGIN_NAME, (chunks: compilation.Chunk[]) => {
+ commonChunks = chunks.filter(chunk => this.commonChunks.includes(chunk.name)).reverse()
+ })
+ compilation.chunkTemplate.hooks.renderWithEntry.tap(PLUGIN_NAME, (modules, chunk) => {
+ if (chunk.entryModule) {
+ if (this.isBuildPlugin) {
+ return addRequireToSource(getIdOrName(chunk), modules, commonChunks)
+ }
+ let entryModule = chunk.entryModule.rootModule ? chunk.entryModule.rootModule : chunk.entryModule
+ if (entryModule.miniType === PARSE_AST_TYPE.ENTRY) {
+ compilation.hooks.afterOptimizeAssets.tap(PLUGIN_NAME, assets => {
+ const files = chunk.files
+ files.forEach(item => {
+ if (REG_STYLE.test(item)) {
+ const source = new ConcatSource()
+ const _source = assets[item]._source || assets[item]._value
+ Object.keys(assets).forEach(assetName => {
+ const fileName = path.basename(assetName, path.extname(assetName))
+ if (REG_STYLE.test(assetName) && this.commonChunks.includes(fileName)) {
+ source.add(`@import ${JSON.stringify(urlToRequest(assetName))};`)
+ source.add('\n')
+ source.add(_source)
+ if (assets[item]._source) {
+ assets[item]._source = source
+ } else {
+ assets[item]._value = source.source()
+ }
+ }
+ })
+ }
+ })
+ })
+ return addRequireToSource(getIdOrName(chunk), modules, commonChunks)
+ }
+ if ((this.buildAdapter === BUILD_TYPES.QUICKAPP) &&
+ (entryModule.miniType === PARSE_AST_TYPE.PAGE ||
+ entryModule.miniType === PARSE_AST_TYPE.COMPONENT)) {
+ return addRequireToSource(getIdOrName(chunk), modules, commonChunks)
+ }
+ }
+ })
+ })
+ }
+}
+
+function getIdOrName (chunk) {
+ if (typeof chunk.id === 'string') {
+ return chunk.id
+ }
+ return chunk.name
+}
+
+function addRequireToSource (id, modules, commonChunks) {
+ const source = new ConcatSource()
+ commonChunks.forEach(chunkItem => {
+ source.add(`require(${JSON.stringify(promoteRelativePath(path.relative(id, chunkItem.name)))});\n`)
+ })
+ source.add('\n')
+ source.add(modules)
+ source.add(';')
+ return source
+}
diff --git a/packages/taro-mini-runner/src/plugins/TaroNormalModule.ts b/packages/taro-mini-runner/src/plugins/TaroNormalModule.ts
new file mode 100644
index 000000000000..a5f327d7fd9e
--- /dev/null
+++ b/packages/taro-mini-runner/src/plugins/TaroNormalModule.ts
@@ -0,0 +1,12 @@
+import * as NormalModule from 'webpack/lib/NormalModule'
+import { PARSE_AST_TYPE } from '../utils/constants'
+
+export default class TaroNormalModule extends NormalModule {
+ name: string
+ miniType: PARSE_AST_TYPE
+ constructor (data) {
+ super(data)
+ this.name = data.name
+ this.miniType = data.miniType
+ }
+}
diff --git a/packages/taro-mini-runner/src/plugins/TaroNormalModulesPlugin.ts b/packages/taro-mini-runner/src/plugins/TaroNormalModulesPlugin.ts
new file mode 100644
index 000000000000..7b99d237a959
--- /dev/null
+++ b/packages/taro-mini-runner/src/plugins/TaroNormalModulesPlugin.ts
@@ -0,0 +1,19 @@
+import webpack from 'webpack'
+
+import TaroNormalModule from './TaroNormalModule'
+import TaroSingleEntryDependency from '../dependencies/TaroSingleEntryDependency'
+
+const PLUGIN_NAME = 'TaroNormalModulesPlugin'
+
+export default class TaroNormalModulesPlugin {
+ apply (compiler: webpack.Compiler) {
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
+ normalModuleFactory.hooks.createModule.tap(PLUGIN_NAME, data => {
+ const dependency = data.dependencies[0]
+ if (dependency.constructor === TaroSingleEntryDependency) {
+ return new TaroNormalModule(Object.assign(data, { miniType: dependency.miniType, name: dependency.name }))
+ }
+ })
+ })
+ }
+}
diff --git a/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/VirtualModulePlugin.ts b/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/VirtualModulePlugin.ts
new file mode 100644
index 000000000000..45900d8a2423
--- /dev/null
+++ b/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/VirtualModulePlugin.ts
@@ -0,0 +1,127 @@
+import * as path from 'path'
+import VirtualStats from './virtualStats'
+import webpack from 'webpack'
+
+export default class VirtualModulePlugin {
+ options: {
+ moduleName: string
+ contents: any
+ path?: string
+ }
+ constructor (options) {
+ this.options = options
+ }
+
+ apply (compiler: webpack.Compiler) {
+ const moduleName = this.options.moduleName
+ const ctime = VirtualModulePlugin.statsDate()
+ let modulePath = this.options.path
+
+ let contents
+ if (typeof this.options.contents === 'string') {
+ contents = this.options.contents
+ }
+ if (typeof this.options.contents === 'object') {
+ if (typeof this.options.contents.then !== 'function') {
+ contents = JSON.stringify(this.options.contents)
+ }
+ }
+ if (typeof this.options.contents === 'function') {
+ contents = this.options.contents()
+ }
+ if (typeof contents === 'string') {
+ contents = Promise.resolve(contents)
+ }
+
+ function resolverPlugin(request, cb) {
+ // populate the file system cache with the virtual module
+ const fs = (this && this.fileSystem) || compiler.inputFileSystem
+ const join = (this && this.join) || path.join
+
+ if (typeof request === 'string') {
+ request = cb
+ cb = null
+ }
+
+ if (!modulePath) {
+ modulePath = join(compiler.context, moduleName)
+ }
+
+ const resolve = (data) => {
+ VirtualModulePlugin.populateFilesystem({ fs, modulePath, contents: data, ctime })
+ }
+
+ const resolved = contents.then(resolve)
+ if (!cb) {
+ return
+ }
+
+ resolved.then(() => cb())
+ }
+
+ compiler.hooks.normalModuleFactory.tap('VirtualModulePlugin', (nmf) => {
+ nmf.hooks.beforeResolve.tap('VirtualModulePlugin', resolverPlugin)
+ })
+ }
+
+ static populateFilesystem (options) {
+ const fs = options.fs
+ const modulePath = options.modulePath
+ const contents = options.contents
+ const mapIsAvailable = typeof Map !== 'undefined'
+ const statStorageIsMap = mapIsAvailable && fs._statStorage.data instanceof Map
+ const readFileStorageIsMap = mapIsAvailable && fs._readFileStorage.data instanceof Map
+
+ const stats = VirtualModulePlugin.createStats(options)
+ if (statStorageIsMap) { // enhanced-resolve@3.4.0 or greater
+ fs._statStorage.data.set(modulePath, [null, stats])
+ } else { // enhanced-resolve@3.3.0 or lower
+ fs._statStorage.data[modulePath] = [null, stats]
+ }
+ if (readFileStorageIsMap) { // enhanced-resolve@3.4.0 or greater
+ fs._readFileStorage.data.set(modulePath, [null, contents])
+ } else { // enhanced-resolve@3.3.0 or lower
+ fs._readFileStorage.data[modulePath] = [null, contents]
+ }
+ }
+
+ static statsDate (inputDate?) {
+ if (!inputDate) {
+ inputDate = new Date()
+ }
+ return inputDate.toString()
+ }
+
+ static createStats(options) {
+ if (!options) {
+ options = {}
+ }
+ if (!options.ctime) {
+ options.ctime = VirtualModulePlugin.statsDate()
+ }
+ if (!options.mtime) {
+ options.mtime = VirtualModulePlugin.statsDate()
+ }
+ if (!options.size) {
+ options.size = 0
+ }
+ if (!options.size && options.contents) {
+ options.size = options.contents.length
+ }
+ return new VirtualStats({
+ dev: 8675309,
+ nlink: 1,
+ uid: 501,
+ gid: 20,
+ rdev: 0,
+ blksize: 4096,
+ ino: 44700000,
+ mode: 33188,
+ size: options.size,
+ atime: options.mtime,
+ mtime: options.mtime,
+ ctime: options.ctime,
+ birthtime: options.ctime,
+ })
+ }
+}
diff --git a/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/virtualStats.ts b/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/virtualStats.ts
new file mode 100644
index 000000000000..459dbbfa74b0
--- /dev/null
+++ b/packages/taro-mini-runner/src/plugins/VirtualModulePlugin/virtualStats.ts
@@ -0,0 +1,92 @@
+/**
+ * Used to cache a stats object for the virtual file.
+ * Extracted from the `mock-fs` package.
+ *
+ * @author Tim Schaub http://tschaub.net/
+ * @link https://github.com/tschaub/mock-fs/blob/master/lib/binding.js
+ * @link https://github.com/tschaub/mock-fs/blob/master/license.md
+ */
+
+import * as constants from 'constants'
+
+export default class VirtualStats {
+ mode: number
+ /**
+ * Create a new stats object.
+ * @param {Object} config Stats properties.
+ * @constructor
+ */
+ constructor (config) {
+ for (const key in config) {
+ if (!config.hasOwnProperty(key)) {
+ continue
+ }
+ this[key] = config[key]
+ }
+ }
+
+ /**
+ * Check if mode indicates property.
+ * @param {number} property Property to check.
+ * @return {boolean} Property matches mode.
+ */
+ _checkModeProperty(property) {
+ return ((this.mode & constants.S_IFMT) === property)
+ }
+
+
+ /**
+ * @return {Boolean} Is a directory.
+ */
+ isDirectory() {
+ return this._checkModeProperty(constants.S_IFDIR)
+ }
+
+
+ /**
+ * @return {Boolean} Is a regular file.
+ */
+ isFile() {
+ return this._checkModeProperty(constants.S_IFREG)
+ }
+
+
+ /**
+ * @return {Boolean} Is a block device.
+ */
+ isBlockDevice() {
+ return this._checkModeProperty(constants.S_IFBLK)
+ }
+
+
+ /**
+ * @return {Boolean} Is a character device.
+ */
+ isCharacterDevice() {
+ return this._checkModeProperty(constants.S_IFCHR)
+ }
+
+
+ /**
+ * @return {Boolean} Is a symbolic link.
+ */
+ isSymbolicLink() {
+ return this._checkModeProperty(constants.S_IFLNK)
+ }
+
+
+ /**
+ * @return {Boolean} Is a named pipe.
+ */
+ isFIFO() {
+ return this._checkModeProperty(constants.S_IFIFO)
+ }
+
+
+ /**
+ * @return {Boolean} Is a socket.
+ */
+ isSocket() {
+ return this._checkModeProperty(constants.S_IFSOCK)
+ }
+}
diff --git a/packages/taro-cli/src/quickapp/style-rewriter.ts b/packages/taro-mini-runner/src/quickapp/style-rewriter.ts
similarity index 93%
rename from packages/taro-cli/src/quickapp/style-rewriter.ts
rename to packages/taro-mini-runner/src/quickapp/style-rewriter.ts
index 0d076b4e0956..f59ad6a2ab40 100644
--- a/packages/taro-cli/src/quickapp/style-rewriter.ts
+++ b/packages/taro-mini-runner/src/quickapp/style-rewriter.ts
@@ -7,7 +7,7 @@ interface StyleLog {
reason: string;
}
-export default function rewriter (code, isProduction) {
+export default function rewriter (code, isProduction?) {
const logs: StyleLog[] = []
const ast = css.parse(code, {
silent: true
@@ -47,7 +47,7 @@ export default function rewriter (code, isProduction) {
// 输出转换结果
try {
const resContent = css.stringify(ast, {
- compress: isProduction
+ compress: !!isProduction
})
return resContent
} catch (e) {
diff --git a/packages/taro-cli/src/quickapp/style/declaration/animation/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/animation/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/animation/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/animation/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/background/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/background/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/background/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/background/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/border/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/border/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/border/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/border/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/box/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/box/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/box/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/box/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/color/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/color/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/color/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/color/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/component/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/component/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/component/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/component/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/dimension/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/dimension/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/dimension/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/dimension/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/flexbox/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/flexbox/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/flexbox/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/flexbox/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/font/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/font/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/font/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/font/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/list/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/list/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/list/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/list/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/margin/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/margin/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/margin/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/margin/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/padding/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/padding/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/padding/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/padding/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/position/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/position/index.ts
similarity index 89%
rename from packages/taro-cli/src/quickapp/style/declaration/position/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/position/index.ts
index cfde8621812d..d195fa0e6cdd 100644
--- a/packages/taro-cli/src/quickapp/style/declaration/position/index.ts
+++ b/packages/taro-mini-runner/src/quickapp/style/declaration/position/index.ts
@@ -30,8 +30,9 @@ export default {
'position': (value, declaration, addDeclaration) => {
if (value === 'static') {
declaration.value = 'none'
- } else if (value === 'absolute') {
- return 'E:'
+ } else if (value === 'absolute' || value === 'relative') {
+ // https://doc.quickapp.cn/widgets/common-styles.html?h=position
+ return '' // E:
} else if (value !== 'fixed') {
return 'I:'
}
diff --git a/packages/taro-cli/src/quickapp/style/declaration/text/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/text/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/text/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/text/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/transform/transform.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/transform/transform.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/transform/transform.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/transform/transform.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/transition/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/transition/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/transition/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/transition/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/declaration/visibility/index.ts b/packages/taro-mini-runner/src/quickapp/style/declaration/visibility/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/declaration/visibility/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/declaration/visibility/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/index.ts b/packages/taro-mini-runner/src/quickapp/style/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/selector/index.ts b/packages/taro-mini-runner/src/quickapp/style/selector/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/selector/index.ts
rename to packages/taro-mini-runner/src/quickapp/style/selector/index.ts
diff --git a/packages/taro-cli/src/quickapp/style/util.ts b/packages/taro-mini-runner/src/quickapp/style/util.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/style/util.ts
rename to packages/taro-mini-runner/src/quickapp/style/util.ts
diff --git a/packages/taro-mini-runner/src/quickapp/template-rewriter.ts b/packages/taro-mini-runner/src/quickapp/template-rewriter.ts
new file mode 100644
index 000000000000..d9553a652971
--- /dev/null
+++ b/packages/taro-mini-runner/src/quickapp/template-rewriter.ts
@@ -0,0 +1,13 @@
+import parseXml from './template/parser'
+import rewriteNode from './template/node'
+import serialize from './template/serialize'
+
+export default function rewriterTemplate (code : string): string {
+ // 解析Code
+ const viewNodes = parseXml(`${code}`).children
+ // 解析视图组件
+ const retNodes = rewriteNode(viewNodes)
+ // 生成xml代码
+ const templateCode = serialize(retNodes)
+ return templateCode
+}
diff --git a/packages/taro-cli/src/quickapp/template/constant.ts b/packages/taro-mini-runner/src/quickapp/template/constant.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/constant.ts
rename to packages/taro-mini-runner/src/quickapp/template/constant.ts
diff --git a/packages/taro-cli/src/quickapp/template/node.ts b/packages/taro-mini-runner/src/quickapp/template/node.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/node.ts
rename to packages/taro-mini-runner/src/quickapp/template/node.ts
diff --git a/packages/taro-cli/src/quickapp/template/parser.ts b/packages/taro-mini-runner/src/quickapp/template/parser.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/parser.ts
rename to packages/taro-mini-runner/src/quickapp/template/parser.ts
diff --git a/packages/taro-cli/src/quickapp/template/serialize.ts b/packages/taro-mini-runner/src/quickapp/template/serialize.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/serialize.ts
rename to packages/taro-mini-runner/src/quickapp/template/serialize.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/span/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/span/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/span/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/span/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-camera/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-camera/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-camera/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-camera/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-canvas/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-canvas/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-canvas/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-canvas/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-image/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-image/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-image/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-image/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-input/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-input/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-input/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-input/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-label/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-label/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-label/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-label/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-map/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-map/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-map/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-map/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-picker/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-picker/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-picker/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-picker/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-textarea/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-textarea/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-textarea/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-textarea/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/taro-video/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/taro-video/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/taro-video/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/taro-video/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/tag/text/index.ts b/packages/taro-mini-runner/src/quickapp/template/tag/text/index.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/tag/text/index.ts
rename to packages/taro-mini-runner/src/quickapp/template/tag/text/index.ts
diff --git a/packages/taro-cli/src/quickapp/template/utils.ts b/packages/taro-mini-runner/src/quickapp/template/utils.ts
similarity index 100%
rename from packages/taro-cli/src/quickapp/template/utils.ts
rename to packages/taro-mini-runner/src/quickapp/template/utils.ts
diff --git a/packages/taro-mini-runner/src/utils/astConvert.ts b/packages/taro-mini-runner/src/utils/astConvert.ts
new file mode 100644
index 000000000000..8aee0493b42f
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/astConvert.ts
@@ -0,0 +1,97 @@
+import * as t from 'babel-types'
+import generate from 'better-babel-generator'
+
+import babylonConfig from '../config/babylon'
+
+const template = require('babel-template')
+
+export function convertObjectToAstExpression (obj: object): t.ObjectProperty[] {
+ const objArr = Object.keys(obj).map(key => {
+ const value = obj[key]
+ if (typeof value === 'string') {
+ return t.objectProperty(t.stringLiteral(key), t.stringLiteral(value))
+ }
+ if (typeof value === 'number') {
+ return t.objectProperty(t.stringLiteral(key), t.numericLiteral(value))
+ }
+ if (typeof value === 'boolean') {
+ return t.objectProperty(t.stringLiteral(key), t.booleanLiteral(value))
+ }
+ if (Array.isArray(value)) {
+ return t.objectProperty(t.stringLiteral(key), t.arrayExpression(convertArrayToAstExpression(value as [])))
+ }
+ if (typeof value === 'object') {
+ return t.objectProperty(t.stringLiteral(key), t.objectExpression(convertObjectToAstExpression(value)))
+ }
+ return t.objectProperty(t.stringLiteral(key), t.nullLiteral())
+ })
+ return objArr
+}
+
+// 最低限度的转义: https://github.com/mathiasbynens/jsesc#minimal
+export function generateMinimalEscapeCode (ast: t.File) {
+ return generate(ast, {
+ jsescOption: {
+ minimal: true
+ }
+ }).code
+}
+
+export function convertArrayToAstExpression (arr: any[]): any[] {
+ return arr.map(value => {
+ if (typeof value === 'string') {
+ return t.stringLiteral(value)
+ }
+ if (typeof value === 'number') {
+ return t.numericLiteral(value)
+ }
+ if (typeof value === 'boolean') {
+ return t.booleanLiteral(value)
+ }
+ if (Array.isArray(value)) {
+ return convertArrayToAstExpression(value)
+ }
+ if (typeof value === 'object') {
+ return t.objectExpression(convertObjectToAstExpression(value))
+ }
+ return t.nullLiteral()
+ })
+}
+
+export function convertSourceStringToAstExpression (str: string, opts: object = {}) {
+ return template(str, Object.assign({}, babylonConfig, opts))()
+}
+
+export function convertAstExpressionToVariable (node) {
+ if (t.isObjectExpression(node)) {
+ const obj = {}
+ const properties = node.properties
+ properties.forEach(property => {
+ if (property.type === 'ObjectProperty' || property.type === 'ObjectMethod') {
+ const key = convertAstExpressionToVariable(property.key)
+ const value = convertAstExpressionToVariable(property.value)
+ obj[key] = value
+ }
+ })
+ return obj
+ } else if (t.isArrayExpression(node)) {
+ return node.elements.map(convertAstExpressionToVariable)
+ } else if (t.isLiteral(node)) {
+ return node['value']
+ } else if (t.isIdentifier(node) || t.isJSXIdentifier(node)) {
+ const name = node.name
+ return name === 'undefined'
+ ? undefined
+ : name
+ } else if (t.isJSXExpressionContainer(node)) {
+ return convertAstExpressionToVariable(node.expression)
+ }
+}
+
+export const getObjKey = (node) => {
+ if (t.isIdentifier(node)) {
+ return node.name
+ } else {
+ return node.value
+ }
+}
diff --git a/packages/taro-mini-runner/src/utils/constants.ts b/packages/taro-mini-runner/src/utils/constants.ts
new file mode 100644
index 000000000000..b0399a802f7e
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/constants.ts
@@ -0,0 +1,307 @@
+import * as os from 'os'
+
+import chalk, { Chalk } from 'chalk'
+
+export const CSS_EXT: string[] = ['.css', '.scss', '.sass', '.less', '.styl', '.wxss', '.acss']
+export const SCSS_EXT: string[] = ['.scss']
+export const JS_EXT: string[] = ['.js', '.jsx']
+export const TS_EXT: string[] = ['.ts', '.tsx']
+export const UX_EXT: string[] = ['.ux']
+
+export const REG_JS: RegExp = /\.js(\?.*)?$/
+export const REG_SCRIPT: RegExp = /\.(js|jsx)(\?.*)?$/
+export const REG_TYPESCRIPT: RegExp = /\.(tsx|ts)(\?.*)?$/
+export const REG_SCRIPTS: RegExp = /\.[tj]sx?$/i
+export const REG_SASS: RegExp = /\.(s[ac]ss)$/
+export const REG_LESS: RegExp = /\.less$/
+export const REG_STYLUS: RegExp = /\.styl$/
+export const REG_STYLE: RegExp = /\.(css|scss|sass|less|styl|wxss|acss)(\?.*)?$/
+export const REG_MEDIA: RegExp = /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/
+export const REG_IMAGE: RegExp = /\.(png|jpe?g|gif|bpm|svg|webp)(\?.*)?$/
+export const REG_FONT: RegExp = /\.(woff2?|eot|ttf|otf)(\?.*)?$/
+export const REG_JSON: RegExp = /\.json(\?.*)?$/
+export const REG_UX: RegExp = /\.ux(\?.*)?$/
+export const REG_WXML_IMPORT: RegExp = /([
+ 'View',
+ 'Text'
+])
+
+export enum PARSE_AST_TYPE {
+ ENTRY = 'ENTRY',
+ PAGE = 'PAGE',
+ COMPONENT = 'COMPONENT',
+ NORMAL = 'NORMAL',
+ STATIC = 'STATIC'
+}
+
+export const enum processTypeEnum {
+ START = 'start',
+ CREATE = 'create',
+ COMPILE = 'compile',
+ CONVERT = 'convert',
+ COPY = 'copy',
+ GENERATE = 'generate',
+ MODIFY = 'modify',
+ ERROR = 'error',
+ WARNING = 'warning',
+ UNLINK = 'unlink',
+ REFERENCE = 'reference'
+}
+
+export interface IProcessTypeMap {
+ [key: string] : {
+ name: string,
+ color: string | Chalk
+ }
+}
+
+export const processTypeMap: IProcessTypeMap = {
+ [processTypeEnum.CREATE]: {
+ name: '创建',
+ color: 'cyan'
+ },
+ [processTypeEnum.COMPILE]: {
+ name: '编译',
+ color: 'green'
+ },
+ [processTypeEnum.CONVERT]: {
+ name: '转换',
+ color: chalk.rgb(255, 136, 0)
+ },
+ [processTypeEnum.COPY]: {
+ name: '拷贝',
+ color: 'magenta'
+ },
+ [processTypeEnum.GENERATE]: {
+ name: '生成',
+ color: 'blue'
+ },
+ [processTypeEnum.MODIFY]: {
+ name: '修改',
+ color: 'yellow'
+ },
+ [processTypeEnum.ERROR]: {
+ name: '错误',
+ color: 'red'
+ },
+ [processTypeEnum.WARNING]: {
+ name: '警告',
+ color: 'yellowBright'
+ },
+ [processTypeEnum.UNLINK]: {
+ name: '删除',
+ color: 'magenta'
+ },
+ [processTypeEnum.START]: {
+ name: '启动',
+ color: 'green'
+ },
+ [processTypeEnum.REFERENCE]: {
+ name: '引用',
+ color: 'blue'
+ }
+}
+
+export const excludeReplaceTaroFrameworkPkgs = new Set([taroJsRedux, taroJsMobx, taroJsMobxCommon])
diff --git a/packages/taro-mini-runner/src/utils/helper.ts b/packages/taro-mini-runner/src/utils/helper.ts
new file mode 100644
index 000000000000..eb0e1cc65d8c
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/helper.ts
@@ -0,0 +1,136 @@
+import * as path from 'path'
+import * as _ from 'lodash'
+
+import { getInstalledNpmPkgPath, promoteRelativePath, removeHeadSlash, printLog } from '.'
+import { taroJsQuickAppComponents, REG_STYLE, REG_SCRIPT, processTypeEnum } from './constants'
+
+export function getTaroJsQuickAppComponentsPath (nodeModulesPath: string): string {
+ const taroJsQuickAppComponentsPkg = getInstalledNpmPkgPath(taroJsQuickAppComponents, nodeModulesPath)
+ if (!taroJsQuickAppComponentsPkg) {
+ printLog(processTypeEnum.ERROR, '包安装', `缺少包 ${taroJsQuickAppComponents},请安装!`)
+ process.exit(0)
+ }
+ return path.join(path.dirname(taroJsQuickAppComponentsPkg as string), 'src/components')
+}
+
+export function getImportTaroSelfComponents (filePath, nodeModulesPath, outputDir, taroSelfComponents) {
+ const importTaroSelfComponents = new Set<{ path: string, name: string }>()
+ const taroJsQuickAppComponentsPath = getTaroJsQuickAppComponentsPath(nodeModulesPath)
+ taroSelfComponents.forEach(c => {
+ const cPath = path.join(taroJsQuickAppComponentsPath, c)
+ const cMainPath = path.join(cPath, 'index')
+ const cRelativePath = promoteRelativePath(path.relative(filePath, cMainPath.replace(nodeModulesPath, path.join(outputDir, 'npm'))))
+ importTaroSelfComponents.add({
+ path: cRelativePath,
+ name: c
+ })
+ })
+ return importTaroSelfComponents
+}
+
+export function getImportCustomComponents(outputDir, depComponents) {
+ const importCustomComponents = new Set();
+ depComponents.forEach(item => {
+ const extnamePath = item.path.replace(path.extname(item.path), '')
+ const cRelativePath = path.relative(path.join(outputDir, 'index'), extnamePath).replace(/\\/g, '/')
+ importCustomComponents.add({
+ path: cRelativePath,
+ name: item.name
+ })
+ })
+ return importCustomComponents;
+}
+
+export function generateQuickAppUx ({
+ script,
+ template,
+ style,
+ imports
+}: {
+ script?: string,
+ template?: string,
+ style?: string,
+ imports?: Set<{
+ path: string,
+ name: string
+ }>
+}) {
+ let uxTxt = ''
+ if (imports && imports.size) {
+ imports.forEach(item => {
+ uxTxt += `\n`
+ })
+ }
+ if (style) {
+ if (REG_STYLE.test(style)) {
+ uxTxt += `\n`
+ } else {
+ uxTxt += `\n`
+ }
+ }
+ if (template) {
+ uxTxt += `\n${template}\n\n`
+ }
+ if (script) {
+ if (REG_SCRIPT.test(script)) {
+ uxTxt += `\n`
+ } else {
+ uxTxt += `\n`
+ }
+ }
+ return uxTxt
+}
+
+export function generateQuickAppManifest ({
+ appConfig,
+ quickappJSON,
+ pageConfigs,
+ designWidth
+}) {
+ // 生成 router
+ const pages = (appConfig.pages as string[]).concat()
+ const routerPages = {}
+ const customPageConfig = quickappJSON.customPageConfig || {}
+
+ pages.forEach(element => {
+ const customConfig = customPageConfig[element]
+ const pageConf: any = {
+ component: path.basename(element)
+ }
+ if (customConfig) {
+ const filter = customConfig.filter
+ const launchMode = customConfig.launchMode
+ if (filter) {
+ pageConf.filter = filter
+ }
+ if (launchMode) {
+ pageConf.launchMode = launchMode
+ }
+ }
+ routerPages[removeHeadSlash(path.dirname(element))] = pageConf
+ })
+ delete quickappJSON.customPageConfig
+ const routerEntry = pages.shift()
+ const router = {
+ entry: removeHeadSlash(path.dirname(routerEntry as string)),
+ pages: routerPages
+ }
+ // 生成 display
+ const display = JSON.parse(JSON.stringify(appConfig.window || {}))
+ display.pages = {}
+ pageConfigs.forEach((item, page) => {
+ if (item) {
+ display.pages[removeHeadSlash(path.dirname(page))] = item
+ }
+ })
+ quickappJSON.router = router
+ quickappJSON.display = display
+ quickappJSON.config = Object.assign({}, quickappJSON.config, {
+ designWidth: designWidth || 750
+ })
+ if (appConfig.window && appConfig.window.navigationStyle === 'custom') {
+ quickappJSON.display.titleBar = false
+ delete quickappJSON.display.navigationStyle
+ }
+ return quickappJSON
+}
diff --git a/packages/taro-mini-runner/src/utils/index.ts b/packages/taro-mini-runner/src/utils/index.ts
new file mode 100644
index 000000000000..a3dae33b0459
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/index.ts
@@ -0,0 +1,243 @@
+import * as path from 'path'
+import * as fs from 'fs-extra'
+
+import * as resolvePath from 'resolve'
+import * as t from 'babel-types'
+import { mergeWith } from 'lodash'
+import chalk from 'chalk'
+
+import {
+ CONFIG_MAP,
+ JS_EXT,
+ TS_EXT,
+ NODE_MODULES_REG,
+ processTypeMap,
+ processTypeEnum
+} from './constants'
+import { IOption, IComponentObj } from './types'
+
+export const isNodeModule = (filename: string) => NODE_MODULES_REG.test(filename)
+
+export function isNpmPkg (name: string): boolean {
+ if (/^(\.|\/)/.test(name)) {
+ return false
+ }
+ return true
+}
+
+export function isQuickAppPkg (name: string): boolean {
+ return /^@(system|service)\.[a-zA-Z]{1,}/.test(name)
+}
+
+export function isEmptyObject (obj: any): boolean {
+ if (obj == null) {
+ return true
+ }
+ for (const key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ return false
+ }
+ }
+ return true
+}
+
+export function traverseObjectNode (node, buildAdapter: string, parentKey?: string) {
+ if (node.type === 'ClassProperty' || node.type === 'ObjectProperty') {
+ const properties = node.value.properties
+ const obj = {}
+ properties.forEach(p => {
+ let key = t.isIdentifier(p.key) ? p.key.name : p.key.value
+ if (CONFIG_MAP[buildAdapter][key] === false) {
+ return
+ }
+ if (parentKey !== 'usingComponents' && CONFIG_MAP[buildAdapter][key]) {
+ key = CONFIG_MAP[buildAdapter][key]
+ }
+ obj[key] = traverseObjectNode(p.value, buildAdapter, key)
+ })
+ return obj
+ }
+ if (node.type === 'ObjectExpression') {
+ const properties = node.properties
+ const obj= {}
+ properties.forEach(p => {
+ let key = t.isIdentifier(p.key) ? p.key.name : p.key.value
+ if (CONFIG_MAP[buildAdapter][key] === false) {
+ return
+ }
+ if (parentKey !== 'usingComponents' && CONFIG_MAP[buildAdapter][key]) {
+ key = CONFIG_MAP[buildAdapter][key]
+ }
+ obj[key] = traverseObjectNode(p.value, buildAdapter, key)
+ })
+ return obj
+ }
+ if (node.type === 'ArrayExpression') {
+ return node.elements.map(item => traverseObjectNode(item, buildAdapter))
+ }
+ if (node.type === 'NullLiteral') {
+ return null
+ }
+ return node.value
+}
+
+export function isAliasPath (name: string, pathAlias: object = {}): boolean {
+ const prefixs = Object.keys(pathAlias)
+ if (prefixs.length === 0) {
+ return false
+ }
+ return prefixs.includes(name) || (new RegExp(`^(${prefixs.join('|')})/`).test(name))
+}
+
+export function replaceAliasPath (filePath: string, name: string, pathAlias: object = {}) {
+ // 后续的 path.join 在遇到符号链接时将会解析为真实路径,如果
+ // 这里的 filePath 没有做同样的处理,可能会导致 import 指向
+ // 源代码文件,导致文件被意外修改
+ filePath = fs.realpathSync(filePath)
+
+ const prefixs = Object.keys(pathAlias)
+ if (prefixs.includes(name)) {
+ return promoteRelativePath(path.relative(filePath, fs.realpathSync(resolveScriptPath(pathAlias[name]))))
+ }
+ const reg = new RegExp(`^(${prefixs.join('|')})/(.*)`)
+ name = name.replace(reg, function (m, $1, $2) {
+ return promoteRelativePath(path.relative(filePath, path.join(pathAlias[$1], $2)))
+ })
+ return name
+}
+
+export function promoteRelativePath (fPath: string): string {
+ const fPathArr = fPath.split(path.sep)
+ let dotCount = 0
+ fPathArr.forEach(item => {
+ if (item.indexOf('..') >= 0) {
+ dotCount++
+ }
+ })
+ if (dotCount === 1) {
+ fPathArr.splice(0, 1, '.')
+ return fPathArr.join('/')
+ }
+ if (dotCount > 1) {
+ fPathArr.splice(0, 1)
+ return fPathArr.join('/')
+ }
+ return fPath.replace(/\\/g, '/')
+}
+
+export function resolveScriptPath (p: string): string {
+ const realPath = p
+ const taroEnv = process.env.TARO_ENV
+ const SCRIPT_EXT = JS_EXT.concat(TS_EXT)
+ for (let i = 0; i < SCRIPT_EXT.length; i++) {
+ const item = SCRIPT_EXT[i]
+ if (taroEnv) {
+ if (fs.existsSync(`${p}.${taroEnv}${item}`)) {
+ return `${p}.${taroEnv}${item}`
+ }
+ if (fs.existsSync(`${p}${path.sep}index.${taroEnv}${item}`)) {
+ return `${p}${path.sep}index.${taroEnv}${item}`
+ }
+ if (fs.existsSync(`${p.replace(/\/index$/, `.${taroEnv}/index`)}${item}`)) {
+ return `${p.replace(/\/index$/, `.${taroEnv}/index`)}${item}`
+ }
+ }
+ if (fs.existsSync(`${p}${item}`)) {
+ return `${p}${item}`
+ }
+ if (fs.existsSync(`${p}${path.sep}index${item}`)) {
+ return `${p}${path.sep}index${item}`
+ }
+ }
+ return realPath
+}
+
+export function buildUsingComponents (
+ filePath: string,
+ sourceDir: string,
+ pathAlias: IOption,
+ components: IComponentObj[],
+ isComponent?: boolean
+): IOption {
+ const usingComponents = Object.create(null)
+ for (const component of components) {
+ let componentPath = component.path
+ if (isAliasPath(componentPath as string, pathAlias)) {
+ componentPath = replaceAliasPath(filePath, componentPath as string, pathAlias)
+ }
+ componentPath = resolveScriptPath(path.resolve(filePath, '..', componentPath as string))
+ if (fs.existsSync(componentPath)) {
+ if (NODE_MODULES_REG.test(componentPath) && !NODE_MODULES_REG.test(filePath)) {
+ componentPath = componentPath.replace(NODE_MODULES_REG, path.join(sourceDir, 'npm'))
+ }
+ componentPath = promoteRelativePath(path.relative(filePath, componentPath))
+ } else {
+ componentPath = component.path
+ }
+ if (component.name) {
+ const componentName = component.name.split('|')[0]
+ usingComponents[componentName] = (componentPath as string).replace(path.extname(componentPath as string), '')
+ }
+ }
+ return Object.assign({}, isComponent ? { component: true } : { usingComponents: {} }, components.length ? {
+ usingComponents
+ } : {})
+}
+const npmCached = {}
+export function resolveNpmSync (pkgName: string, root): string | null {
+ try {
+ if (!npmCached[pkgName]) {
+ return resolvePath.sync(pkgName, { basedir: root })
+ }
+ return npmCached[pkgName]
+ } catch (err) {
+ if (err.code === 'MODULE_NOT_FOUND') {
+ throw new Error(`包 ${pkgName} 未安装`)
+ }
+ return null
+ }
+}
+
+export function recursiveMerge (src, ...args) {
+ return mergeWith(src, ...args, (value, srcValue) => {
+ const typeValue = typeof value
+ const typeSrcValue = typeof srcValue
+ if (typeValue !== typeSrcValue) return
+ if (Array.isArray(value) && Array.isArray(srcValue)) {
+ return value.concat(srcValue)
+ }
+ if (typeValue === 'object') {
+ return recursiveMerge(value, srcValue)
+ }
+ })
+}
+
+export function getInstalledNpmPkgPath (pkgName: string, basedir: string): string | null {
+ const resolvePath = require('resolve')
+ try {
+ return resolvePath.sync(`${pkgName}/package.json`, { basedir })
+ } catch (err) {
+ return null
+ }
+}
+
+export function printLog (type: processTypeEnum, tag: string, filePath?: string) {
+ const typeShow = processTypeMap[type]
+ const tagLen = tag.replace(/[\u0391-\uFFE5]/g, 'aa').length
+ const tagFormatLen = 8
+ if (tagLen < tagFormatLen) {
+ const rightPadding = new Array(tagFormatLen - tagLen + 1).join(' ')
+ tag += rightPadding
+ }
+ const padding = ''
+ filePath = filePath || ''
+ if (typeof typeShow.color === 'string') {
+ console.log(chalk[typeShow.color](typeShow.name), padding, tag, padding, filePath)
+ } else {
+ console.log(typeShow.color(typeShow.name), padding, tag, padding, filePath)
+ }
+}
+
+export function removeHeadSlash (str: string) {
+ return str.replace(/^(\/|\\)/, '')
+}
diff --git a/packages/taro-mini-runner/src/utils/logHelper.ts b/packages/taro-mini-runner/src/utils/logHelper.ts
new file mode 100644
index 000000000000..2611c75c8e5c
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/logHelper.ts
@@ -0,0 +1,190 @@
+import chalk from 'chalk'
+import * as ora from 'ora'
+import { partial, pipe } from 'lodash/fp'
+import * as formatMessages from 'webpack-format-messages'
+import { BUILD_TYPES } from './constants'
+
+// const syntaxErrorLabel = 'Syntax error:'
+
+const LOG_MAP = {
+ [BUILD_TYPES.WEAPP]: {
+ OPEN: '请打开微信小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.ALIPAY]: {
+ OPEN: '请打开支付宝小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.QQ]: {
+ OPEN: '请打开 QQ 小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.SWAN]: {
+ OPEN: '请打开百度智能小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.TT]: {
+ OPEN: '请打开字节跳动小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.JD]: {
+ OPEN: '请打开京东小程序开发者工具进行查看'
+ },
+ [BUILD_TYPES.QUICKAPP]: {
+ OPEN: '请按快应用端开发流程 https://taro-docs.jd.com/taro/docs/quick-app.html 进行查看'
+ }
+}
+
+const getServeSpinner = (() => {
+ let spinner
+ return () => {
+ if (!spinner) {
+ spinner = ora(`即将开始启动编译,请稍等~`)
+ spinner.start()
+ }
+ return spinner
+ }
+})()
+
+const printCompiling = () => {
+ getServeSpinner().text = '正在编译...'
+}
+
+const printBuildError = (err: Error): void => {
+ const message = err.message
+ const stack = err.stack
+ if (stack && message.indexOf('from UglifyJs') !== -1) {
+ try {
+ const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack)
+ if (!matched) {
+ throw new Error('Using errors for control flow is bad.')
+ }
+ const problemPath = matched[2]
+ const line = matched[3]
+ const column = matched[4]
+ console.log('Failed to minify the code from this file: \n\n', chalk.yellow(`\t${problemPath}:${line}${column !== '0' ? ':' + column : ''}`), '\n')
+ } catch (ignored) {
+ console.log('Failed to minify the bundle.', err)
+ }
+ } else {
+ console.log((message || err) + '\n')
+ }
+ console.log()
+}
+
+const printSuccess = (buildAdapter: BUILD_TYPES) => {
+ getServeSpinner().stopAndPersist({
+ symbol: '✅ ',
+ text: isFirst ? chalk.green(`编译成功,${LOG_MAP[buildAdapter].OPEN}\n`) : chalk.green(`编译成功\n`)
+ })
+}
+
+const printWarning = () => {
+ getServeSpinner().stopAndPersist({
+ symbol: '⚠️ ',
+ text: chalk.yellow('编译警告.\n')
+ })
+}
+
+const printFailed = () => {
+ getServeSpinner().stopAndPersist({
+ symbol: '🙅 ',
+ text: chalk.red('编译失败.\n')
+ })
+}
+
+const printWhenBeforeCompile = compiler => {
+ compiler.hooks.beforeCompile.tap('taroBeforeCompile', filepath => {
+ printCompiling()
+ })
+ return compiler
+}
+
+const printWhenInvalid = compiler => {
+ compiler.hooks.invalid.tap('taroInvalid', filepath => {
+ printCompiling()
+ })
+ return compiler
+}
+
+const printWhenFailed = compiler => {
+ compiler.hooks.failed.tap('taroFailed', error => {
+ printBuildError(error)
+ })
+ return compiler
+}
+
+let isFirst = true
+const printWhenFirstDone = (compiler) => {
+ compiler.hooks.done.tap('taroDone', stats => {
+ if (isFirst) {
+ isFirst = false
+ getServeSpinner().clear()
+ console.log(chalk.gray('\n监听文件修改中...\n'))
+ }
+ })
+ return compiler
+}
+
+const _printWhenDone = ({
+ verbose = false
+}, buildAdapter, compiler) => {
+ compiler.hooks.done.tap('taroDone', stats => {
+ const { errors, warnings } = formatMessages(stats)
+
+ if (!stats.hasErrors() && !stats.hasWarnings()) {
+ printSuccess(buildAdapter)
+ }
+
+ if (stats.hasErrors()) {
+ printFailed()
+ errors.forEach(e => console.log(e + '\n'))
+ verbose && process.exit(1)
+ return
+ }
+
+ if (stats.hasWarnings()) {
+ printWarning()
+ warnings.forEach(w => console.log(w + '\n'))
+ }
+
+ verbose && console.log(stats.toString({
+ colors: true,
+ modules: false,
+ children: false,
+ chunks: false,
+ chunkModules: false,
+ warnings: verbose
+ }) + '\n')
+ })
+ return compiler
+}
+
+const printWhenDone = partial(_printWhenDone, [{ verbose: false }])
+
+const printWhenDoneVerbosely = partial(_printWhenDone, [{ verbose: true }])
+
+const bindDevLogger = (compiler, buildAdapter: BUILD_TYPES) => {
+ console.log()
+ pipe(
+ printWhenBeforeCompile,
+ partial(printWhenDone, [buildAdapter]),
+ printWhenFailed,
+ printWhenInvalid,
+ printWhenFirstDone
+ )(compiler)
+ return compiler
+}
+
+const bindProdLogger = (compiler, buildAdapter: BUILD_TYPES) => {
+ console.log()
+ pipe(
+ printWhenBeforeCompile,
+ partial(printWhenDoneVerbosely, [buildAdapter]),
+ printWhenFailed
+ )(compiler)
+ return compiler
+}
+
+export {
+ printBuildError,
+ printCompiling,
+ getServeSpinner,
+ bindDevLogger,
+ bindProdLogger
+}
diff --git a/packages/taro-mini-runner/src/utils/parseAst.ts b/packages/taro-mini-runner/src/utils/parseAst.ts
new file mode 100644
index 000000000000..b0dbce129c68
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/parseAst.ts
@@ -0,0 +1,172 @@
+import { Config as IConfig } from '@tarojs/taro'
+import * as t from 'babel-types'
+import traverse from 'babel-traverse'
+import { transformFromAst } from 'babel-core'
+
+import { BUILD_TYPES, taroJsComponents, QUICKAPP_SPECIAL_COMPONENTS } from './constants'
+import { traverseObjectNode, isNpmPkg } from '../utils'
+import * as _ from 'lodash'
+
+export default function parseAst (
+ ast: t.File,
+ buildAdapter: BUILD_TYPES
+): {
+ configObj: IConfig,
+ hasEnablePageScroll: boolean,
+ taroSelfComponents: Set,
+} {
+ let configObj = {}
+ let hasEnablePageScroll
+ const taroSelfComponents = new Set()
+ const isQuickApp = buildAdapter === BUILD_TYPES.QUICKAPP
+ let componentClassName: string = ''
+
+ const newAst = transformFromAst(ast, '', {
+ plugins: [
+ [require('babel-plugin-preval')]
+ ]
+ }).ast as t.File
+
+ traverse(newAst, {
+ ClassDeclaration (astPath) {
+ const node = astPath.node
+ let hasCreateData = false
+ if (node.superClass) {
+ astPath.traverse({
+ ClassMethod (astPath) {
+ if (astPath.get('key').isIdentifier({ name: '_createData' })) {
+ hasCreateData = true
+ }
+ }
+ })
+ if (hasCreateData) {
+ astPath.traverse({
+ ClassMethod (astPath) {
+ const node = astPath.node
+ if (node.kind === 'constructor') {
+ astPath.traverse({
+ ExpressionStatement (astPath) {
+ const node = astPath.node
+ if (node.expression &&
+ node.expression.type === 'AssignmentExpression' &&
+ node.expression.operator === '=') {
+ const left = node.expression.left
+ if (left.type === 'MemberExpression' &&
+ left.object.type === 'ThisExpression' &&
+ left.property.type === 'Identifier' &&
+ left.property.name === 'config') {
+ configObj = traverseObjectNode(node.expression.right, buildAdapter)
+ }
+ }
+ }
+ })
+ }
+ }
+ })
+ if (node.id === null) {
+ componentClassName = '_TaroComponentClass'
+ } else if (node.id.name === 'App') {
+ componentClassName = '_App'
+ } else {
+ componentClassName = node.id.name
+ }
+ }
+ }
+ },
+ ClassExpression (astPath) {
+ const node = astPath.node
+ if (node.superClass) {
+ let hasCreateData = false
+ astPath.traverse({
+ ClassMethod (astPath) {
+ if (astPath.get('key').isIdentifier({ name: '_createData' })) {
+ hasCreateData = true
+ }
+ }
+ })
+ if (hasCreateData) {
+ if (node.id === null) {
+ const parentNode = astPath.parentPath.node as any
+ if (t.isVariableDeclarator(astPath.parentPath)) {
+ componentClassName = parentNode.id.name
+ } else {
+ componentClassName = '_TaroComponentClass'
+ }
+ } else if (node.id.name === 'App') {
+ componentClassName = '_App'
+ } else {
+ componentClassName = node.id.name
+ }
+ }
+ }
+ },
+ ClassMethod (astPath) {
+ const keyName = (astPath.get('key').node as t.Identifier).name
+ if (keyName === 'onPageScroll' || keyName === 'onReachBottom') {
+ hasEnablePageScroll = true
+ }
+ },
+ ClassProperty (astPath) {
+ const node = astPath.node
+ const keyName = node.key.name
+ if (keyName === 'config') {
+ configObj = traverseObjectNode(node, buildAdapter)
+ }
+ },
+ ImportDeclaration (astPath) {
+ const node = astPath.node
+ const source = node.source
+ let value = source.value
+ const specifiers = node.specifiers
+ if (isNpmPkg(value) && isQuickApp && value === taroJsComponents) {
+ specifiers.forEach(specifier => {
+ const name = specifier.local.name
+ if (!QUICKAPP_SPECIAL_COMPONENTS.has(name)) {
+ taroSelfComponents.add(_.kebabCase(name))
+ }
+ })
+ astPath.remove()
+ }
+ },
+ CallExpression (astPath) {
+ const node = astPath.node
+ const callee = node.callee as t.Identifier
+ if (callee.name === 'require') {
+ const args = node.arguments as t.StringLiteral[]
+ let value = args[0].value
+ const parentNode = astPath.parentPath.parentPath.node as t.VariableDeclaration
+ if (isNpmPkg(value) && isQuickApp && value === taroJsComponents) {
+ if (parentNode.declarations.length === 1 && parentNode.declarations[0].init) {
+ const id = parentNode.declarations[0].id
+ if (id.type === 'ObjectPattern') {
+ const properties = id.properties as any
+ properties.forEach(p => {
+ if (p.type === 'ObjectProperty' && p.value.type === 'Identifier') {
+ taroSelfComponents.add(_.kebabCase(p.value.name))
+ }
+ })
+ }
+ }
+ astPath.remove()
+ }
+ }
+ },
+ AssignmentExpression (astPath) {
+ const node = astPath.node
+ const left = node.left
+ if (t.isMemberExpression(left) && t.isIdentifier(left.object)) {
+ if (left.object.name === componentClassName
+ && t.isIdentifier(left.property)
+ && left.property.name === 'config') {
+ configObj = traverseObjectNode(node.right, buildAdapter)
+ }
+ }
+ }
+ })
+
+ return {
+ configObj,
+ hasEnablePageScroll,
+ taroSelfComponents
+ }
+}
diff --git a/packages/taro-mini-runner/src/utils/types.ts b/packages/taro-mini-runner/src/utils/types.ts
new file mode 100644
index 000000000000..7369d8daa614
--- /dev/null
+++ b/packages/taro-mini-runner/src/utils/types.ts
@@ -0,0 +1,30 @@
+import * as webpack from 'webpack'
+import { IProjectBaseConfig, IMiniAppConfig } from '@tarojs/taro/types/compile'
+import { BUILD_TYPES } from './constants'
+
+type FunctionLikeCustomWebpackConfig = (webpackConfig: webpack.Configuration, webpack) => webpack.Configuration
+
+export type CustomWebpackConfig = FunctionLikeCustomWebpackConfig | webpack.Configuration
+export interface IOption {
+ [key: string]: any
+}
+
+export interface IComponentObj {
+ name?: string,
+ path: string | null,
+ type?: string
+}
+
+export interface IChain {
+ [key: string]: any
+}
+
+export interface IBuildConfig extends IProjectBaseConfig, IMiniAppConfig {
+ isWatch: boolean,
+ port?: number,
+ buildAdapter: BUILD_TYPES,
+ nodeModulesPath: string,
+ quickappJSON: any,
+ isBuildPlugin: boolean,
+ commonChunks: string[]
+}
diff --git a/packages/taro-mini-runner/src/webpack/base.conf.ts b/packages/taro-mini-runner/src/webpack/base.conf.ts
new file mode 100644
index 000000000000..ef68095db015
--- /dev/null
+++ b/packages/taro-mini-runner/src/webpack/base.conf.ts
@@ -0,0 +1,24 @@
+import * as path from 'path'
+import * as Chain from 'webpack-chain'
+
+export default (appPath: string) => {
+ const chain = new Chain()
+ chain.merge({
+ resolve: {
+ extensions: ['.js', '.jsx', '.ts', '.tsx'],
+ mainFields: ['main', 'module'],
+ symlinks: true,
+ modules: [
+ path.join(appPath, 'node_modules'),
+ 'node_modules'
+ ]
+ },
+ resolveLoader: {
+ modules: [
+ 'node_modules'
+ ]
+ }
+ })
+
+ return chain
+}
diff --git a/packages/taro-mini-runner/src/webpack/build.conf.ts b/packages/taro-mini-runner/src/webpack/build.conf.ts
new file mode 100644
index 000000000000..57df2ddb47e7
--- /dev/null
+++ b/packages/taro-mini-runner/src/webpack/build.conf.ts
@@ -0,0 +1,184 @@
+import * as path from 'path'
+
+import { IBuildConfig } from '../utils/types'
+import {
+ getCopyWebpackPlugin,
+ getDefinePlugin,
+ processEnvOption,
+ getCssoWebpackPlugin,
+ getUglifyPlugin,
+ getDevtool,
+ getOutput,
+ getModule,
+ mergeOption,
+ getMiniPlugin,
+ getMiniCssExtractPlugin,
+ getEntry,
+} from './chain'
+import getBaseConf from './base.conf'
+import { BUILD_TYPES, PARSE_AST_TYPE, MINI_APP_FILES } from '../utils/constants'
+import { Targets } from '../plugins/MiniPlugin'
+
+const emptyObj = {}
+
+export default (appPath: string, mode, config: Partial): any => {
+ const chain = getBaseConf(appPath)
+ const {
+ buildAdapter = BUILD_TYPES.WEAPP,
+ alias = emptyObj,
+ entry = emptyObj,
+ output = emptyObj,
+ outputRoot = 'dist',
+ sourceRoot = 'src',
+
+ designWidth = 750,
+ deviceRatio,
+ enableSourceMap = false,
+
+ defineConstants = emptyObj,
+ env = emptyObj,
+ cssLoaderOption = emptyObj,
+ sassLoaderOption = emptyObj,
+ lessLoaderOption = emptyObj,
+ stylusLoaderOption = emptyObj,
+ mediaUrlLoaderOption = emptyObj,
+ fontUrlLoaderOption = emptyObj,
+ imageUrlLoaderOption = emptyObj,
+ miniCssExtractPluginOption = emptyObj,
+
+ postcss = emptyObj,
+ nodeModulesPath,
+ quickappJSON,
+
+ babel,
+ csso,
+ uglify,
+ commonChunks
+ } = config
+
+ let { copy } = config
+
+ const plugin: any = {}
+ const minimizer: any[] = []
+ const sourceDir = path.join(appPath, sourceRoot)
+ const outputDir = path.join(appPath, outputRoot)
+ if (config.isBuildPlugin) {
+ const patterns = copy ? copy.patterns : []
+ patterns.push({
+ from: path.join(sourceRoot, 'plugin', 'doc'),
+ to: path.join(outputRoot, 'doc')
+ })
+ patterns.push({
+ from: path.join(sourceRoot, 'plugin', 'plugin.json'),
+ to: path.join(outputRoot, 'plugin', 'plugin.json')
+ })
+ copy = Object.assign({}, copy, { patterns })
+ }
+ if (copy) {
+ plugin.copyWebpackPlugin = getCopyWebpackPlugin({ copy, appPath })
+ }
+ const constantsReplaceList = mergeOption([processEnvOption(env), defineConstants])
+ const entryRes = getEntry({
+ sourceDir,
+ entry,
+ isBuildPlugin: config.isBuildPlugin
+ })
+ plugin.definePlugin = getDefinePlugin([constantsReplaceList])
+ const customCommonChunks = commonChunks && commonChunks.length ? commonChunks : !!config.isBuildPlugin ? ['plugin/runtime', 'plugin/vendors'] : ['runtime', 'vendors']
+ plugin.miniPlugin = getMiniPlugin({
+ sourceDir,
+ outputDir,
+ buildAdapter,
+ constantsReplaceList,
+ nodeModulesPath,
+ quickappJSON,
+ designWidth,
+ pluginConfig: entryRes!.pluginConfig,
+ isBuildPlugin: !!config.isBuildPlugin,
+ commonChunks: customCommonChunks,
+ alias
+ })
+
+ plugin.miniCssExtractPlugin = getMiniCssExtractPlugin([{
+ filename: `[name]${MINI_APP_FILES[buildAdapter].STYLE}`,
+ chunkFilename: `[name]${MINI_APP_FILES[buildAdapter].STYLE}`
+ }, miniCssExtractPluginOption])
+
+ const isCssoEnabled = (csso && csso.enable === false)
+ ? false
+ : true
+
+ const isUglifyEnabled = (uglify && uglify.enable === false)
+ ? false
+ : true
+
+ if (mode === 'production') {
+ if (isUglifyEnabled) {
+ minimizer.push(getUglifyPlugin([
+ enableSourceMap,
+ uglify ? uglify.config : {}
+ ]))
+ }
+
+ if (isCssoEnabled) {
+ const cssoConfig: any = csso ? csso.config : {}
+ plugin.cssoWebpackPlugin = getCssoWebpackPlugin([cssoConfig])
+ }
+ }
+ chain.merge({
+ mode,
+ devtool: getDevtool(enableSourceMap),
+ watch: mode === 'development',
+ entry: entryRes!.entry,
+ output: getOutput(appPath, [{
+ outputRoot,
+ publicPath: '/',
+ buildAdapter,
+ isBuildPlugin: config.isBuildPlugin
+ }, output]),
+ target: Targets[buildAdapter],
+ resolve: { alias },
+ module: getModule(appPath, {
+ sourceDir,
+
+ buildAdapter,
+ constantsReplaceList,
+ designWidth,
+ deviceRatio,
+ enableSourceMap,
+
+ cssLoaderOption,
+ lessLoaderOption,
+ sassLoaderOption,
+ stylusLoaderOption,
+ fontUrlLoaderOption,
+ imageUrlLoaderOption,
+ mediaUrlLoaderOption,
+
+ postcss,
+ babel,
+ alias
+ }),
+ plugin,
+ optimization: {
+ minimizer,
+ runtimeChunk: {
+ name: !!config.isBuildPlugin ? 'plugin/runtime' : 'runtime'
+ },
+ splitChunks: {
+ chunks: 'all',
+ maxInitialRequests: Infinity,
+ minSize: 0,
+ name: !!config.isBuildPlugin ? 'plugin/vendors' : 'vendors',
+ cacheGroups: {
+ vendors: {
+ test (module) {
+ return /[\\/]node_modules[\\/]/.test(module.resource) && module.miniType !== PARSE_AST_TYPE.COMPONENT
+ }
+ }
+ }
+ }
+ }
+ })
+ return chain
+}
diff --git a/packages/taro-mini-runner/src/webpack/chain.ts b/packages/taro-mini-runner/src/webpack/chain.ts
new file mode 100644
index 000000000000..3954b6e20076
--- /dev/null
+++ b/packages/taro-mini-runner/src/webpack/chain.ts
@@ -0,0 +1,413 @@
+import * as fs from 'fs-extra'
+import * as path from 'path'
+
+import * as CopyWebpackPlugin from 'copy-webpack-plugin'
+import CssoWebpackPlugin from 'csso-webpack-plugin'
+import * as MiniCssExtractPlugin from 'mini-css-extract-plugin'
+import * as sass from 'node-sass'
+import { partial } from 'lodash'
+import { mapKeys, pipe } from 'lodash/fp'
+import * as UglifyJsPlugin from 'uglifyjs-webpack-plugin'
+import * as webpack from 'webpack'
+import { PostcssOption, ICopyOptions, IPostcssOption } from '@tarojs/taro/types/compile'
+import chalk from 'chalk'
+
+import { getPostcssPlugins } from './postcss.conf'
+
+import MiniPlugin from '../plugins/MiniPlugin'
+import { IOption } from '../utils/types'
+import { recursiveMerge, isNodeModule, resolveScriptPath } from '../utils'
+import {
+ REG_SASS,
+ REG_LESS,
+ REG_STYLUS,
+ REG_STYLE,
+ REG_MEDIA,
+ REG_FONT,
+ REG_IMAGE,
+ BUILD_TYPES,
+ REG_SCRIPTS
+} from '../utils/constants'
+
+const globalObjectMap = {
+ [BUILD_TYPES.WEAPP]: 'wx',
+ [BUILD_TYPES.ALIPAY]: 'my',
+ [BUILD_TYPES.SWAN]: 'swan',
+ [BUILD_TYPES.QQ]: 'qq',
+ [BUILD_TYPES.TT]: 'tt',
+ [BUILD_TYPES.JD]: 'jd',
+ [BUILD_TYPES.QUICKAPP]: 'global'
+}
+
+const defaultUglifyJsOption = {
+ keep_fnames: true,
+ output: {
+ comments: false,
+ keep_quoted_props: true,
+ quote_keys: true,
+ beautify: false
+ },
+ warnings: false
+}
+const defaultCSSCompressOption = {
+ mergeRules: false,
+ mergeIdents: false,
+ reduceIdents: false,
+ discardUnused: false,
+ minifySelectors: false
+}
+
+const defaultMediaUrlLoaderOption = {
+ limit: 10240
+}
+const defaultFontUrlLoaderOption = {
+ limit: 10240
+}
+const defaultImageUrlLoaderOption = {
+ limit: 10240
+}
+const defaultCssModuleOption: PostcssOption.cssModules = {
+ enable: false,
+ config: {
+ namingPattern: 'global',
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+}
+
+const staticDirectory = 'static'
+
+const getLoader = (loaderName: string, options: IOption) => {
+ return {
+ loader: require.resolve(loaderName),
+ options: options || {}
+ }
+}
+
+const listify = listOrItem => {
+ if (Array.isArray(listOrItem)) {
+ return listOrItem
+ }
+ return [listOrItem]
+}
+
+const getPlugin = (plugin: any, args: IOption[]) => {
+ return {
+ plugin,
+ args
+ }
+}
+
+export const mergeOption = ([...options]: IOption[]): IOption => {
+ return recursiveMerge({}, ...options)
+}
+
+const styleModuleReg = /(.*\.module).*\.(css|s[ac]ss|less|styl)\b/
+const styleGlobalReg = /(.*\.global).*\.(css|s[ac]ss|less|styl)\b/
+
+export const processEnvOption = partial(mapKeys as any, (key: string) => `process.env.${key}`) as any
+
+export const getCssLoader = pipe(mergeOption, partial(getLoader, 'css-loader'))
+export const getPostcssLoader = pipe(mergeOption, partial(getLoader, 'postcss-loader'))
+export const getSassLoader = pipe(mergeOption, partial(getLoader, 'sass-loader'))
+export const getLessLoader = pipe(mergeOption, partial(getLoader, 'less-loader'))
+export const getStylusLoader = pipe(mergeOption, partial(getLoader, 'stylus-loader'))
+export const getUrlLoader = pipe(mergeOption, partial(getLoader, 'url-loader'))
+export const getFileLoader = pipe(mergeOption, partial(getLoader, 'file-loader'))
+export const getFileParseLoader = pipe(mergeOption, partial(getLoader, path.resolve(__dirname, '../loaders/fileParseLoader')))
+export const getWxTransformerLoader = pipe(mergeOption, partial(getLoader, path.resolve(__dirname, '../loaders/wxTransformerLoader')))
+const getExtractCssLoader = () => {
+ return {
+ loader: MiniCssExtractPlugin.loader
+ }
+}
+const getQuickappStyleLoader = () => {
+ return {
+ loader: require.resolve(path.resolve(__dirname, '../loaders/quickappStyleLoader'))
+ }
+}
+export const getMiniCssExtractPlugin = pipe(mergeOption, listify, partial(getPlugin, MiniCssExtractPlugin))
+export const getDefinePlugin = pipe(mergeOption, listify, partial(getPlugin, webpack.DefinePlugin))
+export const getUglifyPlugin = ([enableSourceMap, uglifyOptions]) => {
+ return new UglifyJsPlugin({
+ cache: true,
+ parallel: true,
+ sourceMap: enableSourceMap,
+ uglifyOptions: recursiveMerge({}, defaultUglifyJsOption, uglifyOptions)
+ })
+}
+export const getCssoWebpackPlugin = ([cssoOption]) => {
+ return pipe(listify, partial(getPlugin, CssoWebpackPlugin))([mergeOption([defaultCSSCompressOption, cssoOption]), REG_STYLE])
+}
+export const getCopyWebpackPlugin = ({ copy, appPath }: {
+ copy: ICopyOptions,
+ appPath: string
+}) => {
+ const args = [
+ copy.patterns.map(({ from, to }) => {
+ return {
+ from,
+ to: path.resolve(appPath, to),
+ context: appPath
+ }
+ }),
+ copy.options
+ ]
+ return partial(getPlugin, CopyWebpackPlugin)(args)
+}
+
+export const getMiniPlugin = args => {
+ return partial(getPlugin, MiniPlugin)([args])
+}
+
+export const getModule = (appPath: string, {
+ sourceDir,
+
+ designWidth,
+ deviceRatio,
+ buildAdapter,
+ constantsReplaceList,
+ enableSourceMap,
+
+ cssLoaderOption,
+ lessLoaderOption,
+ sassLoaderOption,
+ stylusLoaderOption,
+ fontUrlLoaderOption,
+ imageUrlLoaderOption,
+ mediaUrlLoaderOption,
+ postcss,
+
+ babel,
+ alias
+}) => {
+ const isQuickapp = buildAdapter === BUILD_TYPES.QUICKAPP
+ const postcssOption: IPostcssOption = postcss || {}
+
+ const cssModuleOptions: PostcssOption.cssModules = recursiveMerge({}, defaultCssModuleOption, postcssOption.cssModules)
+
+ const { namingPattern, generateScopedName } = cssModuleOptions.config!
+
+ const cssOptions = [
+ {
+ importLoaders: 1,
+ sourceMap: enableSourceMap,
+ modules: false
+ },
+ cssLoaderOption
+ ]
+ const cssOptionsWithModule = [
+ Object.assign(
+ {
+ importLoaders: 1,
+ sourceMap: enableSourceMap,
+ modules: {
+ mode: namingPattern === 'module' ? 'local' : 'global'
+ }
+ },
+ {
+ modules: typeof generateScopedName === 'function'
+ ? { getLocalIdent: (context, _, localName) => generateScopedName(localName, context.resourcePath) }
+ : { localIdentName: generateScopedName }
+ }
+ ),
+ cssLoaderOption
+ ]
+
+ const extractCssLoader = getExtractCssLoader()
+ const quickappStyleLoader = getQuickappStyleLoader()
+
+ const cssLoader = getCssLoader(cssOptions)
+ const cssLoaders: {
+ include?;
+ use;
+ }[] = [{
+ use: isQuickapp ? [cssLoader, quickappStyleLoader] : [cssLoader]
+ }]
+
+ if (cssModuleOptions.enable) {
+ const cssLoaderWithModule = getCssLoader(cssOptionsWithModule)
+ let cssModuleCondition
+
+ if (cssModuleOptions.config!.namingPattern === 'module') {
+ /* 不排除 node_modules 内的样式 */
+ cssModuleCondition = styleModuleReg
+ } else {
+ cssModuleCondition = {
+ and: [
+ { exclude: styleGlobalReg },
+ { exclude: [isNodeModule] }
+ ]
+ }
+ }
+ cssLoaders.unshift({
+ include: [cssModuleCondition],
+ use: [cssLoaderWithModule]
+ })
+ }
+
+ const postcssLoader = getPostcssLoader([
+ { sourceMap: enableSourceMap },
+ {
+ ident: 'postcss',
+ plugins: getPostcssPlugins(appPath, {
+ isQuickapp,
+ designWidth,
+ deviceRatio,
+ postcssOption
+ })
+ }
+ ])
+ const sassLoader = getSassLoader([{
+ sourceMap: true,
+ implementation: sass
+ }, sassLoaderOption])
+ const lessLoader = getLessLoader([{ sourceMap: enableSourceMap }, lessLoaderOption])
+
+ const stylusLoader = getStylusLoader([{ sourceMap: enableSourceMap }, stylusLoaderOption])
+
+ // const fileLoader = getFileLoader([{
+ // useRelativePath: true,
+ // name: `[path][name]${MINI_APP_FILES[buildAdapter].STYLE}`,
+ // context: sourceDir
+ // }])
+
+ const fileParseLoader = getFileParseLoader([{
+ babel,
+ alias,
+ designWidth,
+ deviceRatio,
+ buildAdapter,
+ constantsReplaceList,
+ sourceDir
+ }])
+
+ const wxTransformerLoader = getWxTransformerLoader([{
+ buildAdapter
+ }])
+
+ const rule: any = {
+ sass: {
+ test: REG_SASS,
+ enforce: 'pre',
+ use: [sassLoader]
+ },
+ less: {
+ test: REG_LESS,
+ enforce: 'pre',
+ use: [lessLoader]
+ },
+ stylus: {
+ test: REG_STYLUS,
+ enforce: 'pre',
+ use: [stylusLoader]
+ },
+ css: {
+ test: REG_STYLE,
+ oneOf: cssLoaders
+ },
+ // styleFiles: {
+ // test: REG_STYLE,
+ // use: [fileLoader]
+ // },
+ postcss: {
+ test: REG_STYLE,
+ use: [postcssLoader]
+ },
+ customStyle: {
+ test: REG_STYLE,
+ enforce: 'post',
+ use: [extractCssLoader]
+ },
+ script: {
+ test: REG_SCRIPTS,
+ use: [fileParseLoader, wxTransformerLoader],
+ },
+ media: {
+ test: REG_MEDIA,
+ use: {
+ urlLoader: getUrlLoader([defaultMediaUrlLoaderOption, {
+ name: `${staticDirectory}/media/[name].[ext]`,
+ ...mediaUrlLoaderOption,
+ limit: isQuickapp ? false : mediaUrlLoaderOption.limit
+ }])
+ }
+ },
+ font: {
+ test: REG_FONT,
+ use: {
+ urlLoader: getUrlLoader([defaultFontUrlLoaderOption, {
+ name: `${staticDirectory}/fonts/[name].[ext]`,
+ ...fontUrlLoaderOption,
+ limit: isQuickapp ? false : fontUrlLoaderOption.limit
+ }])
+ }
+ },
+ image: {
+ test: REG_IMAGE,
+ use: {
+ urlLoader: getUrlLoader([defaultImageUrlLoaderOption, {
+ name: `${staticDirectory}/images/[name].[ext]`,
+ ...imageUrlLoaderOption,
+ limit: isQuickapp ? false : imageUrlLoaderOption.limit
+ }])
+ }
+ }
+ }
+
+ return { rule }
+}
+
+export const getEntry = ({
+ sourceDir,
+ entry,
+ isBuildPlugin
+}) => {
+ if (!isBuildPlugin) {
+ return {
+ entry
+ }
+ }
+ const pluginDir = path.join(sourceDir, 'plugin')
+ if (!fs.existsSync(pluginDir)) {
+ console.log(chalk.red('插件目录不存在,请检查!'))
+ return
+ }
+ const pluginConfigPath = path.join(pluginDir, 'plugin.json')
+ if (!fs.existsSync(pluginConfigPath)) {
+ console.log(chalk.red('缺少插件配置文件,请检查!'))
+ return
+ }
+ const pluginConfig = fs.readJSONSync(pluginConfigPath)
+ const entryObj = {}
+ Object.keys(pluginConfig).forEach(key => {
+ if (key === 'main') {
+ const filePath = path.join(pluginDir, pluginConfig[key])
+ const fileName = path.basename(filePath).replace(path.extname(filePath), '')
+ entryObj[`plugin/${fileName}`] = [resolveScriptPath(filePath.replace(path.extname(filePath), ''))]
+ } else if (key === 'publicComponents' || key === 'pages') {
+ Object.keys(pluginConfig[key]).forEach(subKey => {
+ const filePath = path.join(pluginDir, pluginConfig[key][subKey])
+ entryObj[`plugin/${pluginConfig[key][subKey]}`] = [resolveScriptPath(filePath.replace(path.extname(filePath), ''))]
+ })
+ }
+ })
+ return {
+ entry: entryObj,
+ pluginConfig
+ }
+}
+
+export function getOutput (appPath: string, [{ outputRoot, publicPath, buildAdapter, isBuildPlugin }, customOutput]) {
+ return {
+ path: path.join(appPath, outputRoot),
+ publicPath,
+ filename: '[name].js',
+ chunkFilename: '[name].js',
+ globalObject: globalObjectMap[buildAdapter],
+ ...customOutput
+ }
+}
+
+export function getDevtool (enableSourceMap) {
+ return enableSourceMap ? 'cheap-module-eval-source-map' : 'none'
+}
diff --git a/packages/taro-mini-runner/src/webpack/postcss.conf.ts b/packages/taro-mini-runner/src/webpack/postcss.conf.ts
new file mode 100644
index 000000000000..12c6cf090cb9
--- /dev/null
+++ b/packages/taro-mini-runner/src/webpack/postcss.conf.ts
@@ -0,0 +1,87 @@
+import * as path from 'path'
+
+import * as autoprefixer from 'autoprefixer'
+import * as pxtransform from 'postcss-pxtransform'
+import * as url from 'postcss-url'
+import { sync as resolveSync } from 'resolve'
+import { IPostcssOption } from '@tarojs/taro/types/compile'
+
+import { isNpmPkg, recursiveMerge } from '../utils'
+import browserList from '../config/browser_list'
+
+const defaultAutoprefixerOption = {
+ enable: true,
+ config: {
+ overrideBrowserslist: browserList,
+ flexbox: 'no-2009'
+ }
+}
+const defaultPxtransformOption: {
+ [key: string]: any
+} = {
+ enable: true,
+ config: {
+ platform: 'weapp'
+ }
+}
+
+const defaultUrlOption = {
+ enable: true,
+ config: {
+ limit: 1000,
+ url: 'inline'
+ }
+}
+
+const optionsWithDefaults = ['autoprefixer', 'pxtransform', 'cssModules', 'url']
+
+const plugins = [] as any[]
+
+export const getPostcssPlugins = function (appPath: string, {
+ isQuickapp = false,
+ designWidth,
+ deviceRatio,
+ postcssOption = {} as IPostcssOption
+}) {
+
+ if (designWidth) {
+ defaultPxtransformOption.config.designWidth = designWidth
+ }
+
+ if (deviceRatio) {
+ defaultPxtransformOption.config.deviceRatio = deviceRatio
+ }
+
+ const autoprefixerOption = recursiveMerge({}, defaultAutoprefixerOption, postcssOption.autoprefixer)
+ const pxtransformOption = recursiveMerge({}, defaultPxtransformOption, postcssOption.pxtransform)
+ const urlOption = recursiveMerge({}, defaultUrlOption, postcssOption.url)
+ if (autoprefixerOption.enable) {
+ plugins.push(autoprefixer(autoprefixerOption.config))
+ }
+
+ if (pxtransformOption.enable && !isQuickapp) {
+ plugins.push(pxtransform(pxtransformOption.config))
+ }
+ if (urlOption.enable) {
+ plugins.push(url(urlOption.config))
+ }
+
+ Object.entries(postcssOption).forEach(([pluginName, pluginOption]) => {
+ if (optionsWithDefaults.indexOf(pluginName) > -1) return
+ if (!pluginOption || !pluginOption.enable) return
+
+ if (!isNpmPkg(pluginName)) { // local plugin
+ pluginName = path.join(appPath, pluginName)
+ }
+
+ try {
+ const pluginPath = resolveSync(pluginName, { basedir: appPath })
+ plugins.push(require(pluginPath)(pluginOption.config || {}))
+ } catch (e) {
+ const msg = e.code === 'MODULE_NOT_FOUND' ? `缺少postcss插件${pluginName}, 已忽略` : e
+ console.log(msg)
+ }
+ })
+
+ return plugins
+}
diff --git a/packages/taro-mini-runner/tsconfig.json b/packages/taro-mini-runner/tsconfig.json
new file mode 100644
index 000000000000..522fe3c86d15
--- /dev/null
+++ b/packages/taro-mini-runner/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "allowSyntheticDefaultImports": true,
+ "allowJs": true,
+ "baseUrl": ".",
+ "experimentalDecorators": true,
+ "lib": ["esnext", "dom"],
+ "module": "commonjs",
+ "moduleResolution": "node",
+ "noImplicitAny": false,
+ "noUnusedLocals": true,
+ "outDir": "dist/",
+ "preserveConstEnums": true,
+ "removeComments": false,
+ "rootDir": "./src",
+ "skipLibCheck": true,
+ "sourceMap": false,
+ "strictNullChecks": true,
+ "target": "es2015",
+ "traceResolution": false,
+ "types": ["jest"]
+ },
+ "include": [
+ "./src"
+ ],
+ "exclude": [
+ "./src/__tests__"
+ ]
+}
diff --git a/packages/taro-mini-runner/tslint.json b/packages/taro-mini-runner/tslint.json
new file mode 100644
index 000000000000..fa1c9fc90ffb
--- /dev/null
+++ b/packages/taro-mini-runner/tslint.json
@@ -0,0 +1,31 @@
+{
+ "extends": [
+ "tslint-config-standard",
+ "tslint-config-prettier"
+ ],
+ "defaultSeverity": "error",
+ "rules": {
+ "ban-types": false,
+ "forin": false,
+ "interface-name": false,
+ "member-access": false,
+ "no-bitwise": false,
+ "no-conditional-assignment": false,
+ "no-console": false,
+ "no-empty": false,
+ "no-object-literal-type-assertion": false,
+ "no-string-literal": false,
+ "no-var-keyword": true,
+ "object-literal-key-quotes": [ false, "as-needed" ],
+ "object-literal-sort-keys": false,
+ "one-variable-per-declaration": false,
+ "ordered-imports": false,
+ "prefer-for-of": false,
+ "quotemark": [ true, "single", "avoid-escape", "jsx-double" ],
+ "semicolon": [ false, "never" ],
+ "space-before-function-paren": false,
+ "trailing-comma": [ true, { "multiline": "never", "singleline": "never" } ],
+ "variable-name": [ true, "allow-leading-underscore", "ban-keywords" ],
+ "prefer-const": true
+ }
+}
diff --git a/packages/taro-mobx-common/package.json b/packages/taro-mobx-common/package.json
index b171f77ba1e8..ba80ebd35348 100644
--- a/packages/taro-mobx-common/package.json
+++ b/packages/taro-mobx-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/mobx-common",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "mobx library for taro",
"keywords": [
"mobx",
diff --git a/packages/taro-mobx-h5/package.json b/packages/taro-mobx-h5/package.json
index 06a9269b67ad..8a0991b48862 100644
--- a/packages/taro-mobx-h5/package.json
+++ b/packages/taro-mobx-h5/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/mobx-h5",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "mobx-h5 for taro",
"keywords": [
"mobx",
@@ -28,8 +28,8 @@
"nervjs": "^1.5.0"
},
"dependencies": {
- "@tarojs/mobx-common": "1.3.34",
- "@tarojs/taro-h5": "1.3.34"
+ "@tarojs/mobx-common": "2.0.0-beta.13",
+ "@tarojs/taro-h5": "2.0.0-beta.13"
},
"devDependencies": {
"rimraf": "^2.6.2",
diff --git a/packages/taro-mobx-rn/package.json b/packages/taro-mobx-rn/package.json
index 0d67894b1984..ff6386dae94f 100644
--- a/packages/taro-mobx-rn/package.json
+++ b/packages/taro-mobx-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/mobx-rn",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "mobx-rn for taro",
"keywords": [
"mobx",
@@ -18,7 +18,7 @@
"src"
],
"dependencies": {
- "@tarojs/mobx-common": "1.3.34",
- "@tarojs/taro-rn": "1.3.34"
+ "@tarojs/mobx-common": "2.0.0-beta.13",
+ "@tarojs/taro-rn": "2.0.0-beta.13"
}
}
diff --git a/packages/taro-mobx/package.json b/packages/taro-mobx/package.json
index 87504df5bfaf..215e23150b75 100644
--- a/packages/taro-mobx/package.json
+++ b/packages/taro-mobx/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/mobx",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "mobx for taro",
"keywords": [
"mobx",
@@ -24,8 +24,8 @@
"clear": "rimraf dist"
},
"dependencies": {
- "@tarojs/mobx-common": "1.3.34",
- "@tarojs/taro": "1.3.34"
+ "@tarojs/mobx-common": "2.0.0-beta.13",
+ "@tarojs/taro": "2.0.0-beta.13"
},
"devDependencies": {
"rimraf": "^2.6.2",
diff --git a/packages/taro-plugin-babel/package.json b/packages/taro-plugin-babel/package.json
index dd5f2e50ff54..32067142b28c 100644
--- a/packages/taro-plugin-babel/package.json
+++ b/packages/taro-plugin-babel/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-babel",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro babel编译",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-plugin-csso/package.json b/packages/taro-plugin-csso/package.json
index 84bf2befe356..6860e93c2536 100644
--- a/packages/taro-plugin-csso/package.json
+++ b/packages/taro-plugin-csso/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-csso",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro压缩CSS文件",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-plugin-less/package.json b/packages/taro-plugin-less/package.json
index 7df195bfaecf..4df5b71bbaa8 100644
--- a/packages/taro-plugin-less/package.json
+++ b/packages/taro-plugin-less/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-less",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro 编译 less 文件",
"main": "index.js",
"scripts": {
@@ -16,6 +16,6 @@
"author": "luckyadam",
"license": "MIT",
"dependencies": {
- "less": "^3.10.3"
+ "less": "^3.0.4"
}
}
diff --git a/packages/taro-plugin-sass/package.json b/packages/taro-plugin-sass/package.json
index 4fa1f0b4a801..412f8085357b 100644
--- a/packages/taro-plugin-sass/package.json
+++ b/packages/taro-plugin-sass/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-sass",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro编译sass文件",
"main": "index.js",
"files": [
diff --git a/packages/taro-plugin-stylus/package.json b/packages/taro-plugin-stylus/package.json
index 9c225e97eb0b..384b036f022d 100644
--- a/packages/taro-plugin-stylus/package.json
+++ b/packages/taro-plugin-stylus/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-stylus",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro 编译 stylus 文件",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-plugin-typescript/package.json b/packages/taro-plugin-typescript/package.json
index 2f862dba2b77..066285deaaac 100644
--- a/packages/taro-plugin-typescript/package.json
+++ b/packages/taro-plugin-typescript/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-typescript",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro TypeScript 编译插件",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-plugin-uglifyjs/package.json b/packages/taro-plugin-uglifyjs/package.json
index adcc6ec9e790..58aa8963b0d4 100644
--- a/packages/taro-plugin-uglifyjs/package.json
+++ b/packages/taro-plugin-uglifyjs/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/plugin-uglifyjs",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro压缩JS文件",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-qq/package.json b/packages/taro-qq/package.json
index de356bac0cb2..0684030b8903 100644
--- a/packages/taro-qq/package.json
+++ b/packages/taro-qq/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-qq",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro qq framework",
"main": "index.js",
"files": [
@@ -24,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-quickapp/__mocks__/@system/audio.js b/packages/taro-quickapp/__mocks__/@system/audio.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/audio.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/barcode.js b/packages/taro-quickapp/__mocks__/@system/barcode.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/barcode.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/clipboard.js b/packages/taro-quickapp/__mocks__/@system/clipboard.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/clipboard.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/contact.js b/packages/taro-quickapp/__mocks__/@system/contact.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/contact.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/device.js b/packages/taro-quickapp/__mocks__/@system/device.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/device.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/fetch.js b/packages/taro-quickapp/__mocks__/@system/fetch.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/fetch.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/geolocation.js b/packages/taro-quickapp/__mocks__/@system/geolocation.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/geolocation.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/notification.js b/packages/taro-quickapp/__mocks__/@system/notification.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/notification.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/prompt.js b/packages/taro-quickapp/__mocks__/@system/prompt.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/prompt.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/record.js b/packages/taro-quickapp/__mocks__/@system/record.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/record.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/request.js b/packages/taro-quickapp/__mocks__/@system/request.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/request.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/router.js b/packages/taro-quickapp/__mocks__/@system/router.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/router.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/sensor.js b/packages/taro-quickapp/__mocks__/@system/sensor.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/sensor.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/share.js b/packages/taro-quickapp/__mocks__/@system/share.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/share.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/sms.js b/packages/taro-quickapp/__mocks__/@system/sms.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/sms.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/storage.js b/packages/taro-quickapp/__mocks__/@system/storage.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/storage.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/vibrator.js b/packages/taro-quickapp/__mocks__/@system/vibrator.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/vibrator.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__mocks__/@system/webview.js b/packages/taro-quickapp/__mocks__/@system/webview.js
new file mode 100644
index 000000000000..b1c6ea436a54
--- /dev/null
+++ b/packages/taro-quickapp/__mocks__/@system/webview.js
@@ -0,0 +1 @@
+export default {}
diff --git a/packages/taro-quickapp/__test__/api.test.js b/packages/taro-quickapp/__test__/api.test.js
new file mode 100644
index 000000000000..c560f3724cb6
--- /dev/null
+++ b/packages/taro-quickapp/__test__/api.test.js
@@ -0,0 +1 @@
+test('api test', () => {})
diff --git a/packages/taro-quickapp/babel.config.js b/packages/taro-quickapp/babel.config.js
new file mode 100644
index 000000000000..0e98ec84c18c
--- /dev/null
+++ b/packages/taro-quickapp/babel.config.js
@@ -0,0 +1,15 @@
+module.exports = {
+ 'presets': [
+ ['@babel/preset-env', {
+ // 'modules': 'umd',
+ 'spec': true
+ }]
+ ],
+ 'plugins': [
+ '@babel/plugin-proposal-class-properties',
+ '@babel/plugin-proposal-object-rest-spread',
+ ['@babel/plugin-transform-react-jsx', {
+ 'pragma': 'Nerv.createElement'
+ }]
+ ]
+}
diff --git a/packages/taro-quickapp/jest.config.js b/packages/taro-quickapp/jest.config.js
new file mode 100644
index 000000000000..2c4559f7165a
--- /dev/null
+++ b/packages/taro-quickapp/jest.config.js
@@ -0,0 +1,15 @@
+module.exports = {
+ verbose: true,
+ moduleNameMapper: {
+ '@tarojs/taro-quickapp': '/src/index.js',
+ // '@tarojs/taro': '/../taro/src/index',
+ '@tarojs/utils': '/../taro-utils/src/index',
+ '^@system.(.*)': '/__mocks__/@system/$1.js'
+ },
+ rootDir: __dirname,
+ testMatch: ['/**/*.test.js'],
+ transform: {
+ '^.+\\.js?$': 'babel-jest'
+ },
+ transformIgnorePatterns: ['/node_modules/']
+}
diff --git a/packages/taro-quickapp/package.json b/packages/taro-quickapp/package.json
index 554aaa616771..b6f0408bd882 100644
--- a/packages/taro-quickapp/package.json
+++ b/packages/taro-quickapp/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-quickapp",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro quickapp framework",
"main": "index.js",
"files": [
@@ -10,8 +10,9 @@
"package.json"
],
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
- "build": "rollup -c rollup.config.js"
+ "build": "rollup -c rollup.config.js",
+ "dev": "rollup -c rollup.config.js -w",
+ "test": "jest"
},
"repository": {
"type": "git",
@@ -23,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-quickapp/src/api/index.js b/packages/taro-quickapp/src/api/index.js
index 62719eaca797..586e77032088 100644
--- a/packages/taro-quickapp/src/api/index.js
+++ b/packages/taro-quickapp/src/api/index.js
@@ -11,4 +11,5 @@ export * from './notification'
export * from './system'
export * from './webview'
export * from './media'
-export * from './device'
\ No newline at end of file
+export * from './device'
+export * from './unsupportedApi'
diff --git a/packages/taro-quickapp/src/api/index.test.js b/packages/taro-quickapp/src/api/index.test.js
new file mode 100644
index 000000000000..ca7153a3ec3a
--- /dev/null
+++ b/packages/taro-quickapp/src/api/index.test.js
@@ -0,0 +1,8 @@
+describe('test', () => {
+ const chalk = require('chalk')
+ const api = require('./index')
+ const unsupportedApi = require('./unsupportedApi')
+ console.log(Object.keys(api).map(e => !unsupportedApi[e] ? e : chalk.red(e)).join(' '))
+
+ test('api test', () => {})
+})
diff --git a/packages/taro-quickapp/src/api/interactive/index.js b/packages/taro-quickapp/src/api/interactive/index.js
index 9600f333a47f..2e44d7b73244 100644
--- a/packages/taro-quickapp/src/api/interactive/index.js
+++ b/packages/taro-quickapp/src/api/interactive/index.js
@@ -1,7 +1,6 @@
import prompt from '@system.prompt'
-import {
- eventCenter
-} from '@tarojs/taro'
+
+import appGlobal from '../../global'
export function showToast (options = {}) {
const { title = '', duration = 1500, success, complete, fail } = options
@@ -128,7 +127,7 @@ function setNavigationBar (params, fnName) {
const res = { errMsg: `${fnName}: ok` }
return new Promise((resolve, reject) => {
try {
- eventCenter.trigger('TaroEvent:setNavigationBar', params)
+ appGlobal.eventCenter.trigger('TaroEvent:setNavigationBar', params)
success && success(res)
complete && complete(res)
resolve(res)
@@ -154,7 +153,7 @@ export function startPullDownRefresh (options = {}) {
const res = { errMsg: `startPullDownRefresh: ok` }
return new Promise((resolve, reject) => {
try {
- eventCenter.trigger('TaroPage:startPullDownRefresh')
+ appGlobal.eventCenter.trigger('TaroPage:startPullDownRefresh')
success && success(res)
complete && complete(res)
resolve(res)
@@ -172,7 +171,7 @@ export function stopPullDownRefresh (options = {}) {
const res = { errMsg: `stopPullDownRefresh: ok` }
return new Promise((resolve, reject) => {
try {
- eventCenter.trigger('TaroPage:stopPullDownRefresh')
+ appGlobal.eventCenter.trigger('TaroPage:stopPullDownRefresh')
success && success(res)
complete && complete(res)
resolve(res)
diff --git a/packages/taro-quickapp/src/api/media/index.js b/packages/taro-quickapp/src/api/media/index.js
index 0d62f28f924b..04d14b42a58c 100644
--- a/packages/taro-quickapp/src/api/media/index.js
+++ b/packages/taro-quickapp/src/api/media/index.js
@@ -1,4 +1,5 @@
import audio from '@system.audio'
+import device from '@system.device'
import record from '@system.record'
export function createInnerAudioContext () {
@@ -66,7 +67,8 @@ export function stopRecord () {
}
export default {
- createAudioContext,
+ createInnerAudioContext,
+ createAudioContext: createInnerAudioContext,
getPlayState,
startRecord,
stopRecord
diff --git a/packages/taro-quickapp/src/api/system/index.js b/packages/taro-quickapp/src/api/system/index.js
index 17a8677e17fc..894da33e6099 100644
--- a/packages/taro-quickapp/src/api/system/index.js
+++ b/packages/taro-quickapp/src/api/system/index.js
@@ -8,7 +8,7 @@ export function getSystemInfo (options = {}) {
return new Promise((resolve, reject) => {
device.getInfo({
success (data) {
- res.result = data.result
+ res.result = data
success && success(res)
resolve(res)
},
diff --git a/packages/taro-quickapp/src/api/unsupportedApi/index.js b/packages/taro-quickapp/src/api/unsupportedApi/index.js
new file mode 100644
index 000000000000..ac3f8d1a11c9
--- /dev/null
+++ b/packages/taro-quickapp/src/api/unsupportedApi/index.js
@@ -0,0 +1,276 @@
+import { temporarilyNotSupport } from '../utils'
+
+// onAndSyncApis
+export const onSocketOpen = temporarilyNotSupport('onSocketOpen')
+export const onSocketError = temporarilyNotSupport('onSocketError')
+export const onSocketMessage = temporarilyNotSupport('onSocketMessage')
+export const onSocketClose = temporarilyNotSupport('onSocketClose')
+export const onBackgroundAudioPlay = temporarilyNotSupport('onBackgroundAudioPlay')
+export const onBackgroundAudioPause = temporarilyNotSupport('onBackgroundAudioPause')
+export const onBackgroundAudioStop = temporarilyNotSupport('onBackgroundAudioStop')
+export const onNetworkStatusChange = temporarilyNotSupport('onNetworkStatusChange')
+// export const onAccelerometerChange = temporarilyNotSupport('onAccelerometerChange')
+// export const onCompassChange = temporarilyNotSupport('onCompassChange')
+export const onDeviceMotionChange = temporarilyNotSupport('onDeviceMotionChange')
+export const onBluetoothAdapterStateChange = temporarilyNotSupport('onBluetoothAdapterStateChange')
+export const onBluetoothDeviceFound = temporarilyNotSupport('onBluetoothDeviceFound')
+export const onBLEConnectionStateChange = temporarilyNotSupport('onBLEConnectionStateChange')
+export const onBLECharacteristicValueChange = temporarilyNotSupport('onBLECharacteristicValueChange')
+export const onBeaconUpdate = temporarilyNotSupport('onBeaconUpdate')
+export const onBeaconServiceChange = temporarilyNotSupport('onBeaconServiceChange')
+export const onUserCaptureScreen = temporarilyNotSupport('onUserCaptureScreen')
+export const onHCEMessage = temporarilyNotSupport('onHCEMessage')
+export const onGetWifiList = temporarilyNotSupport('onGetWifiList')
+export const onWifiConnected = temporarilyNotSupport('onWifiConnected')
+export const setStorageSync = temporarilyNotSupport('setStorageSync')
+export const getStorageSync = temporarilyNotSupport('getStorageSync')
+export const getStorageInfoSync = temporarilyNotSupport('getStorageInfoSync')
+export const removeStorageSync = temporarilyNotSupport('removeStorageSync')
+export const clearStorageSync = temporarilyNotSupport('clearStorageSync')
+export const getSystemInfoSync = temporarilyNotSupport('getSystemInfoSync')
+export const getExtConfigSync = temporarilyNotSupport('getExtConfigSync')
+export const getLogManager = temporarilyNotSupport('getLogManager')
+export const onMemoryWarning = temporarilyNotSupport('onMemoryWarning')
+export const reportAnalytics = temporarilyNotSupport('reportAnalytics')
+export const navigateToSmartGameProgram = temporarilyNotSupport('navigateToSmartGameProgram')
+
+// 文件
+export const getFileSystemManager = temporarilyNotSupport('getFileSystemManager')
+
+// noPromiseApis
+// 媒体
+// export const stopRecord = temporarilyNotSupport('stopRecord')
+export const getRecorderManager = temporarilyNotSupport('getRecorderManager')
+export const pauseVoice = temporarilyNotSupport('pauseVoice')
+export const stopVoice = temporarilyNotSupport('stopVoice')
+export const pauseBackgroundAudio = temporarilyNotSupport('pauseBackgroundAudio')
+export const stopBackgroundAudio = temporarilyNotSupport('stopBackgroundAudio')
+export const getBackgroundAudioManager = temporarilyNotSupport('getBackgroundAudioManager')
+export const createAudioContext = temporarilyNotSupport('createAudioContext')
+// export const createInnerAudioContext = temporarilyNotSupport('createInnerAudioContext')
+export const createVideoContext = temporarilyNotSupport('createVideoContext')
+export const createCameraContext = temporarilyNotSupport('createCameraContext')
+export const createLivePlayerContext = temporarilyNotSupport('createLivePlayerContext')
+export const createLivePusherContext = temporarilyNotSupport('createLivePusherContext')
+
+// 位置
+export const createMapContext = temporarilyNotSupport('createMapContext')
+
+// 设备
+export const canIUse = temporarilyNotSupport('canIUse')
+// export const startAccelerometer = temporarilyNotSupport('startAccelerometer')
+// export const stopAccelerometer = temporarilyNotSupport('stopAccelerometer')
+// export const startCompass = temporarilyNotSupport('startCompass')
+// export const stopCompass = temporarilyNotSupport('stopCompass')
+export const startDeviceMotionListening = temporarilyNotSupport('startDeviceMotionListening')
+export const stopDeviceMotionListening = temporarilyNotSupport('stopDeviceMotionListening')
+
+// 界面
+export const hideToast = temporarilyNotSupport('hideToast')
+export const hideLoading = temporarilyNotSupport('hideLoading')
+export const showNavigationBarLoading = temporarilyNotSupport('showNavigationBarLoading')
+export const hideNavigationBarLoading = temporarilyNotSupport('hideNavigationBarLoading')
+export const createAnimation = temporarilyNotSupport('createAnimation')
+export const pageScrollTo = temporarilyNotSupport('pageScrollTo')
+export const createSelectorQuery = temporarilyNotSupport('createSelectorQuery')
+export const createCanvasContext = temporarilyNotSupport('createCanvasContext')
+export const createContext = temporarilyNotSupport('createContext')
+export const drawCanvas = temporarilyNotSupport('drawCanvas')
+export const hideKeyboard = temporarilyNotSupport('hideKeyboard')
+// export const stopPullDownRefresh = temporarilyNotSupport('stopPullDownRefresh')
+export const createIntersectionObserver = temporarilyNotSupport('createIntersectionObserver')
+
+// 自定义组件
+export const nextTick = temporarilyNotSupport('nextTick')
+
+// 菜单
+export const getMenuButtonBoundingClientRect = temporarilyNotSupport('getMenuButtonBoundingClientRect')
+
+// 窗口
+export const onWindowResize = temporarilyNotSupport('onWindowResize')
+export const offWindowResize = temporarilyNotSupport('offWindowResize')
+
+// 拓展接口
+export const arrayBufferToBase64 = temporarilyNotSupport('arrayBufferToBase64')
+export const base64ToArrayBuffer = temporarilyNotSupport('base64ToArrayBuffer')
+
+export const getAccountInfoSync = temporarilyNotSupport('getAccountInfoSync')
+export const getUpdateManager = temporarilyNotSupport('getUpdateManager')
+export const createWorker = temporarilyNotSupport('createWorker')
+
+// otherApis
+// 网络
+// export const uploadFile = temporarilyNotSupport('uploadFile')
+// export const downloadFile = temporarilyNotSupport('downloadFile')
+export const connectSocket = temporarilyNotSupport('connectSocket')
+export const sendSocketMessage = temporarilyNotSupport('sendSocketMessage')
+export const closeSocket = temporarilyNotSupport('closeSocket')
+
+// 媒体
+export const chooseImage = temporarilyNotSupport('chooseImage')
+export const previewImage = temporarilyNotSupport('previewImage')
+export const getImageInfo = temporarilyNotSupport('getImageInfo')
+export const saveImageToPhotosAlbum = temporarilyNotSupport('saveImageToPhotosAlbum')
+// export const startRecord = temporarilyNotSupport('startRecord')
+export const playVoice = temporarilyNotSupport('playVoice')
+export const setInnerAudioOption = temporarilyNotSupport('setInnerAudioOption')
+export const getAvailableAudioSources = temporarilyNotSupport('getAvailableAudioSources')
+export const getBackgroundAudioPlayerState = temporarilyNotSupport('getBackgroundAudioPlayerState')
+export const playBackgroundAudio = temporarilyNotSupport('playBackgroundAudio')
+export const seekBackgroundAudio = temporarilyNotSupport('seekBackgroundAudio')
+export const chooseVideo = temporarilyNotSupport('chooseVideo')
+export const saveVideoToPhotosAlbum = temporarilyNotSupport('saveVideoToPhotosAlbum')
+export const loadFontFace = temporarilyNotSupport('loadFontFace')
+
+// 文件
+export const saveFile = temporarilyNotSupport('saveFile')
+export const getFileInfo = temporarilyNotSupport('getFileInfo')
+export const getSavedFileList = temporarilyNotSupport('getSavedFileList')
+export const getSavedFileInfo = temporarilyNotSupport('getSavedFileInfo')
+export const removeSavedFile = temporarilyNotSupport('removeSavedFile')
+export const openDocument = temporarilyNotSupport('openDocument')
+
+// 数据缓存
+// export const setStorage = temporarilyNotSupport('setStorage')
+// export const getStorage = temporarilyNotSupport('getStorage')
+// export const getStorageInfo = temporarilyNotSupport('getStorageInfo')
+// export const removeStorage = temporarilyNotSupport('removeStorage')
+// export const clearStorage = temporarilyNotSupport('clearStorage')
+
+// 导航
+// export const navigateBack = temporarilyNotSupport('navigateBack')
+// export const navigateTo = temporarilyNotSupport('navigateTo')
+// export const redirectTo = temporarilyNotSupport('redirectTo')
+// export const switchTab = temporarilyNotSupport('switchTab')
+// export const reLaunch = temporarilyNotSupport('reLaunch')
+
+// 位置
+// export const getLocation = temporarilyNotSupport('getLocation')
+export const chooseLocation = temporarilyNotSupport('chooseLocation')
+export const openLocation = temporarilyNotSupport('openLocation')
+
+// 设备
+// export const getSystemInfo = temporarilyNotSupport('getSystemInfo')
+export const getNetworkType = temporarilyNotSupport('getNetworkType')
+export const makePhoneCall = temporarilyNotSupport('makePhoneCall')
+// export const scanCode = temporarilyNotSupport('scanCode')
+// export const setClipboardData = temporarilyNotSupport('setClipboardData')
+// export const getClipboardData = temporarilyNotSupport('getClipboardData')
+export const openBluetoothAdapter = temporarilyNotSupport('openBluetoothAdapter')
+export const closeBluetoothAdapter = temporarilyNotSupport('closeBluetoothAdapter')
+export const getBluetoothAdapterState = temporarilyNotSupport('getBluetoothAdapterState')
+export const startBluetoothDevicesDiscovery = temporarilyNotSupport('startBluetoothDevicesDiscovery')
+export const stopBluetoothDevicesDiscovery = temporarilyNotSupport('stopBluetoothDevicesDiscovery')
+export const getBluetoothDevices = temporarilyNotSupport('getBluetoothDevices')
+export const getConnectedBluetoothDevices = temporarilyNotSupport('getConnectedBluetoothDevices')
+export const createBLEConnection = temporarilyNotSupport('createBLEConnection')
+export const closeBLEConnection = temporarilyNotSupport('closeBLEConnection')
+export const getBLEDeviceServices = temporarilyNotSupport('getBLEDeviceServices')
+export const getBLEDeviceCharacteristics = temporarilyNotSupport('getBLEDeviceCharacteristics')
+export const readBLECharacteristicValue = temporarilyNotSupport('readBLECharacteristicValue')
+export const writeBLECharacteristicValue = temporarilyNotSupport('writeBLECharacteristicValue')
+export const notifyBLECharacteristicValueChange = temporarilyNotSupport('notifyBLECharacteristicValueChange')
+export const startBeaconDiscovery = temporarilyNotSupport('startBeaconDiscovery')
+export const stopBeaconDiscovery = temporarilyNotSupport('stopBeaconDiscovery')
+export const getBeacons = temporarilyNotSupport('getBeacons')
+export const setScreenBrightness = temporarilyNotSupport('setScreenBrightness')
+export const getScreenBrightness = temporarilyNotSupport('getScreenBrightness')
+export const setKeepScreenOn = temporarilyNotSupport('setKeepScreenOn')
+// export const vibrateLong = temporarilyNotSupport('vibrateLong')
+// export const vibrateShort = temporarilyNotSupport('vibrateShort')
+export const addPhoneContact = temporarilyNotSupport('addPhoneContact')
+export const getHCEState = temporarilyNotSupport('getHCEState')
+export const startHCE = temporarilyNotSupport('startHCE')
+export const stopHCE = temporarilyNotSupport('stopHCE')
+export const sendHCEMessage = temporarilyNotSupport('sendHCEMessage')
+export const startWifi = temporarilyNotSupport('startWifi')
+export const stopWifi = temporarilyNotSupport('stopWifi')
+export const connectWifi = temporarilyNotSupport('connectWifi')
+export const getWifiList = temporarilyNotSupport('getWifiList')
+export const setWifiList = temporarilyNotSupport('setWifiList')
+export const getConnectedWifi = temporarilyNotSupport('getConnectedWifi')
+
+// 界面
+// export const showToast = temporarilyNotSupport('showToast')
+export const showLoading = temporarilyNotSupport('showLoading')
+// export const showModal = temporarilyNotSupport('showModal')
+// export const showActionSheet = temporarilyNotSupport('showActionSheet')
+// export const setNavigationBarTitle = temporarilyNotSupport('setNavigationBarTitle')
+// export const setNavigationBarColor = temporarilyNotSupport('setNavigationBarColor')
+export const setTabBarBadge = temporarilyNotSupport('setTabBarBadge')
+export const removeTabBarBadge = temporarilyNotSupport('removeTabBarBadge')
+export const showTabBarRedDot = temporarilyNotSupport('showTabBarRedDot')
+export const hideTabBarRedDot = temporarilyNotSupport('hideTabBarRedDot')
+export const setTabBarStyle = temporarilyNotSupport('setTabBarStyle')
+export const setTabBarItem = temporarilyNotSupport('setTabBarItem')
+export const showTabBar = temporarilyNotSupport('showTabBar')
+export const hideTabBar = temporarilyNotSupport('hideTabBar')
+export const setTopBarText = temporarilyNotSupport('setTopBarText')
+// export const startPullDownRefresh = temporarilyNotSupport('startPullDownRefresh')
+export const canvasToTempFilePath = temporarilyNotSupport('canvasToTempFilePath')
+export const canvasGetImageData = temporarilyNotSupport('canvasGetImageData')
+export const canvasPutImageData = temporarilyNotSupport('canvasPutImageData')
+
+export const setBackgroundColor = temporarilyNotSupport('setBackgroundColor')
+export const setBackgroundTextStyle = temporarilyNotSupport('setBackgroundTextStyle')
+
+// 第三方平台
+export const getExtConfig = temporarilyNotSupport('getExtConfig')
+
+// 开放接口
+export const login = temporarilyNotSupport('login')
+export const checkSession = temporarilyNotSupport('checkSession')
+export const authorize = temporarilyNotSupport('authorize')
+export const getUserInfo = temporarilyNotSupport('getUserInfo')
+export const checkIsSupportFacialRecognition = temporarilyNotSupport('checkIsSupportFacialRecognition')
+export const startFacialRecognitionVerify = temporarilyNotSupport('startFacialRecognitionVerify')
+export const startFacialRecognitionVerifyAndUploadVideo = temporarilyNotSupport('startFacialRecognitionVerifyAndUploadVideo')
+export const faceVerifyForPay = temporarilyNotSupport('faceVerifyForPay')
+export const requestPayment = temporarilyNotSupport('requestPayment')
+// export const showShareMenu = temporarilyNotSupport('showShareMenu')
+export const hideShareMenu = temporarilyNotSupport('hideShareMenu')
+export const updateShareMenu = temporarilyNotSupport('updateShareMenu')
+export const getShareInfo = temporarilyNotSupport('getShareInfo')
+export const chooseAddress = temporarilyNotSupport('chooseAddress')
+export const addCard = temporarilyNotSupport('addCard')
+export const openCard = temporarilyNotSupport('openCard')
+export const openSetting = temporarilyNotSupport('openSetting')
+export const getSetting = temporarilyNotSupport('getSetting')
+export const getWeRunData = temporarilyNotSupport('getWeRunData')
+export const navigateToMiniProgram = temporarilyNotSupport('navigateToMiniProgram')
+export const navigateBackMiniProgram = temporarilyNotSupport('navigateBackMiniProgram')
+export const chooseInvoice = temporarilyNotSupport('chooseInvoice')
+export const chooseInvoiceTitle = temporarilyNotSupport('chooseInvoiceTitle')
+export const checkIsSupportSoterAuthentication = temporarilyNotSupport('checkIsSupportSoterAuthentication')
+export const startSoterAuthentication = temporarilyNotSupport('startSoterAuthentication')
+export const checkIsSoterEnrolledInDevice = temporarilyNotSupport('checkIsSoterEnrolledInDevice')
+
+export const setEnableDebug = temporarilyNotSupport('setEnableDebug')
+
+// 百度小程序专有 API
+// 百度小程序 AI 相关
+export const ocrIdCard = temporarilyNotSupport('ocrIdCard')
+export const ocrBankCard = temporarilyNotSupport('ocrBankCard')
+export const ocrDrivingLicense = temporarilyNotSupport('ocrDrivingLicense')
+export const ocrVehicleLicense = temporarilyNotSupport('ocrVehicleLicense')
+export const textReview = temporarilyNotSupport('textReview')
+export const textToAudio = temporarilyNotSupport('textToAudio')
+export const imageAudit = temporarilyNotSupport('imageAudit')
+export const advancedGeneralIdentify = temporarilyNotSupport('advancedGeneralIdentify')
+export const objectDetectIdentify = temporarilyNotSupport('objectDetectIdentify')
+export const carClassify = temporarilyNotSupport('carClassify')
+export const dishClassify = temporarilyNotSupport('dishClassify')
+export const logoClassify = temporarilyNotSupport('logoClassify')
+export const animalClassify = temporarilyNotSupport('animalClassify')
+export const plantClassify = temporarilyNotSupport('plantClassify')
+
+// 用户信息
+export const getSwanId = temporarilyNotSupport('getSwanId')
+
+// 百度收银台支付
+export const requestPolymerPayment = temporarilyNotSupport('requestPolymerPayment')
+
+// 打开小程序
+export const navigateToSmartProgram = temporarilyNotSupport('navigateToSmartProgram')
+export const navigateBackSmartProgram = temporarilyNotSupport('navigateBackSmartProgram')
+export const preloadSubPackage = temporarilyNotSupport('preloadSubPackage')
diff --git a/packages/taro-quickapp/src/api/utils/index.js b/packages/taro-quickapp/src/api/utils/index.js
index 65448d459470..f5aaa2433cb0 100644
--- a/packages/taro-quickapp/src/api/utils/index.js
+++ b/packages/taro-quickapp/src/api/utils/index.js
@@ -32,3 +32,11 @@ export function makeSyncPromise (fnName, process, options = {}) {
}
})
}
+
+export function temporarilyNotSupport (apiName) {
+ return () => {
+ const errMsg = `暂时不支持 API ${apiName}`
+ console.error(errMsg)
+ return Promise.reject(new Error(errMsg))
+ }
+}
diff --git a/packages/taro-quickapp/src/create-component.js b/packages/taro-quickapp/src/create-component.js
index 509169036014..8465cb11f424 100644
--- a/packages/taro-quickapp/src/create-component.js
+++ b/packages/taro-quickapp/src/create-component.js
@@ -102,14 +102,18 @@ function processEvent (eventHandlerName, obj) {
get () {
return Object.assign(currentTarget || target || {}, event.detail)
}
- },
- stopPropagation: {
- value: () => {}
- },
- preventDefault: {
- value: () => {}
}
})
+ if (!event.stopPropagation) {
+ Object.defineProperty(event, 'stopPropagation', {
+ value: () => {}
+ })
+ }
+ if (!event.preventDefault) {
+ Object.defineProperty(event, 'preventDefault', {
+ value: () => {}
+ })
+ }
}
const scope = this.$component
diff --git a/packages/taro-redux-h5/package.json b/packages/taro-redux-h5/package.json
index 3f4c8187c1fb..5feba2b61426 100644
--- a/packages/taro-redux-h5/package.json
+++ b/packages/taro-redux-h5/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/redux-h5",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Forked react-redux for taro",
"keywords": [
"react",
@@ -46,7 +46,7 @@
"@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.49",
"@babel/plugin-transform-react-jsx": "^7.0.0-beta.49",
"@babel/preset-env": "^7.0.0-beta.49",
- "@tarojs/taro-h5": "1.3.34",
+ "@tarojs/taro-h5": "2.0.0-beta.13",
"babel-plugin-transform-react-remove-prop-types": "^0.4.13",
"redux": "^4.0.0",
"rimraf": "^2.6.2",
diff --git a/packages/taro-redux-rn/package.json b/packages/taro-redux-rn/package.json
index 292cdcd7a7a1..ff964b53cdd4 100644
--- a/packages/taro-redux-rn/package.json
+++ b/packages/taro-redux-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-redux-rn",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "taro-redux-rn",
"main": "./src/index.js",
"files": [
diff --git a/packages/taro-redux/package.json b/packages/taro-redux/package.json
index 5fbf5c60c99d..6d452fad232d 100644
--- a/packages/taro-redux/package.json
+++ b/packages/taro-redux/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/redux",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Redux for Taro",
"main": "index.js",
"typings": "types/index.d.ts",
@@ -32,7 +32,7 @@
"jest": "^23.1.0"
},
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34"
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13"
}
}
diff --git a/packages/taro-rn-runner/package.json b/packages/taro-rn-runner/package.json
index d41f388417d2..aacd5f9d9784 100644
--- a/packages/taro-rn-runner/package.json
+++ b/packages/taro-rn-runner/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/rn-runner",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "ReactNative build tool for taro",
"main": "index.js",
"scripts": {
@@ -26,7 +26,7 @@
"cross-spawn": "^5.0.1",
"fs-extra": "^3.0.1",
"indent-string": "^3.0.0",
- "inquirer": "^7.0.0",
+ "inquirer": "^3.0.1",
"lodash": "^4.17.4",
"match-require": "^2.0.0",
"minimist": "^1.2.0",
diff --git a/packages/taro-rn/package.json b/packages/taro-rn/package.json
index aa32fe0b1b7c..c7a57c540150 100644
--- a/packages/taro-rn/package.json
+++ b/packages/taro-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-rn",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro RN framework",
"main": "./index.js",
"files": [
@@ -10,7 +10,7 @@
],
"scripts": {
"server": "node node_modules/react-native/local-cli/cli.js start",
- "build": "rm -rf ./dist && gulp",
+ "build": "rimraf ./dist && gulp",
"dev": "tsc --watch",
"prepack": "npm run build",
"test": "jest",
@@ -27,7 +27,7 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
"babel-preset-expo": "^5.2.0",
"base64-js": "^1.3.0",
"expo-av": "^6.0.0",
@@ -71,11 +71,12 @@
"jest-enzyme": "^7.0.0",
"jest-react-native": "^18.0.0",
"mock-socket": "^7.1.0",
- "react": "16.3.1",
+ "react": "16.8.0",
"react-dom": "^16.7.0",
- "react-native": "0.55.4",
+ "react-native": "0.59.9",
"react-test-renderer": "^16.5.2",
"redux": "^4.0.0",
+ "rimraf": "^3.0.0",
"ts-jest": "23.10.4",
"tslib": "1.9.3",
"typescript": "3.0.3"
diff --git a/packages/taro-rn/yarn.lock b/packages/taro-rn/yarn.lock
index 424c084d1681..f4da4d6ba226 100644
--- a/packages/taro-rn/yarn.lock
+++ b/packages/taro-rn/yarn.lock
@@ -9,7 +9,7 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@7.6.4", "@babel/core@^7.0.0-beta", "@babel/core@^7.1.0":
+"@babel/core@7.6.4", "@babel/core@^7.1.0":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff"
integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==
@@ -29,7 +29,37 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.0.0-beta", "@babel/generator@^7.4.0", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
+"@babel/core@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9"
+ integrity sha1-7hVdLhIwC8wM/2qK1G8q9QY4A+k=
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.7.7"
+ "@babel/helpers" "^7.7.4"
+ "@babel/parser" "^7.7.7"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ json5 "^2.1.0"
+ lodash "^4.17.13"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+"@babel/generator@^7.0.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45"
+ integrity sha1-hZrHM8RMdBSOGnKYCmTshLhfT0U=
+ dependencies:
+ "@babel/types" "^7.7.4"
+ jsesc "^2.5.1"
+ lodash "^4.17.13"
+ source-map "^0.5.0"
+
+"@babel/generator@^7.4.0", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
@@ -46,6 +76,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@babel/helper-annotate-as-pure@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.7.4.tgz?cache=0&sync_timestamp=1574466005922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce"
+ integrity sha1-uz+vHnS3S9VH6Gfkj1UfprCYts4=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
@@ -109,6 +146,15 @@
"@babel/template" "^7.1.0"
"@babel/types" "^7.0.0"
+"@babel/helper-function-name@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.7.4.tgz?cache=0&sync_timestamp=1574465630791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e"
+ integrity sha1-q24EHnE11DbY8KPsoV3ltno0Gi4=
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
"@babel/helper-get-function-arity@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
@@ -116,6 +162,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@babel/helper-get-function-arity@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0"
+ integrity sha1-y0Y0jS+ICOYy8KsEgXITDmNgBfA=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-hoist-variables@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
@@ -130,6 +183,13 @@
dependencies:
"@babel/types" "^7.5.5"
+"@babel/helper-member-expression-to-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74"
+ integrity sha1-NWQ44lad9zIagyZkTUt5DSEiy3Q=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-module-imports@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
@@ -137,6 +197,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@babel/helper-module-imports@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91"
+ integrity sha1-5aklKfiIi/MZpjdqv70c68SRrZE=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
@@ -156,6 +223,13 @@
dependencies:
"@babel/types" "^7.0.0"
+"@babel/helper-optimise-call-expression@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.7.4.tgz?cache=0&sync_timestamp=1574465630779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2"
+ integrity sha1-A0rzE3DSmVJCqk30AsO3eUstzfI=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-plugin-utils@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
@@ -168,7 +242,7 @@
dependencies:
lodash "^4.17.13"
-"@babel/helper-remap-async-to-generator@^7.0.0-beta", "@babel/helper-remap-async-to-generator@^7.1.0":
+"@babel/helper-remap-async-to-generator@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
@@ -179,6 +253,17 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
+"@babel/helper-remap-async-to-generator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234"
+ integrity sha1-xowkBzUNmvDgYe1nJq+0//FtAjQ=
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-wrap-function" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.5.5":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
@@ -189,6 +274,16 @@
"@babel/traverse" "^7.5.5"
"@babel/types" "^7.5.5"
+"@babel/helper-replace-supers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.7.4.tgz?cache=0&sync_timestamp=1574465645820&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2"
+ integrity sha1-PIgaamp1cSdactguYQcSbsnizdI=
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
"@babel/helper-simple-access@^7.1.0":
version "7.1.0"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
@@ -204,6 +299,13 @@
dependencies:
"@babel/types" "^7.4.4"
+"@babel/helper-split-export-declaration@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8"
+ integrity sha1-Vykq9gRDxKNiLPdAQN3Cjmgzb9g=
+ dependencies:
+ "@babel/types" "^7.7.4"
+
"@babel/helper-wrap-function@^7.1.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
@@ -214,6 +316,16 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.2.0"
+"@babel/helper-wrap-function@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace"
+ integrity sha1-N6t/7VFQ4i2dcmboMAcsDN2Lqs4=
+ dependencies:
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
"@babel/helpers@^7.6.2":
version "7.6.2"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
@@ -223,6 +335,15 @@
"@babel/traverse" "^7.6.2"
"@babel/types" "^7.6.0"
+"@babel/helpers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302"
+ integrity sha1-YsIVuebHEtrcFamg3Kt2ySqUAwI=
+ dependencies:
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
"@babel/highlight@^7.0.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
@@ -232,15 +353,20 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
+"@babel/parser@^7.0.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937"
+ integrity sha1-G4hllUGc+S2BExbVtxWlP/OLSTc=
+
"@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81"
integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==
-"@babel/plugin-external-helpers@^7.0.0-beta":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.2.0.tgz#7f4cb7dee651cd380d2034847d914288467a6be4"
- integrity sha512-QFmtcCShFkyAsNtdCM3lJPmRe1iB+vPZymlB4LnDIKEBj2yKQLQKtoxXxJ8ePT5fwMl4QGg303p4mB0UsSI2/g==
+"@babel/plugin-external-helpers@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-external-helpers/download/@babel/plugin-external-helpers-7.7.4.tgz#8aa7aa402f0e2ecb924611cbf30942a497dfd17e"
+ integrity sha1-iqeqQC8OLsuSRhHL8wlCpJff0X4=
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -265,7 +391,7 @@
"@babel/helper-replace-supers" "^7.1.0"
"@babel/plugin-syntax-class-properties" "^7.0.0"
-"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.0.0-beta":
+"@babel/plugin-proposal-class-properties@^7.0.0":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
@@ -322,7 +448,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.0.0"
-"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.0.0-beta", "@babel/plugin-proposal-object-rest-spread@^7.6.2":
+"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.6.2":
version "7.6.2"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==
@@ -383,7 +509,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.0.0-beta", "@babel/plugin-syntax-dynamic-import@^7.2.0":
+"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
@@ -397,6 +523,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-syntax-flow@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.7.4.tgz#6d91b59e1a0e4c17f36af2e10dd64ef220919d7b"
+ integrity sha1-bZG1nhoOTBfzavLhDdZO8iCRnXs=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
"@babel/plugin-syntax-flow@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c"
@@ -453,13 +586,22 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.0.0-beta", "@babel/plugin-transform-arrow-functions@^7.2.0":
+"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-async-to-generator@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.7.4.tgz?cache=0&sync_timestamp=1574465889738&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba"
+ integrity sha1-aUy+rm1hOjTvApJxP6QvtFxEcLo=
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.7.4"
+
"@babel/plugin-transform-async-to-generator@^7.1.0", "@babel/plugin-transform-async-to-generator@^7.5.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
@@ -476,7 +618,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.0.0-beta", "@babel/plugin-transform-block-scoping@^7.1.5", "@babel/plugin-transform-block-scoping@^7.6.3":
+"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.1.5", "@babel/plugin-transform-block-scoping@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a"
integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==
@@ -484,7 +626,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.13"
-"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.0.0-beta", "@babel/plugin-transform-classes@^7.1.0", "@babel/plugin-transform-classes@^7.5.5":
+"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.1.0", "@babel/plugin-transform-classes@^7.5.5":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
@@ -498,14 +640,14 @@
"@babel/helper-split-export-declaration" "^7.4.4"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.0.0-beta", "@babel/plugin-transform-computed-properties@^7.2.0":
+"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.0.0-beta", "@babel/plugin-transform-destructuring@^7.6.0":
+"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
@@ -528,7 +670,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.0.0-beta", "@babel/plugin-transform-exponentiation-operator@^7.1.0", "@babel/plugin-transform-exponentiation-operator@^7.2.0":
+"@babel/plugin-transform-exponentiation-operator@^7.0.0", "@babel/plugin-transform-exponentiation-operator@^7.1.0", "@babel/plugin-transform-exponentiation-operator@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
@@ -536,7 +678,7 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.0.0-beta":
+"@babel/plugin-transform-flow-strip-types@^7.0.0":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.6.3.tgz#8110f153e7360cfd5996eee68706cfad92d85256"
integrity sha512-l0ETkyEofkqFJ9LS6HChNIKtVJw2ylKbhYMlJ5C6df+ldxxaLIyXY4yOdDQQspfFpV8/vDiaWoJlvflstlYNxg==
@@ -544,14 +686,14 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-flow" "^7.2.0"
-"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.0.0-beta", "@babel/plugin-transform-for-of@^7.4.4":
+"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.0.0-beta", "@babel/plugin-transform-function-name@^7.1.0", "@babel/plugin-transform-function-name@^7.4.4":
+"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.1.0", "@babel/plugin-transform-function-name@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
@@ -559,13 +701,20 @@
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.0.0-beta", "@babel/plugin-transform-literals@^7.2.0":
+"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-member-expression-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a"
+ integrity sha1-ruEn8vMzn8NM5eMFXX/796om8Zo=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
"@babel/plugin-transform-member-expression-literals@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
@@ -582,7 +731,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
babel-plugin-dynamic-import-node "^2.3.0"
-"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.0.0-beta", "@babel/plugin-transform-modules-commonjs@^7.1.0", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.6.0":
+"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.1.0", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
@@ -623,13 +772,21 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-object-assign@^7.0.0", "@babel/plugin-transform-object-assign@^7.0.0-beta":
+"@babel/plugin-transform-object-assign@^7.0.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.2.0.tgz#6fdeea42be17040f119e38e23ea0f49f31968bde"
integrity sha512-nmE55cZBPFgUktbF2OuoZgPRadfxosLOpSgzEPYotKSls9J4pEPcembi8r78RU37Rph6UApCpNmsQA4QMWK9Ng==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-object-super@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262"
+ integrity sha1-SEiJN6LVhsAUhFG/Ua+dfdpWcmI=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.7.4"
+
"@babel/plugin-transform-object-super@^7.1.0", "@babel/plugin-transform-object-super@^7.5.5":
version "7.5.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
@@ -638,7 +795,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.5.5"
-"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.0.0-beta", "@babel/plugin-transform-parameters@^7.1.0", "@babel/plugin-transform-parameters@^7.4.4":
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.1.0", "@babel/plugin-transform-parameters@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
@@ -647,6 +804,13 @@
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-property-literals@^7.0.0":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2"
+ integrity sha1-I4jWUF74myZhA/RQ+RZ+a9c/mMI=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
"@babel/plugin-transform-property-literals@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
@@ -654,14 +818,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.0.0-beta":
+"@babel/plugin-transform-react-display-name@^7.0.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.0.0-beta":
+"@babel/plugin-transform-react-jsx-source@^7.0.0":
version "7.5.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b"
integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==
@@ -678,7 +842,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-jsx" "^7.0.0"
-"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.0.0-beta":
+"@babel/plugin-transform-react-jsx@^7.0.0":
version "7.3.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290"
integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==
@@ -687,7 +851,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-jsx" "^7.2.0"
-"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.0.0-beta", "@babel/plugin-transform-regenerator@^7.4.5":
+"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.5":
version "7.4.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
@@ -711,14 +875,14 @@
resolve "^1.8.1"
semver "^5.5.1"
-"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.0.0-beta", "@babel/plugin-transform-shorthand-properties@^7.2.0":
+"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.2.0":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.0.0-beta", "@babel/plugin-transform-spread@^7.6.2":
+"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.6.2":
version "7.6.2"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd"
integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==
@@ -733,7 +897,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
-"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.0.0-beta", "@babel/plugin-transform-template-literals@^7.4.4":
+"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.4.4":
version "7.4.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
@@ -869,18 +1033,25 @@
js-levenshtein "^1.1.3"
semver "^5.5.0"
-"@babel/register@^7.0.0-beta":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45"
- integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ==
+"@babel/register@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.7.7.tgz#46910c4d1926b9c6096421b23d1f9e159c1dcee1"
+ integrity sha1-RpEMTRkmucYJZCGyPR+eFZwdzuE=
dependencies:
find-cache-dir "^2.0.0"
lodash "^4.17.13"
- mkdirp "^0.5.1"
+ make-dir "^2.1.0"
pirates "^4.0.0"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.16"
+
+"@babel/runtime@^7.0.0":
+ version "7.7.7"
+ resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf"
+ integrity sha1-GUdpyo1td5DsI2Ba+e4+QqCqec8=
+ dependencies:
+ regenerator-runtime "^0.13.2"
-"@babel/template@^7.0.0", "@babel/template@^7.0.0-beta", "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
+"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
@@ -889,7 +1060,31 @@
"@babel/parser" "^7.6.0"
"@babel/types" "^7.6.0"
-"@babel/traverse@^7.0.0-beta", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
+"@babel/template@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.7.4.tgz?cache=0&sync_timestamp=1574465630781&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b"
+ integrity sha1-Qop9nuz/4n3qwKmOI7+ONnXSp3s=
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.7.4.tgz?cache=0&sync_timestamp=1574465640801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558"
+ integrity sha1-nB58YPtnn+T8+qQlAIMzM8IFhVg=
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.7.4"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.13"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
@@ -904,7 +1099,7 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
@@ -913,6 +1108,15 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
+"@babel/types@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.7.4.tgz?cache=0&sync_timestamp=1574465636802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193"
+ integrity sha1-UWVw1TnkTd8wjAdWnCWP+U/ekZM=
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
"@cnakazawa/watch@^1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
@@ -998,17 +1202,57 @@
"@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^13.0.0"
-"@tarojs/taro@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-1.3.29.tgz#20b28f577f72866a1b0470625617231633c13eae"
- integrity sha512-BhgbaWZWrs0rvz+uu1mHKnqN4CPzlQd4J00Suk0vbIgP4RSDyJplL6sOj/ZjHeGYcEDOIYpO5dopVfuXJrmiBQ==
+"@react-native-community/cli@^1.2.1":
+ version "1.12.0"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli/download/@react-native-community/cli-1.12.0.tgz?cache=0&sync_timestamp=1574167126291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40react-native-community%2Fcli%2Fdownload%2F%40react-native-community%2Fcli-1.12.0.tgz#f4cbc2204af63a87d5736d2fa6a018c1fd5efd44"
+ integrity sha1-9MvCIEr2OofVc20vpqAYwf1e/UQ=
+ dependencies:
+ chalk "^1.1.1"
+ commander "^2.19.0"
+ compression "^1.7.1"
+ connect "^3.6.5"
+ denodeify "^1.2.1"
+ envinfo "^5.7.0"
+ errorhandler "^1.5.0"
+ escape-string-regexp "^1.0.5"
+ execa "^1.0.0"
+ fs-extra "^7.0.1"
+ glob "^7.1.1"
+ graceful-fs "^4.1.3"
+ inquirer "^3.0.6"
+ lodash "^4.17.5"
+ metro "^0.51.0"
+ metro-config "^0.51.0"
+ metro-core "^0.51.0"
+ metro-memory-fs "^0.51.0"
+ metro-react-native-babel-transformer "^0.51.0"
+ mime "^1.3.4"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ morgan "^1.9.0"
+ node-fetch "^2.2.0"
+ node-notifier "^5.2.1"
+ opn "^3.0.2"
+ plist "^3.0.0"
+ semver "^5.0.3"
+ serve-static "^1.13.1"
+ shell-quote "1.6.1"
+ slash "^2.0.0"
+ ws "^1.1.0"
+ xcode "^2.0.0"
+ xmldoc "^0.4.0"
+
+"@tarojs/taro@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/taro/download/@tarojs/taro-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772870840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40tarojs%2Ftaro%2Fdownload%2F%40tarojs%2Ftaro-2.0.0-beta.13.tgz#6537b4263a27641fa51e8f98673f9ea48919af01"
+ integrity sha1-ZTe0JjonZB+lHo+YZz+epIkZrwE=
dependencies:
- "@tarojs/utils" "1.3.29"
+ "@tarojs/utils" "2.0.0-beta.13"
-"@tarojs/utils@1.3.29":
- version "1.3.29"
- resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-1.3.29.tgz#3f473a470ce64241985725b35052c1c27f5052df"
- integrity sha512-mdyUvbDIEuQ6ZyVOp24F3my3w8x7R+um/uDLO/iqpYcczoE9JSNdFJPvVf6BpCI3CcRxYaDYZ6pCTWGuGvAmOQ==
+"@tarojs/utils@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.npm.taobao.org/@tarojs/utils/download/@tarojs/utils-2.0.0-beta.13.tgz?cache=0&sync_timestamp=1577772253852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40tarojs%2Futils%2Fdownload%2F%40tarojs%2Futils-2.0.0-beta.13.tgz#a3b9b4a36ab71ac4e2a3fddd96f4fb006862ea62"
+ integrity sha1-o7m0o2q3GsTio/3dlvT7AGhi6mI=
"@types/babel-types@^7.0.7":
version "7.0.7"
@@ -1023,9 +1267,9 @@
"@types/node" "*"
"@types/enzyme@^3.9.1":
- version "3.10.3"
- resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.3.tgz#02b6c5ac7d0472005944a652e79045e2f6c66804"
- integrity sha512-f/Kcb84sZOSZiBPCkr4He9/cpuSLcKRyQaEE20Q30Prx0Dn6wcyMAWI0yofL6yvd9Ht9G7EVkQeRqK0n5w8ILw==
+ version "3.10.4"
+ resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.4.tgz#dd4961042381a7c0f6637ce25fec3f773ce489dd"
+ integrity sha512-P5XpxcIt9KK8QUH4al4ttfJfIHg6xmN9ZjyUzRSzAsmDYwRXLI05ng/flZOPXrEXmp8ZYiN8/tEXYK5KSOQk3w==
dependencies:
"@types/cheerio" "*"
"@types/react" "*"
@@ -1260,6 +1504,11 @@ ansi-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+ansi-regex@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1570188663907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+ integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1309,11 +1558,6 @@ aproba@^1.0.3:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-arch@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
- integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==
-
archy@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
@@ -1574,7 +1818,7 @@ babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
-babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0, babel-core@^6.7.2:
+babel-core@^6.0.0, babel-core@^6.26.0:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
@@ -1613,120 +1857,6 @@ babel-generator@^6.18.0, babel-generator@^6.26.0:
source-map "^0.5.7"
trim-right "^1.0.1"
-babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
- integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=
- dependencies:
- babel-helper-explode-assignable-expression "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-builder-react-jsx@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0"
- integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=
- dependencies:
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- esutils "^2.0.2"
-
-babel-helper-call-delegate@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
- integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=
- dependencies:
- babel-helper-hoist-variables "^6.24.1"
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-define-map@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
- integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-helper-explode-assignable-expression@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
- integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo=
- dependencies:
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-function-name@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
- integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=
- dependencies:
- babel-helper-get-function-arity "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-get-function-arity@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
- integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-hoist-variables@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
- integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY=
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-optimise-call-expression@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
- integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-regex@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
- integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=
- dependencies:
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-helper-remap-async-to-generator@^6.16.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
- integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-replace-supers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
- integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo=
- dependencies:
- babel-helper-optimise-call-expression "^6.24.1"
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
babel-helpers@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
@@ -1750,13 +1880,6 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-check-es2015-constants@^6.5.0, babel-plugin-check-es2015-constants@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
- integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=
- dependencies:
- babel-runtime "^6.22.0"
-
babel-plugin-dynamic-import-node@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
@@ -1764,13 +1887,6 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"
-babel-plugin-external-helpers@^6.22.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1"
- integrity sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=
- dependencies:
- babel-runtime "^6.22.0"
-
babel-plugin-istanbul@^4.1.6:
version "4.1.6"
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
@@ -1812,319 +1928,15 @@ babel-plugin-react-native-web@^0.11.2:
resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.11.7.tgz#15b578c0731bd7d65d334f9c759d95e8e4a602e2"
integrity sha512-CxE7uhhqkzAFkwV2X7+Mc/UVPujQQDtja/EGxCXRJvdYRi72QTmaJYKbK1lV9qgTZuB+TDguU89coaA9Z1BNbg==
-babel-plugin-react-transform@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz#402f25137b7bb66e9b54ead75557dfbc7ecaaa74"
- integrity sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==
- dependencies:
- lodash "^4.6.1"
-
-babel-plugin-syntax-async-functions@^6.5.0, babel-plugin-syntax-async-functions@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
- integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=
-
-babel-plugin-syntax-class-properties@^6.5.0, babel-plugin-syntax-class-properties@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
- integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=
-
-babel-plugin-syntax-dynamic-import@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
- integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=
-
-babel-plugin-syntax-exponentiation-operator@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
- integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=
-
-babel-plugin-syntax-flow@^6.18.0, babel-plugin-syntax-flow@^6.5.0, babel-plugin-syntax-flow@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
- integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=
-
-babel-plugin-syntax-jsx@^6.5.0, babel-plugin-syntax-jsx@^6.8.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
- integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
-
-babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0:
+babel-plugin-syntax-object-rest-spread@^6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
-babel-plugin-syntax-trailing-function-commas@^6.20.0, babel-plugin-syntax-trailing-function-commas@^6.5.0, babel-plugin-syntax-trailing-function-commas@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
- integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=
-
-babel-plugin-transform-async-to-generator@6.16.0:
- version "6.16.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz#19ec36cb1486b59f9f468adfa42ce13908ca2999"
- integrity sha1-Gew2yxSGtZ+fRorfpCzhOQjKKZk=
- dependencies:
- babel-helper-remap-async-to-generator "^6.16.0"
- babel-plugin-syntax-async-functions "^6.8.0"
- babel-runtime "^6.0.0"
-
-babel-plugin-transform-class-properties@^6.18.0, babel-plugin-transform-class-properties@^6.5.0, babel-plugin-transform-class-properties@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
- integrity sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-plugin-syntax-class-properties "^6.8.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-arrow-functions@^6.5.0, babel-plugin-transform-es2015-arrow-functions@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
- integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoped-functions@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
- integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoping@^6.5.0, babel-plugin-transform-es2015-block-scoping@^6.8.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
- integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=
- dependencies:
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-plugin-transform-es2015-classes@^6.5.0, babel-plugin-transform-es2015-classes@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
- integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=
- dependencies:
- babel-helper-define-map "^6.24.1"
- babel-helper-function-name "^6.24.1"
- babel-helper-optimise-call-expression "^6.24.1"
- babel-helper-replace-supers "^6.24.1"
- babel-messages "^6.23.0"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-computed-properties@^6.5.0, babel-plugin-transform-es2015-computed-properties@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
- integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-destructuring@6.x, babel-plugin-transform-es2015-destructuring@^6.5.0, babel-plugin-transform-es2015-destructuring@^6.8.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
- integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-for-of@^6.5.0, babel-plugin-transform-es2015-for-of@^6.8.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
- integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-function-name@6.x, babel-plugin-transform-es2015-function-name@^6.5.0, babel-plugin-transform-es2015-function-name@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
- integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=
- dependencies:
- babel-helper-function-name "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-literals@^6.5.0, babel-plugin-transform-es2015-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
- integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-modules-commonjs@6.x, babel-plugin-transform-es2015-modules-commonjs@^6.5.0, babel-plugin-transform-es2015-modules-commonjs@^6.8.0:
- version "6.26.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3"
- integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==
- dependencies:
- babel-plugin-transform-strict-mode "^6.24.1"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-types "^6.26.0"
-
-babel-plugin-transform-es2015-object-super@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
- integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40=
- dependencies:
- babel-helper-replace-supers "^6.24.1"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-parameters@6.x, babel-plugin-transform-es2015-parameters@^6.5.0, babel-plugin-transform-es2015-parameters@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
- integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=
- dependencies:
- babel-helper-call-delegate "^6.24.1"
- babel-helper-get-function-arity "^6.24.1"
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-shorthand-properties@6.x, babel-plugin-transform-es2015-shorthand-properties@^6.5.0, babel-plugin-transform-es2015-shorthand-properties@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
- integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-spread@6.x, babel-plugin-transform-es2015-spread@^6.5.0, babel-plugin-transform-es2015-spread@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
- integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-sticky-regex@6.x:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
- integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw=
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-template-literals@^6.5.0, babel-plugin-transform-es2015-template-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
- integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-unicode-regex@6.x:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
- integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek=
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- regexpu-core "^2.0.0"
-
-babel-plugin-transform-es3-member-expression-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz#733d3444f3ecc41bef8ed1a6a4e09657b8969ebb"
- integrity sha1-cz00RPPsxBvvjtGmpOCWV7iWnrs=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es3-property-literals@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz#b2078d5842e22abf40f73e8cde9cd3711abd5758"
- integrity sha1-sgeNWELiKr9A9z6M3pzTcRq9V1g=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-exponentiation-operator@^6.5.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
- integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=
- dependencies:
- babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
- babel-plugin-syntax-exponentiation-operator "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-flow-strip-types@^6.21.0, babel-plugin-transform-flow-strip-types@^6.5.0, babel-plugin-transform-flow-strip-types@^6.8.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
- integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=
- dependencies:
- babel-plugin-syntax-flow "^6.18.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-object-assign@^6.5.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-assign/-/babel-plugin-transform-object-assign-6.22.0.tgz#f99d2f66f1a0b0d498e346c5359684740caa20ba"
- integrity sha1-+Z0vZvGgsNSY40bFNZaEdAyqILo=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-object-rest-spread@^6.20.2, babel-plugin-transform-object-rest-spread@^6.5.0, babel-plugin-transform-object-rest-spread@^6.8.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
- integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
- dependencies:
- babel-plugin-syntax-object-rest-spread "^6.8.0"
- babel-runtime "^6.26.0"
-
-babel-plugin-transform-react-display-name@^6.5.0, babel-plugin-transform-react-display-name@^6.8.0:
- version "6.25.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
- integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-jsx-source@^6.5.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
- integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=
- dependencies:
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-react-jsx@^6.5.0, babel-plugin-transform-react-jsx@^6.8.0:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
- integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM=
- dependencies:
- babel-helper-builder-react-jsx "^6.24.1"
- babel-plugin-syntax-jsx "^6.8.0"
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-regenerator@^6.5.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
- integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=
- dependencies:
- regenerator-transform "^0.10.0"
-
-babel-plugin-transform-strict-mode@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
- integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-preset-es2015-node@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz#60b23157024b0cfebf3a63554cb05ee035b4e55f"
- integrity sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=
- dependencies:
- babel-plugin-transform-es2015-destructuring "6.x"
- babel-plugin-transform-es2015-function-name "6.x"
- babel-plugin-transform-es2015-modules-commonjs "6.x"
- babel-plugin-transform-es2015-parameters "6.x"
- babel-plugin-transform-es2015-shorthand-properties "6.x"
- babel-plugin-transform-es2015-spread "6.x"
- babel-plugin-transform-es2015-sticky-regex "6.x"
- babel-plugin-transform-es2015-unicode-regex "6.x"
- semver "5.x"
+babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
+ version "7.0.0-beta.0"
+ resolved "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf"
+ integrity sha1-qiE8FDXiv/62/KhCKH71NK0F1c8=
babel-preset-expo@^5.2.0:
version "5.2.0"
@@ -2139,39 +1951,38 @@ babel-preset-expo@^5.2.0:
babel-plugin-react-native-web "^0.11.2"
metro-react-native-babel-preset "^0.51.1"
-babel-preset-fbjs@^2.1.2, babel-preset-fbjs@^2.1.4:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-2.3.0.tgz#92ff81307c18b926895114f9828ae1674c097f80"
- integrity sha512-ZOpAI1/bN0Y3J1ZAK9gRsFkHy9gGgJoDRUjtUCla/129LC7uViq9nIK22YdHfey8szohYoZY3f9L2lGOv0Edqw==
- dependencies:
- babel-plugin-check-es2015-constants "^6.8.0"
- babel-plugin-syntax-class-properties "^6.8.0"
- babel-plugin-syntax-flow "^6.8.0"
- babel-plugin-syntax-jsx "^6.8.0"
- babel-plugin-syntax-object-rest-spread "^6.8.0"
- babel-plugin-syntax-trailing-function-commas "^6.8.0"
- babel-plugin-transform-class-properties "^6.8.0"
- babel-plugin-transform-es2015-arrow-functions "^6.8.0"
- babel-plugin-transform-es2015-block-scoped-functions "^6.8.0"
- babel-plugin-transform-es2015-block-scoping "^6.8.0"
- babel-plugin-transform-es2015-classes "^6.8.0"
- babel-plugin-transform-es2015-computed-properties "^6.8.0"
- babel-plugin-transform-es2015-destructuring "^6.8.0"
- babel-plugin-transform-es2015-for-of "^6.8.0"
- babel-plugin-transform-es2015-function-name "^6.8.0"
- babel-plugin-transform-es2015-literals "^6.8.0"
- babel-plugin-transform-es2015-modules-commonjs "^6.8.0"
- babel-plugin-transform-es2015-object-super "^6.8.0"
- babel-plugin-transform-es2015-parameters "^6.8.0"
- babel-plugin-transform-es2015-shorthand-properties "^6.8.0"
- babel-plugin-transform-es2015-spread "^6.8.0"
- babel-plugin-transform-es2015-template-literals "^6.8.0"
- babel-plugin-transform-es3-member-expression-literals "^6.8.0"
- babel-plugin-transform-es3-property-literals "^6.8.0"
- babel-plugin-transform-flow-strip-types "^6.8.0"
- babel-plugin-transform-object-rest-spread "^6.8.0"
- babel-plugin-transform-react-display-name "^6.8.0"
- babel-plugin-transform-react-jsx "^6.8.0"
+babel-preset-fbjs@^3.0.1, babel-preset-fbjs@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541"
+ integrity sha1-pgJHZOqGyOBqIteUyotpU00mNUE=
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-syntax-class-properties" "^7.0.0"
+ "@babel/plugin-syntax-flow" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-member-expression-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-super" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-property-literals" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
babel-preset-jest@^23.2.0:
version "23.2.0"
@@ -2181,45 +1992,7 @@ babel-preset-jest@^23.2.0:
babel-plugin-jest-hoist "^23.2.0"
babel-plugin-syntax-object-rest-spread "^6.13.0"
-babel-preset-react-native@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/babel-preset-react-native/-/babel-preset-react-native-4.0.1.tgz#14ff07bdb6c8df9408082c0c18b2ce8e3392e76a"
- integrity sha512-uhFXnl1WbEWNG4W8QB/jeQaVXkd0a0AD+wh4D2VqtdRnEyvscahqyHExnwKLU9N0sXRYwDyed4JfbiBtiOSGgA==
- dependencies:
- babel-plugin-check-es2015-constants "^6.5.0"
- babel-plugin-react-transform "^3.0.0"
- babel-plugin-syntax-async-functions "^6.5.0"
- babel-plugin-syntax-class-properties "^6.5.0"
- babel-plugin-syntax-dynamic-import "^6.18.0"
- babel-plugin-syntax-flow "^6.5.0"
- babel-plugin-syntax-jsx "^6.5.0"
- babel-plugin-syntax-trailing-function-commas "^6.5.0"
- babel-plugin-transform-class-properties "^6.5.0"
- babel-plugin-transform-es2015-arrow-functions "^6.5.0"
- babel-plugin-transform-es2015-block-scoping "^6.5.0"
- babel-plugin-transform-es2015-classes "^6.5.0"
- babel-plugin-transform-es2015-computed-properties "^6.5.0"
- babel-plugin-transform-es2015-destructuring "^6.5.0"
- babel-plugin-transform-es2015-for-of "^6.5.0"
- babel-plugin-transform-es2015-function-name "^6.5.0"
- babel-plugin-transform-es2015-literals "^6.5.0"
- babel-plugin-transform-es2015-modules-commonjs "^6.5.0"
- babel-plugin-transform-es2015-parameters "^6.5.0"
- babel-plugin-transform-es2015-shorthand-properties "^6.5.0"
- babel-plugin-transform-es2015-spread "^6.5.0"
- babel-plugin-transform-es2015-template-literals "^6.5.0"
- babel-plugin-transform-exponentiation-operator "^6.5.0"
- babel-plugin-transform-flow-strip-types "^6.5.0"
- babel-plugin-transform-object-assign "^6.5.0"
- babel-plugin-transform-object-rest-spread "^6.5.0"
- babel-plugin-transform-react-display-name "^6.5.0"
- babel-plugin-transform-react-jsx "^6.5.0"
- babel-plugin-transform-react-jsx-source "^6.5.0"
- babel-plugin-transform-regenerator "^6.5.0"
- babel-template "^6.24.1"
- react-transform-hmr "^1.0.4"
-
-babel-register@^6.24.1, babel-register@^6.26.0:
+babel-register@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
@@ -2232,7 +2005,7 @@ babel-register@^6.24.1, babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -2251,7 +2024,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
babylon "^6.18.0"
lodash "^4.17.4"
-babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
+babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
@@ -2266,7 +2039,7 @@ babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-tra
invariant "^2.2.2"
lodash "^4.17.4"
-babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
+babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
@@ -2281,11 +2054,6 @@ babylon@^6.18.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-babylon@^7.0.0-beta:
- version "7.0.0-beta.47"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80"
- integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==
-
bach@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880"
@@ -2306,17 +2074,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-base64-js@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
- integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=
-
-base64-js@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8"
- integrity sha1-1kAMrBxMZgl22Q0HoENR2JOV9eg=
-
-base64-js@^1.1.2, base64-js@^1.3.0:
+base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
@@ -2348,10 +2106,10 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-big-integer@^1.6.7:
- version "1.6.47"
- resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.47.tgz#e1e9320e26c4cc81f64fbf4b3bb20e025bf18e2d"
- integrity sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg==
+big-integer@^1.6.44:
+ version "1.6.48"
+ resolved "https://registry.npm.taobao.org/big-integer/download/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e"
+ integrity sha1-j9iL0WMsukocjD49cVnwi7lbS54=
binary-extensions@^1.0.0:
version "1.13.1"
@@ -2368,19 +2126,19 @@ boolbase@~1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-bplist-creator@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.0.7.tgz#37df1536092824b87c42f957b01344117372ae45"
- integrity sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=
+bplist-creator@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npm.taobao.org/bplist-creator/download/bplist-creator-0.0.8.tgz#56b2a6e79e9aec3fc33bf831d09347d73794e79c"
+ integrity sha1-VrKm556a7D/DO/gx0JNH1zeU55w=
dependencies:
stream-buffers "~2.2.0"
-bplist-parser@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6"
- integrity sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=
+bplist-parser@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npm.taobao.org/bplist-parser/download/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
+ integrity sha1-Q6nRg+W/nVRSAM6sPnEveeu+jQ4=
dependencies:
- big-integer "^1.6.7"
+ big-integer "^1.6.44"
brace-expansion@^1.1.7:
version "1.1.11"
@@ -2450,6 +2208,11 @@ bser@^2.0.0:
dependencies:
node-int64 "^0.4.0"
+buffer-crc32@^0.2.13:
+ version "0.2.13"
+ resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
buffer-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
@@ -2480,6 +2243,20 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
callsites@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
@@ -2535,7 +2312,7 @@ chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2622,14 +2399,6 @@ cli-width@^2.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
-clipboardy@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.3.tgz#0526361bf78724c1f20be248d428e365433c07ef"
- integrity sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==
- dependencies:
- arch "^2.1.0"
- execa "^0.8.0"
-
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
@@ -2805,6 +2574,13 @@ convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0,
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=
+ dependencies:
+ safe-buffer "~5.1.1"
+
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
@@ -2841,6 +2617,16 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+cosmiconfig@^5.0.5:
+ version "5.2.1"
+ resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710682964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo=
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
create-react-class@^15.6.3:
version "15.6.3"
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
@@ -3205,16 +2991,10 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
-envinfo@^3.0.0:
- version "3.11.1"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-3.11.1.tgz#45968faf5079aa797b7dcdc3b123f340d4529e1c"
- integrity sha512-hKkh7aKtont6Zuv4RmE4VkOc96TkBj9NXj7Ghsd/qCA9LuJI0Dh+ImwA1N5iORB9Vg+sz5bq9CHJzs51BILNCQ==
- dependencies:
- clipboardy "^1.2.2"
- glob "^7.1.2"
- minimist "^1.2.0"
- os-name "^2.0.1"
- which "^1.2.14"
+envinfo@^5.7.0:
+ version "5.12.1"
+ resolved "https://registry.npm.taobao.org/envinfo/download/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef"
+ integrity sha1-gwaMM+CXLrZX1rxppt8wut77Ru8=
enzyme-adapter-react-16@^1.7.1:
version "1.15.1"
@@ -3391,18 +3171,6 @@ escodegen@^1.9.1:
optionalDependencies:
source-map "~0.6.1"
-eslint-plugin-react-native-globals@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
- integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
-
-eslint-plugin-react-native@^3.2.1:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.7.0.tgz#7e2cc1f3cf24919c4c0ea7fac13301e7444e105f"
- integrity sha512-krLtQmGih/uJDPxF8DBpnU8J3kRUsDm/Dey5yEhOO8LN1I3Wesbk4PGCg8Zah57azKFU+9YtGooFjJcDJWUs+g==
- dependencies:
- eslint-plugin-react-native-globals "^0.1.1"
-
esprima@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
@@ -3463,19 +3231,6 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
- integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -3709,14 +3464,19 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-fbjs-scripts@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/fbjs-scripts/-/fbjs-scripts-0.8.3.tgz#b854de7a11e62a37f72dab9aaf4d9b53c4a03174"
- integrity sha512-aUJ/uEzMIiBYuj/blLp4sVNkQQ7ZEB/lyplG1IzzOmZ83meiWecrGg5jBo4wWrxXmO4RExdtsSV1QkTjPt2Gag==
+fbjs-css-vars@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/fbjs-css-vars/download/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
+ integrity sha1-IWVRE2rgL+JVkyw+yHdfGOLAeLg=
+
+fbjs-scripts@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.npm.taobao.org/fbjs-scripts/download/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27"
+ integrity sha1-BpoMBjQkLRADHGRg7x/M782uiyc=
dependencies:
+ "@babel/core" "^7.0.0"
ansi-colors "^1.0.1"
- babel-core "^6.7.2"
- babel-preset-fbjs "^2.1.2"
+ babel-preset-fbjs "^3.2.0"
core-js "^2.4.1"
cross-spawn "^5.1.0"
fancy-log "^1.3.2"
@@ -3725,7 +3485,7 @@ fbjs-scripts@^0.8.1:
semver "^5.1.0"
through2 "^2.0.0"
-fbjs@^0.8.14, fbjs@^0.8.16, fbjs@^0.8.9:
+fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@@ -3738,6 +3498,20 @@ fbjs@^0.8.14, fbjs@^0.8.16, fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.18"
+fbjs@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a"
+ integrity sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=
+ dependencies:
+ core-js "^2.4.1"
+ fbjs-css-vars "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.18"
+
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
@@ -3929,6 +3703,15 @@ fs-extra@^1.0.0:
jsonfile "^2.1.0"
klaw "^1.0.0"
+fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -4203,9 +3986,9 @@ gulplog@^1.0.0:
glogg "^1.0.0"
handlebars@^4.0.3:
- version "4.4.5"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.5.tgz#1b1f94f9bfe7379adda86a8b73fb570265a0dddd"
- integrity sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg==
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
neo-async "^2.6.0"
optimist "^0.6.1"
@@ -4376,6 +4159,14 @@ image-size@^0.6.0:
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2"
integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
import-local@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
@@ -4549,6 +4340,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
is-dotfile@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
@@ -4949,20 +4745,6 @@ jest-diff@^23.6.0:
jest-get-type "^22.1.0"
pretty-format "^23.6.0"
-jest-docblock@22.4.0:
- version "22.4.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8"
- integrity sha512-lDY7GZ+/CJb02oULYLBDj7Hs5shBhVpDYpIm8LUyqw9X2J22QRsM19gmGQwIFqGSJmpc/LRrSYudeSrG510xlQ==
- dependencies:
- detect-newline "^2.1.0"
-
-jest-docblock@^22.4.0:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19"
- integrity sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==
- dependencies:
- detect-newline "^2.1.0"
-
jest-docblock@^23.2.0:
version "23.2.0"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7"
@@ -5028,18 +4810,18 @@ jest-get-type@^22.1.0:
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
-jest-haste-map@22.4.2:
- version "22.4.2"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4"
- integrity sha512-EdQADHGXRqHJYAr7q9B9YYHZnrlcMwhx1+DnIgc9uN05nCW3RvGCxJ91MqWXcC1AzatLoSv7SNd0qXMp2jKBDA==
+jest-haste-map@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.0.0-alpha.6.tgz?cache=0&sync_timestamp=1566444279671&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-24.0.0-alpha.6.tgz#fb2c785080f391b923db51846b86840d0d773076"
+ integrity sha1-+yx4UIDzkbkj21GEa4aEDQ13MHY=
dependencies:
fb-watchman "^2.0.0"
graceful-fs "^4.1.11"
- jest-docblock "^22.4.0"
- jest-serializer "^22.4.0"
- jest-worker "^22.2.2"
+ invariant "^2.2.4"
+ jest-serializer "^24.0.0-alpha.6"
+ jest-worker "^24.0.0-alpha.6"
micromatch "^2.3.11"
- sane "^2.0.0"
+ sane "^3.0.0"
jest-haste-map@^23.6.0:
version "23.6.0"
@@ -5223,17 +5005,17 @@ jest-runtime@^23.6.0:
write-file-atomic "^2.1.0"
yargs "^11.0.0"
-jest-serializer@^22.4.0:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436"
- integrity sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==
+jest-serializer@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.0.0-alpha.6.tgz#27d2fee4b1a85698717a30c3ec2ab80767312597"
+ integrity sha1-J9L+5LGoVphxejDD7Cq4B2cxJZc=
jest-serializer@^23.0.1:
version "23.0.1"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165"
integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=
-jest-serializer@^24.9.0:
+jest-serializer@^24.0.0-alpha.6, jest-serializer@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
@@ -5305,17 +5087,10 @@ jest-watcher@^23.4.0:
chalk "^2.0.1"
string-length "^2.0.0"
-jest-worker@22.2.2:
- version "22.2.2"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390"
- integrity sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==
- dependencies:
- merge-stream "^1.0.1"
-
-jest-worker@^22.2.2:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b"
- integrity sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==
+jest-worker@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.0.0-alpha.6.tgz#463681b92c117c57107135c14b9b9d6cd51d80ce"
+ integrity sha1-RjaBuSwRfFcQcTXBS5udbNUdgM4=
dependencies:
merge-stream "^1.0.1"
@@ -5326,7 +5101,7 @@ jest-worker@^23.2.0:
dependencies:
merge-stream "^1.0.1"
-jest-worker@^24.9.0:
+jest-worker@^24.0.0-alpha.6, jest-worker@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
@@ -5357,7 +5132,7 @@ js-tokens@^3.0.2:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-js-yaml@^3.7.0:
+js-yaml@^3.13.1, js-yaml@^3.7.0:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -5456,11 +5231,6 @@ json5@2.x, json5@^2.1.0:
dependencies:
minimist "^1.2.0"
-json5@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.4.0.tgz#054352e4c4c80c86c0923877d449de176a732c8d"
- integrity sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=
-
json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
@@ -5473,6 +5243,13 @@ jsonfile@^2.1.0:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
@@ -5570,7 +5347,7 @@ lead@^1.0.0:
dependencies:
flush-write-stream "^1.0.2"
-left-pad@^1.1.3, left-pad@^1.3.0:
+left-pad@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
@@ -5740,11 +5517,6 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash@^3.5.0:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
- integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=
-
lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.1:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
@@ -5765,12 +5537,7 @@ lru-cache@^4.0.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
-macos-release@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-1.1.0.tgz#831945e29365b470aa8724b0ab36c8f8959d10fb"
- integrity sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==
-
-make-dir@^2.0.0:
+make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
@@ -5864,6 +5631,45 @@ merge@^1.2.0:
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
+metro-babel-register@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-register/download/metro-babel-register-0.51.0.tgz#d86d3f2d90b45c7a3c6ae67a53bd1e50bad7a24d"
+ integrity sha1-2G0/LZC0XHo8auZ6U70eULrXok0=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-transform-async-to-generator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/register" "^7.0.0"
+ core-js "^2.2.2"
+ escape-string-regexp "^1.0.5"
+
+metro-babel-transformer@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.51.0.tgz#9ee5199163ac46b2057527b3f8cbd8b089ffc03e"
+ integrity sha1-nuUZkWOsRrIFdSez+MvYsIn/wD4=
+ dependencies:
+ "@babel/core" "^7.0.0"
+
+metro-babel-transformer@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.51.1.tgz#97be9e2b96c78aa202b52ae05fb86f71327aef72"
+ integrity sha1-l76eK5bHiqICtSrgX7hvcTJ673I=
+ dependencies:
+ "@babel/core" "^7.0.0"
+
+metro-babel7-plugin-react-transform@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-babel7-plugin-react-transform/download/metro-babel7-plugin-react-transform-0.51.0.tgz#af27dd81666b91f05d2b371b0d6d283c585e38b6"
+ integrity sha1-ryfdgWZrkfBdKzcbDW0oPFheOLY=
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+
metro-babel7-plugin-react-transform@0.51.1:
version "0.51.1"
resolved "https://registry.yarnpkg.com/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.51.1.tgz#9cce2c340cc4006fc82aa6dfab27af22d592607e"
@@ -5871,37 +5677,91 @@ metro-babel7-plugin-react-transform@0.51.1:
dependencies:
"@babel/helper-module-imports" "^7.0.0"
-metro-babylon7@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-babylon7/-/metro-babylon7-0.30.2.tgz#73784a958916bf5541b6a930598b62460fc376f5"
- integrity sha512-ZI0h4/3raGnzA6fFXwLUMidGOG4jkDi9fgFkoI8I4Ack3TDMabmZATu9RD6DaSolu3lylhfPd8DeAAMeopX9CA==
+metro-cache@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-cache/download/metro-cache-0.51.1.tgz#d0b296eab8e009214413bba87e4eac3d9b44cd04"
+ integrity sha1-0LKW6rjgCSFEE7uofk6sPZtEzQQ=
dependencies:
- babylon "^7.0.0-beta"
+ jest-serializer "24.0.0-alpha.6"
+ metro-core "0.51.1"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
-metro-cache@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.30.2.tgz#1fb1ff92d3d8c596fd8cddc1635a9cb1c26e4cba"
- integrity sha512-XYd07OwgtZRHFXyip40wdNJ8abPJRziuE5bb3jjf8wvyHxCpzlZlvbe0ZhcR8ChBwFUjHMuVyoou52AC3a0f+g==
+metro-config@0.51.1, metro-config@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-config/download/metro-config-0.51.1.tgz#8f1a241ce2c0b521cd492c39bc5c6c69e3397b82"
+ integrity sha1-jxokHOLAtSHNSSw5vFxsaeM5e4I=
dependencies:
- jest-serializer "^22.4.0"
- mkdirp "^0.5.1"
+ cosmiconfig "^5.0.5"
+ metro "0.51.1"
+ metro-cache "0.51.1"
+ metro-core "0.51.1"
+ pretty-format "24.0.0-alpha.6"
-metro-core@0.30.2, metro-core@^0.30.0:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.30.2.tgz#380ae13cceee29e5be166df7acca9f1daa19fd7e"
- integrity sha512-2Y89PpD9sE/8QaHhYxaI21WFxkVmjbxdphiOPdsC9t7A3kQHMYOTQPYFon3bkYM7tL8k9YVBimXSv20JGglqUA==
+metro-core@0.51.1, metro-core@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-core/download/metro-core-0.51.1.tgz#e7227fb1dd1bb3f953272fad9876e6201140b038"
+ integrity sha1-5yJ/sd0bs/lTJy+tmHbmIBFAsDg=
dependencies:
+ jest-haste-map "24.0.0-alpha.6"
lodash.throttle "^4.1.1"
+ metro-resolver "0.51.1"
wordwrap "^1.0.0"
-metro-minify-uglify@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.30.2.tgz#7299a0376ad6340e9acf415912d54b5309702040"
- integrity sha512-xwqMqYYKZEqJ66Wpf5OpyPJhApOQDb8rYiO94VInlDeHpN7eKGCVILclnx9AmVM3dStmebvXa5jrdgsbnJ1bSg==
+metro-memory-fs@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-memory-fs/download/metro-memory-fs-0.51.1.tgz#624291f5956b0fd11532d80b1b85d550926f96c9"
+ integrity sha1-YkKR9ZVrD9EVMtgLG4XVUJJvlsk=
+
+metro-minify-uglify@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.51.1.tgz#60cd8fe4d3e82d6670c717b8ddb52ae63199c0e4"
+ integrity sha1-YM2P5NPoLWZwxxe43bUq5jGZwOQ=
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@^0.51.1:
+metro-react-native-babel-preset@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.51.0.tgz#978d960acf2d214bbbe43e59145878d663bd07de"
+ integrity sha1-l42WCs8tIUu75D5ZFFh41mO9B94=
+ dependencies:
+ "@babel/plugin-proposal-class-properties" "^7.0.0"
+ "@babel/plugin-proposal-export-default-from" "^7.0.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.0.0"
+ "@babel/plugin-syntax-export-default-from" "^7.0.0"
+ "@babel/plugin-transform-arrow-functions" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.0.0"
+ "@babel/plugin-transform-classes" "^7.0.0"
+ "@babel/plugin-transform-computed-properties" "^7.0.0"
+ "@babel/plugin-transform-destructuring" "^7.0.0"
+ "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
+ "@babel/plugin-transform-flow-strip-types" "^7.0.0"
+ "@babel/plugin-transform-for-of" "^7.0.0"
+ "@babel/plugin-transform-function-name" "^7.0.0"
+ "@babel/plugin-transform-literals" "^7.0.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.0.0"
+ "@babel/plugin-transform-object-assign" "^7.0.0"
+ "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-react-display-name" "^7.0.0"
+ "@babel/plugin-transform-react-jsx" "^7.0.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/plugin-transform-regenerator" "^7.0.0"
+ "@babel/plugin-transform-runtime" "^7.0.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.0.0"
+ "@babel/plugin-transform-spread" "^7.0.0"
+ "@babel/plugin-transform-sticky-regex" "^7.0.0"
+ "@babel/plugin-transform-template-literals" "^7.0.0"
+ "@babel/plugin-transform-typescript" "^7.0.0"
+ "@babel/plugin-transform-unicode-regex" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ metro-babel7-plugin-react-transform "0.51.0"
+ react-transform-hmr "^1.0.4"
+
+metro-react-native-babel-preset@0.51.1, metro-react-native-babel-preset@^0.51.1:
version "0.51.1"
resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.51.1.tgz#44aeeedfea37f7c2ab8f6f273fa71b90fe65f089"
integrity sha512-e9tsYDFhU70gar0jQWcZXRPJVCv4k7tEs6Pm74wXO2OO/T1MEumbvniDIGwGG8bG8RUnYdHhjcaiub2Vc5BRWw==
@@ -5942,97 +5802,85 @@ metro-react-native-babel-preset@^0.51.1:
metro-babel7-plugin-react-transform "0.51.1"
react-transform-hmr "^1.0.4"
-metro-resolver@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.30.2.tgz#c26847e59cdc6a8ab1fb4b92d765165ec06946dd"
- integrity sha512-bODCys/WYpqJ+KYbCIENZu1eqdQu3g/d2fXfhAROhutqojMqrT1eIGhzWpk3G1k/J6vlaf69uW6xrVuheg0ktg==
+metro-react-native-babel-transformer@0.51.0:
+ version "0.51.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.51.0.tgz#57a695e97a19d95de63c9633f9d0dc024ee8e99a"
+ integrity sha1-V6aV6XoZ2V3mPJYz+dDcAk7o6Zo=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ babel-preset-fbjs "^3.0.1"
+ metro-babel-transformer "0.51.0"
+ metro-react-native-babel-preset "0.51.0"
+
+metro-react-native-babel-transformer@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.51.1.tgz#bac34f988c150c725cd1875c13701cc2032615f9"
+ integrity sha1-usNPmIwVDHJc0YdcE3AcwgMmFfk=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ babel-preset-fbjs "^3.0.1"
+ metro-babel-transformer "0.51.1"
+ metro-react-native-babel-preset "0.51.1"
+
+metro-resolver@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.51.1.tgz#4c26f0baee47d30250187adca3d34c902e627611"
+ integrity sha1-TCbwuu5H0wJQGHrco9NMkC5idhE=
dependencies:
absolute-path "^0.0.0"
-metro-source-map@0.30.2:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.30.2.tgz#4ac056642a2c521d974d42a617c8731d094365bb"
- integrity sha512-9tW3B1JOdXhyDJnR4wOPOsOlYWSL+xh6J+N5/DADGEK/X/+Up/lEHdEfpB+/+yGk1LHaRHcKCahtLPNl/to7Sg==
+metro-source-map@0.51.1:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.51.1.tgz#1a8da138e98e184304d5558b4f92a5c2141822d0"
+ integrity sha1-Go2hOOmOGEME1VWLT5KlwhQYItA=
dependencies:
source-map "^0.5.6"
-metro@^0.30.0:
- version "0.30.2"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.30.2.tgz#e722e0eb106530f6d5bcf8de1f50353a0732cfb3"
- integrity sha512-wmdkh4AsfZjWaMM++KMDswQHdyo5L9a0XAaQBL4XTJdQIRG+x+Rmjixe7tDki5jKwe9XxsjjbpbdYKswOANuiw==
- dependencies:
- "@babel/core" "^7.0.0-beta"
- "@babel/generator" "^7.0.0-beta"
- "@babel/helper-remap-async-to-generator" "^7.0.0-beta"
- "@babel/plugin-external-helpers" "^7.0.0-beta"
- "@babel/plugin-proposal-class-properties" "^7.0.0-beta"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0-beta"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0-beta"
- "@babel/plugin-transform-arrow-functions" "^7.0.0-beta"
- "@babel/plugin-transform-block-scoping" "^7.0.0-beta"
- "@babel/plugin-transform-classes" "^7.0.0-beta"
- "@babel/plugin-transform-computed-properties" "^7.0.0-beta"
- "@babel/plugin-transform-destructuring" "^7.0.0-beta"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0-beta"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0-beta"
- "@babel/plugin-transform-for-of" "^7.0.0-beta"
- "@babel/plugin-transform-function-name" "^7.0.0-beta"
- "@babel/plugin-transform-literals" "^7.0.0-beta"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0-beta"
- "@babel/plugin-transform-object-assign" "^7.0.0-beta"
- "@babel/plugin-transform-parameters" "^7.0.0-beta"
- "@babel/plugin-transform-react-display-name" "^7.0.0-beta"
- "@babel/plugin-transform-react-jsx" "^7.0.0-beta"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0-beta"
- "@babel/plugin-transform-regenerator" "^7.0.0-beta"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0-beta"
- "@babel/plugin-transform-spread" "^7.0.0-beta"
- "@babel/plugin-transform-template-literals" "^7.0.0-beta"
- "@babel/register" "^7.0.0-beta"
- "@babel/template" "^7.0.0-beta"
- "@babel/traverse" "^7.0.0-beta"
- "@babel/types" "^7.0.0-beta"
+metro@0.51.1, metro@^0.51.0:
+ version "0.51.1"
+ resolved "https://registry.npm.taobao.org/metro/download/metro-0.51.1.tgz#b0aad4731593b9f244261bad1abb2a006d1c8969"
+ integrity sha1-sKrUcxWTufJEJhutGrsqAG0ciWk=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.0.0"
+ "@babel/parser" "^7.0.0"
+ "@babel/plugin-external-helpers" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
absolute-path "^0.0.0"
async "^2.4.0"
- babel-core "^6.24.1"
- babel-generator "^6.26.0"
- babel-plugin-external-helpers "^6.22.0"
- babel-plugin-react-transform "^3.0.0"
- babel-plugin-transform-flow-strip-types "^6.21.0"
- babel-preset-es2015-node "^6.1.1"
- babel-preset-fbjs "^2.1.4"
- babel-preset-react-native "^4.0.0"
- babel-register "^6.24.1"
- babel-template "^6.24.1"
- babylon "^6.18.0"
- chalk "^1.1.1"
+ babel-preset-fbjs "^3.0.1"
+ buffer-crc32 "^0.2.13"
+ chalk "^2.4.1"
concat-stream "^1.6.0"
connect "^3.6.5"
- core-js "^2.2.2"
debug "^2.2.0"
denodeify "^1.2.1"
eventemitter3 "^3.0.0"
- fbjs "^0.8.14"
+ fbjs "^1.0.0"
fs-extra "^1.0.0"
graceful-fs "^4.1.3"
image-size "^0.6.0"
- jest-docblock "22.4.0"
- jest-haste-map "22.4.2"
- jest-worker "22.2.2"
+ invariant "^2.2.4"
+ jest-haste-map "24.0.0-alpha.6"
+ jest-worker "24.0.0-alpha.6"
json-stable-stringify "^1.0.1"
- json5 "^0.4.0"
- left-pad "^1.1.3"
lodash.throttle "^4.1.1"
merge-stream "^1.0.1"
- metro-babylon7 "0.30.2"
- metro-cache "0.30.2"
- metro-core "0.30.2"
- metro-minify-uglify "0.30.2"
- metro-resolver "0.30.2"
- metro-source-map "0.30.2"
+ metro-babel-transformer "0.51.1"
+ metro-cache "0.51.1"
+ metro-config "0.51.1"
+ metro-core "0.51.1"
+ metro-minify-uglify "0.51.1"
+ metro-react-native-babel-preset "0.51.1"
+ metro-resolver "0.51.1"
+ metro-source-map "0.51.1"
mime-types "2.1.11"
mkdirp "^0.5.1"
- node-fetch "^1.3.3"
+ node-fetch "^2.2.0"
+ nullthrows "^1.1.0"
+ react-transform-hmr "^1.0.4"
resolve "^1.5.0"
rimraf "^2.5.4"
serialize-error "^2.1.0"
@@ -6041,7 +5889,7 @@ metro@^0.30.0:
throat "^4.1.0"
wordwrap "^1.0.0"
write-file-atomic "^1.2.0"
- ws "^1.1.0"
+ ws "^1.1.5"
xpipe "^1.0.5"
yargs "^9.0.0"
@@ -6299,7 +6147,7 @@ nice-try@^1.0.4:
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-node-fetch@^1.0.1, node-fetch@^1.3.3:
+node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
@@ -6307,6 +6155,11 @@ node-fetch@^1.0.1, node-fetch@^1.3.3:
encoding "^0.1.11"
is-stream "^1.0.1"
+node-fetch@^2.2.0:
+ version "2.6.0"
+ resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-2.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-fetch%2Fdownload%2Fnode-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
+ integrity sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0=
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -6674,14 +6527,6 @@ os-locale@^3.1.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-name@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/os-name/-/os-name-2.0.1.tgz#b9a386361c17ae3a21736ef0599405c9a8c5dc5e"
- integrity sha1-uaOGNhwXrjohc27wWZQFyajF3F4=
- dependencies:
- macos-release "^1.0.0"
- win-release "^1.0.0"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -6886,11 +6731,6 @@ path-type@^3.0.0:
dependencies:
pify "^3.0.0"
-pegjs@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd"
- integrity sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=
-
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -6951,23 +6791,13 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
-plist@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b"
- integrity sha1-CjLKlIGxw2TpLhjcVch23p0B2os=
- dependencies:
- base64-js "1.1.2"
- xmlbuilder "8.2.2"
- xmldom "0.1.x"
-
-plist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/plist/-/plist-1.2.0.tgz#084b5093ddc92506e259f874b8d9b1afb8c79593"
- integrity sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=
+plist@^3.0.0, plist@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npm.taobao.org/plist/download/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
+ integrity sha1-qbkx0XwwTokS7wujvdYYK68uH4w=
dependencies:
- base64-js "0.0.8"
- util-deprecate "1.0.2"
- xmlbuilder "4.0.0"
+ base64-js "^1.2.3"
+ xmlbuilder "^9.0.7"
xmldom "0.1.x"
plugin-error@^0.1.2:
@@ -7011,6 +6841,14 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
+pretty-format@24.0.0-alpha.6:
+ version "24.0.0-alpha.6"
+ resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-24.0.0-alpha.6.tgz#25ad2fa46b342d6278bf241c5d2114d4376fbac1"
+ integrity sha1-Ja0vpGs0LWJ4vyQcXSEU1DdvusE=
+ dependencies:
+ ansi-regex "^4.0.0"
+ ansi-styles "^3.2.0"
+
pretty-format@^23.6.0:
version "23.6.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
@@ -7019,11 +6857,6 @@ pretty-format@^23.6.0:
ansi-regex "^3.0.0"
ansi-styles "^3.2.0"
-pretty-format@^4.2.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-4.3.1.tgz#530be5c42b3c05b36414a7a2a4337aa80acd0e8d"
- integrity sha1-UwvlxCs8BbNkFKeipDN6qArNDo0=
-
pretty-hrtime@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
@@ -7068,7 +6901,7 @@ prop-types-exact@^1.2.0:
object.assign "^4.1.0"
reflect.ownkeys "^0.2.0"
-prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -7186,13 +7019,13 @@ react-deep-force-update@^1.0.0:
resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1"
integrity sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==
-react-devtools-core@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-3.1.0.tgz#eec2e9e0e6edb77772e2bfc7d286a296f55a261a"
- integrity sha512-fO6SmpW16E9u6Lb6zQOHrjhJXGBNz+cJ0/a9cSF55nXfL0sQLlvYJR8DpU7f4rMUrVnVineg4XQyYYBZicmhJg==
+react-devtools-core@^3.6.0:
+ version "3.6.3"
+ resolved "https://registry.npm.taobao.org/react-devtools-core/download/react-devtools-core-3.6.3.tgz#977d95b684c6ad28205f0c62e1e12c5f16675814"
+ integrity sha1-l32VtoTGrSggXwxi4eEsXxZnWBQ=
dependencies:
shell-quote "^1.6.1"
- ws "^2.0.3"
+ ws "^3.3.1"
react-dom@^16.7.0:
version "16.11.0"
@@ -7278,68 +7111,59 @@ react-native-unimodules@^0.5.3:
unimodules-sensors-interface "~3.0.0"
unimodules-task-manager-interface "~3.0.0"
-react-native@0.55.4:
- version "0.55.4"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.55.4.tgz#eecffada3750a928e2ddd07cf11d857ae9751c30"
- integrity sha512-J6U2KeuFIfH0I6kbwymQWe7Yw7AVzPq22tq6z5VmvcYQiKbqKkvjJukgHqR6keRreHjohEaWP5Gi007IGFJdyQ==
+react-native@0.59.9:
+ version "0.59.9"
+ resolved "https://registry.npm.taobao.org/react-native/download/react-native-0.59.9.tgz?cache=0&sync_timestamp=1576689336916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-native%2Fdownload%2Freact-native-0.59.9.tgz#c94ee4fa35121720c05235a2dd6cdd2784bf5177"
+ integrity sha1-yU7k+jUSFyDAUjWi3WzdJ4S/UXc=
dependencies:
+ "@babel/runtime" "^7.0.0"
+ "@react-native-community/cli" "^1.2.1"
absolute-path "^0.0.0"
art "^0.10.0"
- babel-core "^6.24.1"
- babel-plugin-syntax-trailing-function-commas "^6.20.0"
- babel-plugin-transform-async-to-generator "6.16.0"
- babel-plugin-transform-class-properties "^6.18.0"
- babel-plugin-transform-exponentiation-operator "^6.5.0"
- babel-plugin-transform-flow-strip-types "^6.21.0"
- babel-plugin-transform-object-rest-spread "^6.20.2"
- babel-register "^6.24.1"
- babel-runtime "^6.23.0"
base64-js "^1.1.2"
- chalk "^1.1.1"
+ chalk "^2.4.1"
commander "^2.9.0"
compression "^1.7.1"
connect "^3.6.5"
create-react-class "^15.6.3"
debug "^2.2.0"
denodeify "^1.2.1"
- envinfo "^3.0.0"
errorhandler "^1.5.0"
- eslint-plugin-react-native "^3.2.1"
+ escape-string-regexp "^1.0.5"
event-target-shim "^1.0.5"
- fbjs "^0.8.14"
- fbjs-scripts "^0.8.1"
+ fbjs "^1.0.0"
+ fbjs-scripts "^1.0.0"
fs-extra "^1.0.0"
glob "^7.1.1"
graceful-fs "^4.1.3"
inquirer "^3.0.6"
+ invariant "^2.2.4"
lodash "^4.17.5"
- metro "^0.30.0"
- metro-core "^0.30.0"
+ metro-babel-register "0.51.0"
+ metro-react-native-babel-transformer "0.51.0"
mime "^1.3.4"
minimist "^1.2.0"
mkdirp "^0.5.1"
morgan "^1.9.0"
- node-fetch "^1.3.3"
+ node-fetch "^2.2.0"
node-notifier "^5.2.1"
npmlog "^2.0.4"
+ nullthrows "^1.1.0"
opn "^3.0.2"
optimist "^0.6.1"
- plist "^1.2.0"
- pretty-format "^4.2.1"
+ plist "^3.0.0"
+ pretty-format "24.0.0-alpha.6"
promise "^7.1.1"
prop-types "^15.5.8"
react-clone-referenced-element "^1.0.1"
- react-devtools-core "3.1.0"
- react-timer-mixin "^0.13.2"
+ react-devtools-core "^3.6.0"
regenerator-runtime "^0.11.0"
rimraf "^2.5.4"
semver "^5.0.3"
serve-static "^1.13.1"
shell-quote "1.6.1"
stacktrace-parser "^0.1.3"
- whatwg-fetch "^1.0.0"
- ws "^1.1.0"
- xcode "^0.9.1"
+ ws "^1.1.5"
xmldoc "^0.4.0"
yargs "^9.0.0"
@@ -7361,11 +7185,6 @@ react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2:
react-is "^16.8.6"
scheduler "^0.17.0"
-react-timer-mixin@^0.13.2:
- version "0.13.4"
- resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz#75a00c3c94c13abe29b43d63b4c65a88fc8264d3"
- integrity sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q==
-
react-transform-hmr@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb"
@@ -7374,15 +7193,15 @@ react-transform-hmr@^1.0.4:
global "^4.3.0"
react-proxy "^1.1.7"
-react@16.3.1:
- version "16.3.1"
- resolved "https://registry.yarnpkg.com/react/-/react-16.3.1.tgz#4a2da433d471251c69b6033ada30e2ed1202cfd8"
- integrity sha512-NbkxN9jsZ6+G+ICsLdC7/wUD26uNbvKU/RAxEWgc9kcdKvROt+5d5j2cNQm5PSFTQ4WNGsR3pa4qL2Q0/WSy1w==
+react@16.8.0:
+ version "16.8.0"
+ resolved "https://registry.npm.taobao.org/react/download/react-16.8.0.tgz#8533f0e4af818f448a276eae71681d09e8dd970a"
+ integrity sha1-hTPw5K+Bj0SKJ26ucWgdCejdlwo=
dependencies:
- fbjs "^0.8.16"
loose-envify "^1.1.0"
object-assign "^4.1.1"
- prop-types "^15.6.0"
+ prop-types "^15.6.2"
+ scheduler "^0.13.0"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -7500,7 +7319,7 @@ regenerate-unicode-properties@^8.1.0:
dependencies:
regenerate "^1.4.0"
-regenerate@^1.2.1, regenerate@^1.4.0:
+regenerate@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
@@ -7510,14 +7329,10 @@ regenerator-runtime@^0.11.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-regenerator-transform@^0.10.0:
- version "0.10.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
- integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==
- dependencies:
- babel-runtime "^6.18.0"
- babel-types "^6.19.0"
- private "^0.1.6"
+regenerator-runtime@^0.13.2:
+ version "0.13.3"
+ resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
+ integrity sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=
regenerator-transform@^0.14.0:
version "0.14.1"
@@ -7541,15 +7356,6 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexpu-core@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
- integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=
- dependencies:
- regenerate "^1.2.1"
- regjsgen "^0.2.0"
- regjsparser "^0.1.4"
-
regexpu-core@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
@@ -7562,23 +7368,11 @@ regexpu-core@^4.6.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.1.0"
-regjsgen@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
- integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
-
regjsgen@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
-regjsparser@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
- integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
- dependencies:
- jsesc "~0.5.0"
-
regjsparser@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
@@ -7770,6 +7564,13 @@ rimraf@^2.5.4, rimraf@^2.6.1:
dependencies:
glob "^7.1.3"
+rimraf@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b"
+ integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==
+ dependencies:
+ glob "^7.1.3"
+
rimraf@~2.2.6:
version "2.2.8"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
@@ -7822,11 +7623,6 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
-safe-buffer@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
- integrity sha1-0mPKVGls2KMGtcplUekt5XkY++c=
-
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -7855,6 +7651,23 @@ sane@^2.0.0:
optionalDependencies:
fsevents "^1.2.3"
+sane@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/sane/download/sane-3.1.0.tgz#995193b7dc1445ef1fe41ddfca2faf9f111854c6"
+ integrity sha1-mVGTt9wURe8f5B3fyi+vnxEYVMY=
+ dependencies:
+ anymatch "^2.0.0"
+ capture-exit "^1.2.0"
+ exec-sh "^0.2.0"
+ execa "^1.0.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+ watch "~0.18.0"
+ optionalDependencies:
+ fsevents "^1.2.3"
+
sane@^4.0.3:
version "4.1.0"
resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
@@ -7880,6 +7693,14 @@ sax@~1.1.1:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.1.6.tgz#5d616be8a5e607d54e114afae55b7eaf2fcc3240"
integrity sha1-XWFr6KXmB9VOEUr65Vt+ry/MMkA=
+scheduler@^0.13.0:
+ version "0.13.6"
+ resolved "https://registry.npm.taobao.org/scheduler/download/scheduler-0.13.6.tgz?cache=0&sync_timestamp=1576681268670&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscheduler%2Fdownload%2Fscheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
+ integrity sha1-RmpOwzJGezGpG5v3TlNHBy5M2Ik=
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
scheduler@^0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
@@ -7895,7 +7716,7 @@ semver-greatest-satisfied-range@^1.1.0:
dependencies:
sver-compat "^1.5.0"
-"semver@2 || 3 || 4 || 5", semver@5.x, semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -8001,14 +7822,14 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-simple-plist@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-0.2.1.tgz#71766db352326928cf3a807242ba762322636723"
- integrity sha1-cXZts1IyaSjPOoByQrp2IyJjZyM=
+simple-plist@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/simple-plist/download/simple-plist-1.1.0.tgz?cache=0&sync_timestamp=1573092499539&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsimple-plist%2Fdownload%2Fsimple-plist-1.1.0.tgz#8354ab63eb3922a054c78ce96c209c532e907a23"
+ integrity sha1-g1SrY+s5IqBUx4zpbCCcUy6QeiM=
dependencies:
- bplist-creator "0.0.7"
- bplist-parser "0.1.1"
- plist "2.0.1"
+ bplist-creator "0.0.8"
+ bplist-parser "0.2.0"
+ plist "^3.0.1"
sisteransi@^0.1.1:
version "0.1.1"
@@ -8078,7 +7899,15 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.6, source-map-support@^0.5.9:
+source-map-support@^0.5.16:
+ version "0.5.16"
+ resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
+ integrity sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-support@^0.5.6:
version "0.5.13"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
@@ -8610,9 +8439,9 @@ uglify-es@^3.1.9:
source-map "~0.6.1"
uglify-js@^3.1.4:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.4.tgz#88cc880c6ed5cf9868fdfa0760654e7bed463f1d"
- integrity sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
+ integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
dependencies:
commander "~2.20.3"
source-map "~0.6.1"
@@ -8743,6 +8572,11 @@ unique-stream@^2.0.2:
json-stable-stringify-without-jsonify "^1.0.1"
through2-filter "^3.0.0"
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=
+
unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -8786,7 +8620,7 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-util-deprecate@1.0.2, util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
@@ -8809,11 +8643,6 @@ uuid-js@^0.7.5:
resolved "https://registry.yarnpkg.com/uuid-js/-/uuid-js-0.7.5.tgz#6c886d02a53d2d40dcf25d91a170b4a7b25b94d0"
integrity sha1-bIhtAqU9LUDc8l2RoXC0p7JblNA=
-uuid@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
- integrity sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=
-
uuid@^3.3.2:
version "3.3.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
@@ -8940,11 +8769,6 @@ whatwg-fetch@>=0.10.0:
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
-whatwg-fetch@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz#ac3c9d39f320c6dce5339969d054ef43dd333319"
- integrity sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk=
-
whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
@@ -8992,13 +8816,6 @@ wide-align@^1.1.0:
dependencies:
string-width "^1.0.2 || 2"
-win-release@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/win-release/-/win-release-1.1.1.tgz#5fa55e02be7ca934edfc12665632e849b72e5209"
- integrity sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=
- dependencies:
- semver "^5.0.1"
-
wordwrap@^1.0.0, wordwrap@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
@@ -9049,7 +8866,7 @@ write-file-atomic@^2.1.0:
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
-ws@^1.1.0:
+ws@^1.1.0, ws@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
@@ -9057,12 +8874,13 @@ ws@^1.1.0:
options ">=0.0.5"
ultron "1.0.x"
-ws@^2.0.3:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80"
- integrity sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=
+ws@^3.3.1:
+ version "3.3.3"
+ resolved "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ integrity sha1-8c+E/i1ekB686U767OeF8YeiKPI=
dependencies:
- safe-buffer "~5.0.1"
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
ultron "~1.1.0"
ws@^5.2.0:
@@ -9072,31 +8890,23 @@ ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
-xcode@^0.9.1:
- version "0.9.3"
- resolved "https://registry.yarnpkg.com/xcode/-/xcode-0.9.3.tgz#910a89c16aee6cc0b42ca805a6d0b4cf87211cf3"
- integrity sha1-kQqJwWrubMC0LKgFptC0z4chHPM=
+xcode@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/xcode/download/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe"
+ integrity sha1-urZKfpVLtQyo0Z2n4JUxxlpD7P4=
dependencies:
- pegjs "^0.10.0"
- simple-plist "^0.2.1"
- uuid "3.0.1"
+ simple-plist "^1.0.0"
+ uuid "^3.3.2"
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
-xmlbuilder@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.0.0.tgz#98b8f651ca30aa624036f127d11cc66dc7b907a3"
- integrity sha1-mLj2UcowqmJANvEn0RzGbce5B6M=
- dependencies:
- lodash "^3.5.0"
-
-xmlbuilder@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
- integrity sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=
+xmlbuilder@^9.0.7:
+ version "9.0.7"
+ resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
+ integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xmldoc@^0.4.0:
version "0.4.0"
diff --git a/packages/taro-router-rn/package.json b/packages/taro-router-rn/package.json
index af38b545585d..90662342df8e 100644
--- a/packages/taro-router-rn/package.json
+++ b/packages/taro-router-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-router-rn",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "taro-router-rn",
"main": "./index.js",
"files": [
@@ -9,7 +9,7 @@
"index.js"
],
"scripts": {
- "build": "rm -rf ./dist && gulp",
+ "build": "rimraf ./dist && gulp",
"dev": "npm run build:static && tsc --watch",
"prepack": "npm run build",
"test": "jest"
@@ -45,10 +45,11 @@
"jest-enzyme": "^7.0.0",
"jest-mock-console": "^0.4.0",
"jest-react-native": "^18.0.0",
- "react": "^16.3.0",
- "react-native": "^0.55.4",
+ "react": "^16.8.0",
+ "react-native": "^0.59.9",
"react-test-renderer": "^16.5.2",
"regenerator-runtime": "^0.12.1",
+ "rimraf": "^3.0.0",
"ts-jest": "23.10.4",
"tslib": "1.9.3",
"typescript": "3.0.3"
diff --git a/packages/taro-router/package.json b/packages/taro-router/package.json
index 64f76273bb83..a88bd6522310 100644
--- a/packages/taro-router/package.json
+++ b/packages/taro-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/router",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro-router",
"main:h5": "dist/index.esm.js",
"main": "index.js",
@@ -41,12 +41,12 @@
"@babel/plugin-syntax-dynamic-import": "7.0.0",
"@babel/plugin-transform-react-jsx": "7.0.0",
"@babel/preset-env": "7.1.5",
- "@tarojs/taro-h5": "1.3.34",
+ "@tarojs/taro-h5": "2.0.0-beta.13",
"@types/history": "4.7.2",
"@types/jasmine": "2.8.11",
"@types/jest": "23.3.9",
"@types/lodash": "4.14.117",
- "@types/webpack": "4.4.18",
+ "@types/webpack": "4.41.0",
"jest": "23.6.0",
"nervjs": "^1.5.0",
"rollup": "1.1.0",
diff --git a/packages/taro-runner-utils/__tests__/__snapshots__/scss.test.js.snap b/packages/taro-runner-utils/__tests__/__snapshots__/scss.test.js.snap
new file mode 100644
index 000000000000..571b18171525
--- /dev/null
+++ b/packages/taro-runner-utils/__tests__/__snapshots__/scss.test.js.snap
@@ -0,0 +1,75 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`getBundleContent test sass resource array 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+@mixin transform($property) {
+ -webkit-transform: $property;
+ -ms-transform: $property;
+ transform: $property;
+}
+"
+`;
+
+exports[`getBundleContent test sass resource array with directory 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+@mixin transform($property) {
+ -webkit-transform: $property;
+ -ms-transform: $property;
+ transform: $property;
+}
+"
+`;
+
+exports[`getBundleContent test sass resource path 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+"
+`;
+
+exports[`getBundleContent test sass resource path with directory 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+"
+`;
+
+exports[`getBundleResult test file name and project directory path 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+"
+`;
+
+exports[`getBundleResult test file path 1`] = `
+"$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+"
+`;
+
+exports[`getSassLoaderOption test get sass loader option 1`] = `
+Object {
+ "data": "$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
+@mixin transform($property) {
+ -webkit-transform: $property;
+ -ms-transform: $property;
+ transform: $property;
+}
+",
+ "implementation": "dart-sass",
+}
+`;
diff --git a/packages/taro-runner-utils/__tests__/scss.test.js b/packages/taro-runner-utils/__tests__/scss.test.js
new file mode 100644
index 000000000000..e78c8c8a73f5
--- /dev/null
+++ b/packages/taro-runner-utils/__tests__/scss.test.js
@@ -0,0 +1,91 @@
+import path from 'path'
+import { getBundleResult, getBundleContent, getSassLoaderOption } from '../dist/index'
+
+describe('getBundleResult', () => {
+ const filePath = path.resolve(__dirname, '.', 'styles/variables.scss')
+ const fileConfig = {
+ name: 'styles/variables.scss',
+ path: path.resolve(__dirname, '.')
+ }
+
+ test('test file path', async () => {
+ const res = await getBundleResult(filePath)
+ expect(res.bundledContent).toMatchSnapshot()
+ })
+
+ test('test file name and project directory path', async () => {
+ const res = await getBundleResult(fileConfig.name, fileConfig.path)
+ expect(res.bundledContent).toMatchSnapshot()
+ })
+})
+
+describe('getBundleContent', () => {
+ const sassResourcePath = {
+ resource: path.resolve(__dirname, '.', 'styles/variables.scss')
+ }
+ const sassResourcePathWithDirectory = {
+ resource: 'styles/variables.scss',
+ projectDirectory: path.resolve(__dirname, '.')
+ }
+ const sassResourceArray = {
+ resource: [
+ path.resolve(__dirname, '.', 'styles/variables.scss'),
+ path.resolve(__dirname, '.', 'styles/mixins.scss')
+ ]
+ }
+ const sassResourceArrayWithDirectory = {
+ resource: [
+ 'styles/variables.scss',
+ 'styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '.')
+ }
+
+ test('test sass resource path', async () => {
+ const data = sassResourcePath;
+ const res = await getBundleContent(data.resource)
+ expect(res).toMatchSnapshot()
+ })
+ test('test sass resource path with directory', async () => {
+ const data = sassResourcePathWithDirectory
+ const res = await getBundleContent(data.resource, data.projectDirectory)
+ expect(res).toMatchSnapshot()
+ })
+
+ test('test sass resource array', async () => {
+ const data = sassResourceArray;
+ const res = await getBundleContent(data.resource)
+ expect(res).toMatchSnapshot()
+ })
+ test('test sass resource array with directory', async () => {
+ const data = sassResourceArrayWithDirectory
+ const res = await getBundleContent(data.resource, data.projectDirectory)
+ expect(res).toMatchSnapshot()
+ })
+})
+
+describe('getSassLoaderOption', () => {
+ const buildConfig = {
+ publicPath: '/',
+ staticDirectory: 'static',
+ deviceRatio: { '640': 1.17, '750': 1, '828': 0.905 },
+ designWidth: 750,
+ outputRoot: 'dist',
+ sass: {
+ resource: [
+ 'styles/variables.scss',
+ 'styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '.')
+ },
+ sassLoaderOption: {
+ implementation: 'dart-sass'
+ },
+ sourceRoot: 'src'
+ }
+
+ test('test get sass loader option', async () => {
+ const res = await getSassLoaderOption(buildConfig)
+ expect(res).toMatchSnapshot()
+ })
+})
diff --git a/packages/taro-runner-utils/__tests__/styles/mixins.scss b/packages/taro-runner-utils/__tests__/styles/mixins.scss
new file mode 100644
index 000000000000..5ad2ecbedb41
--- /dev/null
+++ b/packages/taro-runner-utils/__tests__/styles/mixins.scss
@@ -0,0 +1,5 @@
+@mixin transform($property) {
+ -webkit-transform: $property;
+ -ms-transform: $property;
+ transform: $property;
+}
diff --git a/packages/taro-runner-utils/__tests__/styles/variables.scss b/packages/taro-runner-utils/__tests__/styles/variables.scss
new file mode 100644
index 000000000000..add794c10eb0
--- /dev/null
+++ b/packages/taro-runner-utils/__tests__/styles/variables.scss
@@ -0,0 +1,4 @@
+$color-ui-info: #78A4FA !default;
+$color-ui-positive: #13CE66 !default;
+$color-ui-negative: #FF4949 !default;
+$color-ui-warning: #FFC82C !default;
diff --git a/packages/taro-runner-utils/babel.config.js b/packages/taro-runner-utils/babel.config.js
new file mode 100644
index 000000000000..4bb705d9f6e1
--- /dev/null
+++ b/packages/taro-runner-utils/babel.config.js
@@ -0,0 +1,12 @@
+module.exports = {
+ presets: [
+ [
+ '@babel/preset-env',
+ {
+ targets: {
+ node: 'current',
+ },
+ },
+ ],
+ ],
+}
diff --git a/packages/taro-runner-utils/jest.config.js b/packages/taro-runner-utils/jest.config.js
new file mode 100644
index 000000000000..1d08f9d1e803
--- /dev/null
+++ b/packages/taro-runner-utils/jest.config.js
@@ -0,0 +1,10 @@
+module.exports = {
+ verbose: true,
+ moduleFileExtensions: ['js', 'jsx', 'json'],
+ rootDir: __dirname,
+ testMatch: ['/__tests__/**/*.test.js'],
+ transform: {
+ '^.+\\.js?$': 'babel-jest'
+ },
+ transformIgnorePatterns: ['/node_modules/']
+}
diff --git a/packages/taro-runner-utils/package.json b/packages/taro-runner-utils/package.json
new file mode 100644
index 000000000000..4656fce8570f
--- /dev/null
+++ b/packages/taro-runner-utils/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "@tarojs/runner-utils",
+ "version": "2.0.0-beta.13",
+ "description": "Taro runner utilities.",
+ "main": "dist/index.js",
+ "types": "types/index.d.ts",
+ "files": [
+ "dist",
+ "types"
+ ],
+ "scripts": {
+ "build": "tsc"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/NervJS/taro.git"
+ },
+ "keywords": [
+ "taro"
+ ],
+ "author": "garfield550",
+ "license": "MIT",
+ "devDependencies": {
+ "@babel/core": "^7.7.4",
+ "@babel/preset-env": "^7.7.4",
+ "@types/jest": "^24.0.23",
+ "babel-jest": "^24.9.0",
+ "jest": "^24.9.0",
+ "typescript": "^3.7.3"
+ },
+ "dependencies": {
+ "scss-bundle": "^3.0.2"
+ }
+}
diff --git a/packages/taro-runner-utils/src/index.ts b/packages/taro-runner-utils/src/index.ts
new file mode 100644
index 000000000000..03d0f56d86f1
--- /dev/null
+++ b/packages/taro-runner-utils/src/index.ts
@@ -0,0 +1,7 @@
+import { getBundleResult, getBundleContent, getSassLoaderOption } from './scss'
+
+export {
+ getBundleResult,
+ getBundleContent,
+ getSassLoaderOption
+}
diff --git a/packages/taro-runner-utils/src/scss.ts b/packages/taro-runner-utils/src/scss.ts
new file mode 100644
index 000000000000..b546c09afea3
--- /dev/null
+++ b/packages/taro-runner-utils/src/scss.ts
@@ -0,0 +1,98 @@
+import { Bundler, BundleResult } from 'scss-bundle'
+
+interface LoaderOption {
+ data?: string
+ [key: string]: any
+}
+
+interface BuildConfig {
+ sass?: {
+ resource?: string | string[]
+ projectDirectory?: string
+ data?: string
+ }
+ sassLoaderOption?: LoaderOption
+}
+
+/**
+ * Return bundled sass content.
+ *
+ * @param {string} url Absolute file path.
+ * @param {(string | undefined)} projectDirectory Absolute project location, where node_modules are located.
+ * Used for resolving tilde imports.
+ * @returns Bundle result.
+ */
+export async function getBundleResult(url: string,
+ projectDirectory: string | undefined = undefined
+ ): Promise {
+ let bundler: Bundler = new Bundler()
+ if (projectDirectory) {
+ bundler = new Bundler(undefined, projectDirectory)
+ }
+ const res = await bundler.bundle(url)
+ return res
+}
+
+/**
+ * Return bundled sass content, but input resource can be a single string or an array.
+ * @param {(string | string[])} resource Input file path or a path array.
+ * @param {(string | undefined)} projectDirectory Absolute project location, where node_modules are located.
+ * Used for resolving tilde imports.
+ * @returns Bundle result.
+ */
+export async function getBundleContent(resource: string | string[],
+ projectDirectory: string | undefined = undefined
+): Promise {
+ let result: string | undefined = ''
+
+ try {
+ if (typeof resource === 'string') {
+ const res = await getBundleResult(resource, projectDirectory)
+ result = res.bundledContent
+ }
+
+ if (Array.isArray(resource)) {
+ for (const url of resource) {
+ const res = await getBundleResult(url, projectDirectory)
+ result += res.bundledContent || ''
+ }
+ }
+ } catch (error) {
+ throw new Error(error)
+ }
+
+ return result
+}
+
+/**
+ * Return the merged sass loader option.
+ * @param {BuildConfig} param0 Build config.
+ * @returns Merged sass loader option.
+ */
+export async function getSassLoaderOption(
+ { sass, sassLoaderOption }: BuildConfig
+): Promise {
+ sassLoaderOption = sassLoaderOption || {}
+
+ let bundledContent: string = ''
+
+ if (!sass) {
+ return sassLoaderOption
+ }
+
+ const { resource, projectDirectory } = sass
+ if (resource) {
+ const content = await getBundleContent(resource, projectDirectory)
+ bundledContent += content
+ }
+
+ if (sass.data) {
+ bundledContent += sass.data
+ }
+ return {
+ ...sassLoaderOption,
+ data: sassLoaderOption.data ? `${sassLoaderOption.data}${bundledContent}` : bundledContent
+ }
+}
+
+export default getSassLoaderOption
diff --git a/packages/taro-runner-utils/tsconfig.json b/packages/taro-runner-utils/tsconfig.json
new file mode 100644
index 000000000000..375e5735387b
--- /dev/null
+++ b/packages/taro-runner-utils/tsconfig.json
@@ -0,0 +1,30 @@
+{
+ "compilerOptions": {
+ "allowJs": false,
+ "allowSyntheticDefaultImports": true,
+ "alwaysStrict": true,
+ "baseUrl": ".",
+ "declaration": true,
+ "declarationDir": "types",
+ "experimentalDecorators": true,
+ "module": "CommonJS",
+ "moduleResolution": "node",
+ "noImplicitAny": false,
+ "noUnusedLocals": true,
+ "outDir": "dist",
+ "preserveConstEnums": true,
+ "removeComments": false,
+ "rootDir": "./src",
+ "skipLibCheck": true,
+ "sourceMap": false,
+ "strictNullChecks": true,
+ "target": "ES2015",
+ "traceResolution": false
+ },
+ "include": [
+ "./src"
+ ],
+ "exclude": [
+ "./src/__tests__"
+ ]
+}
diff --git a/packages/taro-runner-utils/types/index.d.ts b/packages/taro-runner-utils/types/index.d.ts
new file mode 100644
index 000000000000..50c36d95fc8c
--- /dev/null
+++ b/packages/taro-runner-utils/types/index.d.ts
@@ -0,0 +1,2 @@
+import { getBundleResult, getBundleContent, getSassLoaderOption } from './scss';
+export { getBundleResult, getBundleContent, getSassLoaderOption };
diff --git a/packages/taro-runner-utils/types/scss.d.ts b/packages/taro-runner-utils/types/scss.d.ts
new file mode 100644
index 000000000000..bfb86ba9fc5e
--- /dev/null
+++ b/packages/taro-runner-utils/types/scss.d.ts
@@ -0,0 +1,37 @@
+import { BundleResult } from 'scss-bundle';
+interface LoaderOption {
+ data?: string;
+ [key: string]: any;
+}
+interface BuildConfig {
+ sass?: {
+ resource?: string | string[];
+ projectDirectory?: string;
+ data?: string;
+ };
+ sassLoaderOption?: LoaderOption;
+}
+/**
+ * Return bundled sass content.
+ *
+ * @param {string} url Absolute file path.
+ * @param {(string | undefined)} projectDirectory Absolute project location, where node_modules are located.
+ * Used for resolving tilde imports.
+ * @returns Bundle result.
+ */
+export declare function getBundleResult(url: string, projectDirectory?: string | undefined): Promise;
+/**
+ * Return bundled sass content, but input resource can be a single string or an array.
+ * @param {(string | string[])} resource Input file path or a path array.
+ * @param {(string | undefined)} projectDirectory Absolute project location, where node_modules are located.
+ * Used for resolving tilde imports.
+ * @returns Bundle result.
+ */
+export declare function getBundleContent(resource: string | string[], projectDirectory?: string | undefined): Promise;
+/**
+ * Return the merged sass loader option.
+ * @param {BuildConfig} param0 Build config.
+ * @returns Merged sass loader option.
+ */
+export declare function getSassLoaderOption({ sass, sassLoaderOption }: BuildConfig): Promise;
+export default getSassLoaderOption;
diff --git a/packages/taro-runner-utils/yarn.lock b/packages/taro-runner-utils/yarn.lock
new file mode 100644
index 000000000000..ae4a1ef47d9f
--- /dev/null
+++ b/packages/taro-runner-utils/yarn.lock
@@ -0,0 +1,4453 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
+ integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
+ dependencies:
+ "@babel/highlight" "^7.0.0"
+
+"@babel/core@^7.1.0", "@babel/core@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab"
+ integrity sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.7.4"
+ "@babel/helpers" "^7.7.4"
+ "@babel/parser" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ json5 "^2.1.0"
+ lodash "^4.17.13"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+"@babel/generator@^7.4.0", "@babel/generator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369"
+ integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==
+ dependencies:
+ "@babel/types" "^7.7.4"
+ jsesc "^2.5.1"
+ lodash "^4.17.13"
+ source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce"
+ integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f"
+ integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-call-delegate@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801"
+ integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-create-regexp-features-plugin@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59"
+ integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==
+ dependencies:
+ "@babel/helper-regex" "^7.4.4"
+ regexpu-core "^4.6.0"
+
+"@babel/helper-define-map@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176"
+ integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==
+ dependencies:
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ lodash "^4.17.13"
+
+"@babel/helper-explode-assignable-expression@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84"
+ integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==
+ dependencies:
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-function-name@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e"
+ integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-get-function-arity@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0"
+ integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-hoist-variables@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12"
+ integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-member-expression-to-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74"
+ integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-module-imports@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91"
+ integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-module-transforms@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a"
+ integrity sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-simple-access" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ lodash "^4.17.13"
+
+"@babel/helper-optimise-call-expression@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2"
+ integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-plugin-utils@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
+ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
+
+"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
+ version "7.5.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
+ integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==
+ dependencies:
+ lodash "^4.17.13"
+
+"@babel/helper-remap-async-to-generator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234"
+ integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-wrap-function" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-replace-supers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2"
+ integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-simple-access@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294"
+ integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==
+ dependencies:
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-split-export-declaration@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8"
+ integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==
+ dependencies:
+ "@babel/types" "^7.7.4"
+
+"@babel/helper-wrap-function@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace"
+ integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==
+ dependencies:
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/helpers@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302"
+ integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==
+ dependencies:
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/highlight@^7.0.0":
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
+ integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb"
+ integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==
+
+"@babel/plugin-proposal-async-generator-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d"
+ integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.7.4"
+ "@babel/plugin-syntax-async-generators" "^7.7.4"
+
+"@babel/plugin-proposal-dynamic-import@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d"
+ integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.7.4"
+
+"@babel/plugin-proposal-json-strings@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d"
+ integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-json-strings" "^7.7.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71"
+ integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.7.4"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379"
+ integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.7.4"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb"
+ integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-async-generators@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889"
+ integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-dynamic-import@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec"
+ integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-json-strings@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc"
+ integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46"
+ integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6"
+ integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-syntax-top-level-await@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da"
+ integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-arrow-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12"
+ integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-async-to-generator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba"
+ integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.7.4"
+
+"@babel/plugin-transform-block-scoped-functions@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b"
+ integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-block-scoping@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224"
+ integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ lodash "^4.17.13"
+
+"@babel/plugin-transform-classes@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec"
+ integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-define-map" "^7.7.4"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-optimise-call-expression" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d"
+ integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-destructuring@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267"
+ integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-dotall-regex@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96"
+ integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-duplicate-keys@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91"
+ integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-exponentiation-operator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9"
+ integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-for-of@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc"
+ integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-function-name@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1"
+ integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==
+ dependencies:
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-literals@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e"
+ integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-member-expression-literals@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a"
+ integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-modules-amd@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71"
+ integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+"@babel/plugin-transform-modules-commonjs@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3"
+ integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-simple-access" "^7.7.4"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+"@babel/plugin-transform-modules-systemjs@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30"
+ integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+"@babel/plugin-transform-modules-umd@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f"
+ integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220"
+ integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.7.4"
+
+"@babel/plugin-transform-new-target@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167"
+ integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-object-super@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262"
+ integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.7.4"
+
+"@babel/plugin-transform-parameters@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce"
+ integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==
+ dependencies:
+ "@babel/helper-call-delegate" "^7.7.4"
+ "@babel/helper-get-function-arity" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-property-literals@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2"
+ integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-regenerator@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0"
+ integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==
+ dependencies:
+ regenerator-transform "^0.14.0"
+
+"@babel/plugin-transform-reserved-words@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb"
+ integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-shorthand-properties@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e"
+ integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-spread@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578"
+ integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-sticky-regex@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c"
+ integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-regex" "^7.0.0"
+
+"@babel/plugin-transform-template-literals@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604"
+ integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-typeof-symbol@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e"
+ integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/plugin-transform-unicode-regex@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae"
+ integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+
+"@babel/preset-env@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8"
+ integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-async-generator-functions" "^7.7.4"
+ "@babel/plugin-proposal-dynamic-import" "^7.7.4"
+ "@babel/plugin-proposal-json-strings" "^7.7.4"
+ "@babel/plugin-proposal-object-rest-spread" "^7.7.4"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.7.4"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.7.4"
+ "@babel/plugin-syntax-async-generators" "^7.7.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.7.4"
+ "@babel/plugin-syntax-json-strings" "^7.7.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.7.4"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.7.4"
+ "@babel/plugin-syntax-top-level-await" "^7.7.4"
+ "@babel/plugin-transform-arrow-functions" "^7.7.4"
+ "@babel/plugin-transform-async-to-generator" "^7.7.4"
+ "@babel/plugin-transform-block-scoped-functions" "^7.7.4"
+ "@babel/plugin-transform-block-scoping" "^7.7.4"
+ "@babel/plugin-transform-classes" "^7.7.4"
+ "@babel/plugin-transform-computed-properties" "^7.7.4"
+ "@babel/plugin-transform-destructuring" "^7.7.4"
+ "@babel/plugin-transform-dotall-regex" "^7.7.4"
+ "@babel/plugin-transform-duplicate-keys" "^7.7.4"
+ "@babel/plugin-transform-exponentiation-operator" "^7.7.4"
+ "@babel/plugin-transform-for-of" "^7.7.4"
+ "@babel/plugin-transform-function-name" "^7.7.4"
+ "@babel/plugin-transform-literals" "^7.7.4"
+ "@babel/plugin-transform-member-expression-literals" "^7.7.4"
+ "@babel/plugin-transform-modules-amd" "^7.7.4"
+ "@babel/plugin-transform-modules-commonjs" "^7.7.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.7.4"
+ "@babel/plugin-transform-modules-umd" "^7.7.4"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4"
+ "@babel/plugin-transform-new-target" "^7.7.4"
+ "@babel/plugin-transform-object-super" "^7.7.4"
+ "@babel/plugin-transform-parameters" "^7.7.4"
+ "@babel/plugin-transform-property-literals" "^7.7.4"
+ "@babel/plugin-transform-regenerator" "^7.7.4"
+ "@babel/plugin-transform-reserved-words" "^7.7.4"
+ "@babel/plugin-transform-shorthand-properties" "^7.7.4"
+ "@babel/plugin-transform-spread" "^7.7.4"
+ "@babel/plugin-transform-sticky-regex" "^7.7.4"
+ "@babel/plugin-transform-template-literals" "^7.7.4"
+ "@babel/plugin-transform-typeof-symbol" "^7.7.4"
+ "@babel/plugin-transform-unicode-regex" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ browserslist "^4.6.0"
+ core-js-compat "^3.1.1"
+ invariant "^2.2.2"
+ js-levenshtein "^1.1.3"
+ semver "^5.5.0"
+
+"@babel/template@^7.4.0", "@babel/template@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b"
+ integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558"
+ integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.7.4"
+ "@babel/helper-function-name" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/parser" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.13"
+
+"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.7.4":
+ version "7.7.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193"
+ integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+"@cnakazawa/watch@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
+ integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ dependencies:
+ exec-sh "^0.3.2"
+ minimist "^1.2.0"
+
+"@jest/console@^24.7.1", "@jest/console@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
+ integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==
+ dependencies:
+ "@jest/source-map" "^24.9.0"
+ chalk "^2.0.1"
+ slash "^2.0.0"
+
+"@jest/core@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4"
+ integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==
+ dependencies:
+ "@jest/console" "^24.7.1"
+ "@jest/reporters" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ graceful-fs "^4.1.15"
+ jest-changed-files "^24.9.0"
+ jest-config "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve "^24.9.0"
+ jest-resolve-dependencies "^24.9.0"
+ jest-runner "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
+ jest-watcher "^24.9.0"
+ micromatch "^3.1.10"
+ p-each-series "^1.0.0"
+ realpath-native "^1.1.0"
+ rimraf "^2.5.4"
+ slash "^2.0.0"
+ strip-ansi "^5.0.0"
+
+"@jest/environment@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
+ integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
+ dependencies:
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+
+"@jest/fake-timers@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
+ integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-mock "^24.9.0"
+
+"@jest/reporters@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43"
+ integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==
+ dependencies:
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ istanbul-lib-coverage "^2.0.2"
+ istanbul-lib-instrument "^3.0.1"
+ istanbul-lib-report "^2.0.4"
+ istanbul-lib-source-maps "^3.0.1"
+ istanbul-reports "^2.2.6"
+ jest-haste-map "^24.9.0"
+ jest-resolve "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-util "^24.9.0"
+ jest-worker "^24.6.0"
+ node-notifier "^5.4.2"
+ slash "^2.0.0"
+ source-map "^0.6.0"
+ string-length "^2.0.0"
+
+"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
+ integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==
+ dependencies:
+ callsites "^3.0.0"
+ graceful-fs "^4.1.15"
+ source-map "^0.6.0"
+
+"@jest/test-result@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
+ integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==
+ dependencies:
+ "@jest/console" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+
+"@jest/test-sequencer@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31"
+ integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==
+ dependencies:
+ "@jest/test-result" "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-runner "^24.9.0"
+ jest-runtime "^24.9.0"
+
+"@jest/transform@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56"
+ integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/types" "^24.9.0"
+ babel-plugin-istanbul "^5.1.0"
+ chalk "^2.0.1"
+ convert-source-map "^1.4.0"
+ fast-json-stable-stringify "^2.0.0"
+ graceful-fs "^4.1.15"
+ jest-haste-map "^24.9.0"
+ jest-regex-util "^24.9.0"
+ jest-util "^24.9.0"
+ micromatch "^3.1.10"
+ pirates "^4.0.1"
+ realpath-native "^1.1.0"
+ slash "^2.0.0"
+ source-map "^0.6.1"
+ write-file-atomic "2.4.1"
+
+"@jest/types@^24.9.0":
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
+ integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
+ "@types/yargs" "^13.0.0"
+
+"@types/archy@^0.0.31":
+ version "0.0.31"
+ resolved "https://registry.yarnpkg.com/@types/archy/-/archy-0.0.31.tgz#01650a4641e7e1d11dbd64eda42eec9a2f829c7f"
+ integrity sha512-v+dxizsFVyXgD3EpFuqT9YjdEjbJmPxNf1QIX9ohZOhxh1ZF2yhqv3vYaeum9lg3VghhxS5S0a6yldN9J9lPEQ==
+
+"@types/babel__core@^7.1.0":
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30"
+ integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a"
+ integrity sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
+ integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.0.8"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.8.tgz#479a4ee3e291a403a1096106013ec22cf9b64012"
+ integrity sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+"@types/debug@^4.1.5":
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd"
+ integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==
+
+"@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+ integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
+
+"@types/fs-extra@^8.0.0":
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.1.tgz#a2378d6e7e8afea1564e44aafa2e207dadf77686"
+ integrity sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/glob@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
+ integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
+
+"@types/istanbul-lib-report@*":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
+ integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+"@types/istanbul-reports@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
+ integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+ "@types/istanbul-lib-report" "*"
+
+"@types/jest@^24.0.23":
+ version "24.0.23"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.23.tgz#046f8e2ade026fe831623e361a36b6fb9a4463e4"
+ integrity sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==
+ dependencies:
+ jest-diff "^24.3.0"
+
+"@types/lodash.debounce@^4.0.6":
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60"
+ integrity sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==
+ dependencies:
+ "@types/lodash" "*"
+
+"@types/lodash@*":
+ version "4.14.149"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440"
+ integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==
+
+"@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
+"@types/node@*":
+ version "12.12.14"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.14.tgz#1c1d6e3c75dba466e0326948d56e8bd72a1903d2"
+ integrity sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==
+
+"@types/sass@^1.16.0":
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.16.0.tgz#b41ac1c17fa68ffb57d43e2360486ef526b3d57d"
+ integrity sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==
+ dependencies:
+ "@types/node" "*"
+
+"@types/stack-utils@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
+ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
+
+"@types/yargs-parser@*":
+ version "13.1.0"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228"
+ integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==
+
+"@types/yargs@^13.0.0":
+ version "13.0.3"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380"
+ integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+abab@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
+ integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+acorn-globals@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
+ dependencies:
+ acorn "^6.0.1"
+ acorn-walk "^6.0.1"
+
+acorn-walk@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
+ integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
+
+acorn@^5.5.3:
+ version "5.7.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+
+acorn@^6.0.1:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784"
+ integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==
+
+ajv@^6.5.5:
+ version "6.10.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
+ integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
+ dependencies:
+ fast-deep-equal "^2.0.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-escapes@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+ integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^4.0.0, ansi-regex@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+ integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+anymatch@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
+ integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+aproba@^1.0.3:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+archy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+ integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
+
+are-we-there-yet@~1.1.2:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+ integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+atob@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+
+aws4@^1.8.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c"
+ integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
+
+babel-jest@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54"
+ integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==
+ dependencies:
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/babel__core" "^7.1.0"
+ babel-plugin-istanbul "^5.1.0"
+ babel-preset-jest "^24.9.0"
+ chalk "^2.4.2"
+ slash "^2.0.0"
+
+babel-plugin-dynamic-import-node@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
+ integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
+ dependencies:
+ object.assign "^4.1.0"
+
+babel-plugin-istanbul@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854"
+ integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ find-up "^3.0.0"
+ istanbul-lib-instrument "^3.3.0"
+ test-exclude "^5.2.3"
+
+babel-plugin-jest-hoist@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756"
+ integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==
+ dependencies:
+ "@types/babel__traverse" "^7.0.6"
+
+babel-preset-jest@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
+ integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==
+ dependencies:
+ "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ babel-plugin-jest-hoist "^24.9.0"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+ dependencies:
+ tweetnacl "^0.14.3"
+
+binary-extensions@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
+ integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browser-process-hrtime@^0.1.2:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
+ integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+
+browser-resolve@^1.11.3:
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
+ integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
+ dependencies:
+ resolve "1.1.7"
+
+browserslist@^4.6.0, browserslist@^4.8.0:
+ version "4.8.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289"
+ integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==
+ dependencies:
+ caniuse-lite "^1.0.30001015"
+ electron-to-chromium "^1.3.322"
+ node-releases "^1.1.42"
+
+bser@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
+ dependencies:
+ node-int64 "^0.4.0"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase@^5.0.0, camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+caniuse-lite@^1.0.30001015:
+ version "1.0.30001015"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz#15a7ddf66aba786a71d99626bc8f2b91c6f0f5f0"
+ integrity sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==
+
+capture-exit@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
+ integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
+ dependencies:
+ rsvp "^4.8.4"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.2:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6"
+ integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.2.0"
+ optionalDependencies:
+ fsevents "~2.1.1"
+
+chownr@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
+ integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+ dependencies:
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e"
+ integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==
+
+commander@~2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
+convert-source-map@^1.4.0, convert-source-map@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+core-js-compat@^3.1.1:
+ version "3.4.7"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.7.tgz#39f8080b1d92a524d6d90505c42b9c5c1eb90611"
+ integrity sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw==
+ dependencies:
+ browserslist "^4.8.0"
+ semver "^6.3.0"
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cross-spawn@^6.0.0:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1"
+ integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==
+ dependencies:
+ cssom "0.3.x"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+ dependencies:
+ assert-plus "^1.0.0"
+
+data-urls@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
+ integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
+ dependencies:
+ abab "^2.0.0"
+ whatwg-mimetype "^2.2.0"
+ whatwg-url "^7.0.0"
+
+debug@^2.2.0, debug@^2.3.3:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.2.6:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.1.0, debug@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ dependencies:
+ ms "^2.1.1"
+
+decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+define-properties@^1.1.2, define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
+detect-libc@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
+
+detect-newline@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
+ integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
+
+diff-sequences@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
+ integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+
+domexception@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+ integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
+ dependencies:
+ webidl-conversions "^4.0.2"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+electron-to-chromium@^1.3.322:
+ version "1.3.322"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8"
+ integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==
+
+emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.5.1:
+ version "1.16.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz#52490d978f96ff9f89ec15b5cf244304a5bca161"
+ integrity sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.1.4"
+ is-regex "^1.0.4"
+ object-inspect "^1.7.0"
+ object-keys "^1.1.1"
+ string.prototype.trimleft "^2.1.0"
+ string.prototype.trimright "^2.1.0"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+escodegen@^1.9.1:
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
+ integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
+ dependencies:
+ esprima "^3.1.3"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+esprima@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+ integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
+
+estraverse@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+exec-sh@^0.3.2:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
+ integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+ integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expect@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca"
+ integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ ansi-styles "^3.2.0"
+ jest-get-type "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-regex-util "^24.9.0"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+
+fast-deep-equal@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+
+fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fb-watchman@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
+ integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
+ dependencies:
+ bser "^2.0.0"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
+for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ dependencies:
+ map-cache "^0.2.2"
+
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs-minipass@^1.2.5:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
+ integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
+ dependencies:
+ minipass "^2.6.0"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^1.2.7:
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
+ integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ dependencies:
+ nan "^2.12.1"
+ node-pre-gyp "^0.12.0"
+
+fsevents@~2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
+ integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+get-caller-file@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob-parent@~5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
+ integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globs@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/globs/-/globs-0.1.4.tgz#1d13639f6174e4ae73a7f936da7d9a079f657c1c"
+ integrity sha512-D23dWbOq48vlOraoSigbcQV4tWrnhwk+E/Um2cMuDS3/5dwGmdFeA7L/vAvDhLFlQOTDqHcXh35m/71g2A2WzQ==
+ dependencies:
+ glob "^7.1.1"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
+ integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+
+growly@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+ integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
+
+handlebars@^4.1.2:
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
+ dependencies:
+ neo-async "^2.6.0"
+ optimist "^0.6.1"
+ source-map "^0.6.1"
+ optionalDependencies:
+ uglify-js "^3.1.4"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
+har-validator@~5.1.0:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+ integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
+ dependencies:
+ ajv "^6.5.5"
+ har-schema "^2.0.0"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-symbols@^1.0.0, has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+
+has-unicode@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+has@^1.0.1, has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hosted-git-info@^2.1.4:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
+ integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==
+
+html-encoding-sniffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
+ integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
+ dependencies:
+ whatwg-encoding "^1.0.1"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+iconv-lite@0.4.24, iconv-lite@^0.4.4:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ignore-walk@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
+ integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
+ dependencies:
+ minimatch "^3.0.4"
+
+import-local@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
+ dependencies:
+ pkg-dir "^3.0.0"
+ resolve-cwd "^2.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@~1.3.0:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
+
+invariant@^2.2.2, invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+ dependencies:
+ loose-envify "^1.0.0"
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-callable@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
+ integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+ integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
+
+is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-regex@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+ dependencies:
+ has "^1.0.1"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+is-symbol@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+ dependencies:
+ has-symbols "^1.0.1"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+is-wsl@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+
+isarray@1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+
+istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
+ integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==
+
+istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630"
+ integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==
+ dependencies:
+ "@babel/generator" "^7.4.0"
+ "@babel/parser" "^7.4.3"
+ "@babel/template" "^7.4.0"
+ "@babel/traverse" "^7.4.3"
+ "@babel/types" "^7.4.0"
+ istanbul-lib-coverage "^2.0.5"
+ semver "^6.0.0"
+
+istanbul-lib-report@^2.0.4:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33"
+ integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==
+ dependencies:
+ istanbul-lib-coverage "^2.0.5"
+ make-dir "^2.1.0"
+ supports-color "^6.1.0"
+
+istanbul-lib-source-maps@^3.0.1:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8"
+ integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^2.0.5"
+ make-dir "^2.1.0"
+ rimraf "^2.6.3"
+ source-map "^0.6.1"
+
+istanbul-reports@^2.2.6:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af"
+ integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==
+ dependencies:
+ handlebars "^4.1.2"
+
+jest-changed-files@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
+ integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ execa "^1.0.0"
+ throat "^4.0.0"
+
+jest-cli@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
+ integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
+ dependencies:
+ "@jest/core" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ import-local "^2.0.0"
+ is-ci "^2.0.0"
+ jest-config "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
+ prompts "^2.0.1"
+ realpath-native "^1.1.0"
+ yargs "^13.3.0"
+
+jest-config@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5"
+ integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/test-sequencer" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ babel-jest "^24.9.0"
+ chalk "^2.0.1"
+ glob "^7.1.1"
+ jest-environment-jsdom "^24.9.0"
+ jest-environment-node "^24.9.0"
+ jest-get-type "^24.9.0"
+ jest-jasmine2 "^24.9.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
+ micromatch "^3.1.10"
+ pretty-format "^24.9.0"
+ realpath-native "^1.1.0"
+
+jest-diff@^24.3.0, jest-diff@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
+ integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
+ dependencies:
+ chalk "^2.0.1"
+ diff-sequences "^24.9.0"
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
+
+jest-docblock@^24.3.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2"
+ integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==
+ dependencies:
+ detect-newline "^2.1.0"
+
+jest-each@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05"
+ integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ chalk "^2.0.1"
+ jest-get-type "^24.9.0"
+ jest-util "^24.9.0"
+ pretty-format "^24.9.0"
+
+jest-environment-jsdom@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b"
+ integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==
+ dependencies:
+ "@jest/environment" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+ jest-util "^24.9.0"
+ jsdom "^11.5.1"
+
+jest-environment-node@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3"
+ integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==
+ dependencies:
+ "@jest/environment" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ jest-mock "^24.9.0"
+ jest-util "^24.9.0"
+
+jest-get-type@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
+ integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
+
+jest-haste-map@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
+ integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ anymatch "^2.0.0"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.1.15"
+ invariant "^2.2.4"
+ jest-serializer "^24.9.0"
+ jest-util "^24.9.0"
+ jest-worker "^24.9.0"
+ micromatch "^3.1.10"
+ sane "^4.0.3"
+ walker "^1.0.7"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
+jest-jasmine2@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0"
+ integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==
+ dependencies:
+ "@babel/traverse" "^7.1.0"
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ chalk "^2.0.1"
+ co "^4.6.0"
+ expect "^24.9.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ pretty-format "^24.9.0"
+ throat "^4.0.0"
+
+jest-leak-detector@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
+ integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==
+ dependencies:
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
+
+jest-matcher-utils@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073"
+ integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==
+ dependencies:
+ chalk "^2.0.1"
+ jest-diff "^24.9.0"
+ jest-get-type "^24.9.0"
+ pretty-format "^24.9.0"
+
+jest-message-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
+ integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/stack-utils" "^1.0.1"
+ chalk "^2.0.1"
+ micromatch "^3.1.10"
+ slash "^2.0.0"
+ stack-utils "^1.0.1"
+
+jest-mock@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
+ integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
+ dependencies:
+ "@jest/types" "^24.9.0"
+
+jest-pnp-resolver@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
+ integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
+
+jest-regex-util@^24.3.0, jest-regex-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636"
+ integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==
+
+jest-resolve-dependencies@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab"
+ integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ jest-regex-util "^24.3.0"
+ jest-snapshot "^24.9.0"
+
+jest-resolve@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321"
+ integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ browser-resolve "^1.11.3"
+ chalk "^2.0.1"
+ jest-pnp-resolver "^1.2.1"
+ realpath-native "^1.1.0"
+
+jest-runner@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42"
+ integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==
+ dependencies:
+ "@jest/console" "^24.7.1"
+ "@jest/environment" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ chalk "^2.4.2"
+ exit "^0.1.2"
+ graceful-fs "^4.1.15"
+ jest-config "^24.9.0"
+ jest-docblock "^24.3.0"
+ jest-haste-map "^24.9.0"
+ jest-jasmine2 "^24.9.0"
+ jest-leak-detector "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-resolve "^24.9.0"
+ jest-runtime "^24.9.0"
+ jest-util "^24.9.0"
+ jest-worker "^24.6.0"
+ source-map-support "^0.5.6"
+ throat "^4.0.0"
+
+jest-runtime@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac"
+ integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==
+ dependencies:
+ "@jest/console" "^24.7.1"
+ "@jest/environment" "^24.9.0"
+ "@jest/source-map" "^24.3.0"
+ "@jest/transform" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/yargs" "^13.0.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.1.15"
+ jest-config "^24.9.0"
+ jest-haste-map "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-mock "^24.9.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve "^24.9.0"
+ jest-snapshot "^24.9.0"
+ jest-util "^24.9.0"
+ jest-validate "^24.9.0"
+ realpath-native "^1.1.0"
+ slash "^2.0.0"
+ strip-bom "^3.0.0"
+ yargs "^13.3.0"
+
+jest-serializer@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
+ integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
+
+jest-snapshot@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba"
+ integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==
+ dependencies:
+ "@babel/types" "^7.0.0"
+ "@jest/types" "^24.9.0"
+ chalk "^2.0.1"
+ expect "^24.9.0"
+ jest-diff "^24.9.0"
+ jest-get-type "^24.9.0"
+ jest-matcher-utils "^24.9.0"
+ jest-message-util "^24.9.0"
+ jest-resolve "^24.9.0"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ pretty-format "^24.9.0"
+ semver "^6.2.0"
+
+jest-util@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
+ integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
+ dependencies:
+ "@jest/console" "^24.9.0"
+ "@jest/fake-timers" "^24.9.0"
+ "@jest/source-map" "^24.9.0"
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ callsites "^3.0.0"
+ chalk "^2.0.1"
+ graceful-fs "^4.1.15"
+ is-ci "^2.0.0"
+ mkdirp "^0.5.1"
+ slash "^2.0.0"
+ source-map "^0.6.0"
+
+jest-validate@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
+ integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ camelcase "^5.3.1"
+ chalk "^2.0.1"
+ jest-get-type "^24.9.0"
+ leven "^3.1.0"
+ pretty-format "^24.9.0"
+
+jest-watcher@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b"
+ integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==
+ dependencies:
+ "@jest/test-result" "^24.9.0"
+ "@jest/types" "^24.9.0"
+ "@types/yargs" "^13.0.0"
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ jest-util "^24.9.0"
+ string-length "^2.0.0"
+
+jest-worker@^24.6.0, jest-worker@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
+ integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
+ dependencies:
+ merge-stream "^2.0.0"
+ supports-color "^6.1.0"
+
+jest@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
+ integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
+ dependencies:
+ import-local "^2.0.0"
+ jest-cli "^24.9.0"
+
+js-levenshtein@^1.1.3:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
+ integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+
+jsdom@^11.5.1:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
+ integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
+ dependencies:
+ abab "^2.0.0"
+ acorn "^5.5.3"
+ acorn-globals "^4.1.0"
+ array-equal "^1.0.0"
+ cssom ">= 0.3.2 < 0.4.0"
+ cssstyle "^1.0.0"
+ data-urls "^1.0.0"
+ domexception "^1.0.1"
+ escodegen "^1.9.1"
+ html-encoding-sniffer "^1.0.2"
+ left-pad "^1.3.0"
+ nwsapi "^2.0.7"
+ parse5 "4.0.0"
+ pn "^1.1.0"
+ request "^2.87.0"
+ request-promise-native "^1.0.5"
+ sax "^1.2.4"
+ symbol-tree "^3.2.2"
+ tough-cookie "^2.3.4"
+ w3c-hr-time "^1.0.1"
+ webidl-conversions "^4.0.2"
+ whatwg-encoding "^1.0.3"
+ whatwg-mimetype "^2.1.0"
+ whatwg-url "^6.4.1"
+ ws "^5.2.0"
+ xml-name-validator "^3.0.0"
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
+json5@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6"
+ integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==
+ dependencies:
+ minimist "^1.2.0"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+left-pad@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
+ integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+
+lodash@^4.17.13, lodash@^4.17.15:
+ version "4.17.15"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+
+loglevel-plugin-prefix@^0.8.4:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644"
+ integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==
+
+loglevel@^1.6.3:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312"
+ integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==
+
+loose-envify@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+makeerror@1.0.x:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+ integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=
+ dependencies:
+ tmpl "1.0.x"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ dependencies:
+ object-visit "^1.0.0"
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+micromatch@^3.1.10, micromatch@^3.1.4:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+mime-db@1.42.0:
+ version "1.42.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
+ integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==
+
+mime-types@^2.1.12, mime-types@~2.1.19:
+ version "2.1.25"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.25.tgz#39772d46621f93e2a80a856c53b86a62156a6437"
+ integrity sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==
+ dependencies:
+ mime-db "1.42.0"
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
+
+minimist@^1.1.1, minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+
+minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
+
+minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
+ integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
+ dependencies:
+ safe-buffer "^5.1.2"
+ yallist "^3.0.0"
+
+minizlib@^1.2.1:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
+ integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
+ dependencies:
+ minipass "^2.9.0"
+
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ dependencies:
+ minimist "0.0.8"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+nan@^2.12.1:
+ version "2.14.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
+ integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+needle@^2.2.1:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
+ integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
+ dependencies:
+ debug "^3.2.6"
+ iconv-lite "^0.4.4"
+ sax "^1.2.4"
+
+neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+ integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
+
+node-modules-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
+ integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
+
+node-notifier@^5.4.2:
+ version "5.4.3"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
+ integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
+ dependencies:
+ growly "^1.3.0"
+ is-wsl "^1.1.0"
+ semver "^5.5.0"
+ shellwords "^0.1.1"
+ which "^1.3.0"
+
+node-pre-gyp@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
+ integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
+ dependencies:
+ detect-libc "^1.0.2"
+ mkdirp "^0.5.1"
+ needle "^2.2.1"
+ nopt "^4.0.1"
+ npm-packlist "^1.1.6"
+ npmlog "^4.0.2"
+ rc "^1.2.7"
+ rimraf "^2.6.1"
+ semver "^5.3.0"
+ tar "^4"
+
+node-releases@^1.1.42:
+ version "1.1.42"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7"
+ integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==
+ dependencies:
+ semver "^6.3.0"
+
+nopt@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
+ dependencies:
+ abbrev "1"
+ osenv "^0.1.4"
+
+normalize-package-data@^2.3.2:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-bundled@^1.0.1:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
+ integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
+
+npm-packlist@^1.1.6:
+ version "1.4.6"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4"
+ integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg==
+ dependencies:
+ ignore-walk "^3.0.1"
+ npm-bundled "^1.0.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ dependencies:
+ path-key "^2.0.0"
+
+npmlog@^4.0.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+nwsapi@^2.0.7:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
+
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
+object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-inspect@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
+ integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
+
+object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ dependencies:
+ isobject "^3.0.0"
+
+object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+object.getownpropertydescriptors@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+ integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.5.1"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ dependencies:
+ isobject "^3.0.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
+
+os-tmpdir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+osenv@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.0"
+
+p-each-series@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
+ integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=
+ dependencies:
+ p-reduce "^1.0.0"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-limit@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
+ integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
+p-reduce@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
+ integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+parse5@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
+ integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+ dependencies:
+ pify "^3.0.0"
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
+picomatch@^2.0.4:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5"
+ integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pirates@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
+ integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
+ dependencies:
+ node-modules-regexp "^1.0.0"
+
+pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+ dependencies:
+ find-up "^3.0.0"
+
+pn@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+ integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+pretty-bytes@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
+ integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==
+
+pretty-format@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
+ integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
+ dependencies:
+ "@jest/types" "^24.9.0"
+ ansi-regex "^4.0.0"
+ ansi-styles "^3.2.0"
+ react-is "^16.8.4"
+
+private@^0.1.6:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+prompts@^2.0.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4"
+ integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.3"
+
+psl@^1.1.24, psl@^1.1.28:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.6.0.tgz#60557582ee23b6c43719d9890fb4170ecd91e110"
+ integrity sha512-SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==
+
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
+rc@^1.2.7:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+react-is@^16.8.4:
+ version "16.12.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
+ integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
+
+read-pkg-up@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
+ integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
+ dependencies:
+ find-up "^3.0.0"
+ read-pkg "^3.0.0"
+
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+ integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
+
+readable-stream@^2.0.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readdirp@~3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839"
+ integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==
+ dependencies:
+ picomatch "^2.0.4"
+
+realpath-native@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
+ integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
+ dependencies:
+ util.promisify "^1.0.0"
+
+regenerate-unicode-properties@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
+ integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+ dependencies:
+ regenerate "^1.4.0"
+
+regenerate@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+ integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
+
+regenerator-transform@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
+ integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==
+ dependencies:
+ private "^0.1.6"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+regexpu-core@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
+ integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.1.0"
+ regjsgen "^0.5.0"
+ regjsparser "^0.6.0"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.1.0"
+
+regjsgen@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
+ integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
+
+regjsparser@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
+ integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+ dependencies:
+ jsesc "~0.5.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+repeat-element@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+request-promise-core@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
+ integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
+ dependencies:
+ lodash "^4.17.15"
+
+request-promise-native@^1.0.5:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
+ integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
+ dependencies:
+ request-promise-core "1.1.3"
+ stealthy-require "^1.1.1"
+ tough-cookie "^2.3.3"
+
+request@^2.87.0:
+ version "2.88.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+ integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.0"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.4.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
+ dependencies:
+ resolve-from "^3.0.0"
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+ integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
+
+resolve@^1.10.0, resolve@^1.3.2:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
+ integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
+ dependencies:
+ path-parse "^1.0.6"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+rsvp@^4.8.4:
+ version "4.8.5"
+ resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
+ integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
+ integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sane@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
+ integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
+ dependencies:
+ "@cnakazawa/watch" "^1.0.3"
+ anymatch "^2.0.0"
+ capture-exit "^2.0.0"
+ exec-sh "^0.3.2"
+ execa "^1.0.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+
+sass@^1.22.9:
+ version "1.23.7"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.23.7.tgz#090254e006af1219d442f1bff31e139d5e085dff"
+ integrity sha512-cYgc0fanwIpi0rXisGxl+/wadVQ/HX3RhpdRcjLdj2o2ye/sxUTpAxIhbmJy3PLQgRFbf6Pn8Jsrta2vdXcoOQ==
+ dependencies:
+ chokidar ">=2.0.0 <4.0.0"
+
+sax@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+scss-bundle@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/scss-bundle/-/scss-bundle-3.0.2.tgz#c6fd4d8738a938584070210beb9bd5eb69d87bbb"
+ integrity sha512-6OUFD+bD1ko/nrcXEGQ58NY/pTAQyj3LBfUyCpDeplcs8m8U7CWAfSuK49BrV5PEUGRXEh3oiETxqeG1vJSvrA==
+ dependencies:
+ "@types/archy" "^0.0.31"
+ "@types/debug" "^4.1.5"
+ "@types/fs-extra" "^8.0.0"
+ "@types/glob" "^7.1.1"
+ "@types/lodash.debounce" "^4.0.6"
+ "@types/sass" "^1.16.0"
+ archy "^1.0.0"
+ chalk "^2.4.2"
+ chokidar "^3.0.2"
+ commander "^3.0.0"
+ fs-extra "^8.1.0"
+ globs "^0.1.4"
+ lodash.debounce "^4.0.8"
+ loglevel "^1.6.3"
+ loglevel-plugin-prefix "^0.8.4"
+ pretty-bytes "^5.3.0"
+ sass "^1.22.9"
+ tslib "^1.10.0"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@^6.0.0, semver@^6.2.0, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+set-blocking@^2.0.0, set-blocking@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+shellwords@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+ integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+
+sisteransi@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3"
+ integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==
+
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+source-map-resolve@^0.5.0:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+ dependencies:
+ atob "^2.1.1"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@^0.5.6:
+ version "0.5.16"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
+ integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+
+source-map@^0.5.0, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+spdx-correct@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
+ integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
+ integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+ integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sshpk@^1.7.0:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
+stack-utils@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
+ integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+stealthy-require@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+ integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
+
+string-length@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
+ integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=
+ dependencies:
+ astral-regex "^1.0.0"
+ strip-ansi "^4.0.0"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string-width@^3.0.0, string-width@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+ dependencies:
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
+string.prototype.trimleft@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
+ integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
+ dependencies:
+ define-properties "^1.1.3"
+ function-bind "^1.1.1"
+
+string.prototype.trimright@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
+ integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
+ dependencies:
+ define-properties "^1.1.3"
+ function-bind "^1.1.1"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+ dependencies:
+ ansi-regex "^4.1.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+ dependencies:
+ has-flag "^3.0.0"
+
+symbol-tree@^3.2.2:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+
+tar@^4:
+ version "4.4.13"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
+ integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
+ dependencies:
+ chownr "^1.1.1"
+ fs-minipass "^1.2.5"
+ minipass "^2.8.6"
+ minizlib "^1.2.1"
+ mkdirp "^0.5.0"
+ safe-buffer "^5.1.2"
+ yallist "^3.0.3"
+
+test-exclude@^5.2.3:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
+ integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==
+ dependencies:
+ glob "^7.1.3"
+ minimatch "^3.0.4"
+ read-pkg-up "^4.0.0"
+ require-main-filename "^2.0.0"
+
+throat@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
+ integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
+
+tmpl@1.0.x:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
+ integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+tough-cookie@^2.3.3, tough-cookie@^2.3.4:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+tough-cookie@~2.4.3:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
+ integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+ dependencies:
+ psl "^1.1.24"
+ punycode "^1.4.1"
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+ dependencies:
+ punycode "^2.1.0"
+
+tslib@^1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
+ integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+typescript@^3.7.3:
+ version "3.7.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.3.tgz#b36840668a16458a7025b9eabfad11b66ab85c69"
+ integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==
+
+uglify-js@^3.1.4:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.1.tgz#35c7de17971a4aa7689cd2eae0a5b39bb838c0c5"
+ integrity sha512-pnOF7jY82wdIhATVn87uUY/FHU+MDUdPLkmGFvGoclQmeu229eTkbG5gjGGBi3R7UuYYSEeYXY/TTY5j2aym2g==
+ dependencies:
+ commander "~2.20.3"
+ source-map "~0.6.1"
+
+unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+ integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+
+unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
+ integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+
+unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
+ integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+uri-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util.promisify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+ integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+ dependencies:
+ define-properties "^1.1.2"
+ object.getownpropertydescriptors "^2.0.3"
+
+uuid@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
+ integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+w3c-hr-time@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
+ integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+ dependencies:
+ browser-process-hrtime "^0.1.2"
+
+walker@^1.0.7, walker@~1.0.5:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
+ dependencies:
+ makeerror "1.0.x"
+
+webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
+ integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
+ dependencies:
+ iconv-lite "0.4.24"
+
+whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+ integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
+
+whatwg-url@^6.4.1:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
+ integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.9, which@^1.3.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
+
+wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+ dependencies:
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
+ integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.2"
+
+ws@^5.2.0:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
+ integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
+ dependencies:
+ async-limiter "~1.0.0"
+
+xml-name-validator@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+ integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+
+y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+
+yallist@^3.0.0, yallist@^3.0.3:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yargs-parser@^13.1.1:
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
+ integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs@^13.3.0:
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
+ integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
+ dependencies:
+ cliui "^5.0.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.1"
diff --git a/packages/taro-swan/package.json b/packages/taro-swan/package.json
index e52fe84f9d05..21b4acbc1de2 100644
--- a/packages/taro-swan/package.json
+++ b/packages/taro-swan/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-swan",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro swan framework",
"main": "index.js",
"files": [
@@ -24,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-transformer-wx/__tests__/base.spec.ts b/packages/taro-transformer-wx/__tests__/base.spec.ts
index 943656f44fb9..158dd289712b 100644
--- a/packages/taro-transformer-wx/__tests__/base.spec.ts
+++ b/packages/taro-transformer-wx/__tests__/base.spec.ts
@@ -116,7 +116,7 @@ describe('基本功能', () => {
expect(code.includes(INTERNAL_SAFE_GET)).toBeTruthy()
})
- test('isApp 为 true 时只返回 ast', () => {
+ test.skip('isApp 为 true 时只返回 ast', () => {
const { code, ast, template } = transform({
...baseOptions,
isApp: true,
diff --git a/packages/taro-transformer-wx/index.js b/packages/taro-transformer-wx/index.js
index 67f35bcdaad9..d1c32f064a94 100644
--- a/packages/taro-transformer-wx/index.js
+++ b/packages/taro-transformer-wx/index.js
@@ -1,2 +1,3 @@
var transform = require('./lib/src').default
-module.exports = module.exports.default = transform
+module.exports = transform
+module.exports.default = transform
diff --git a/packages/taro-transformer-wx/package.json b/packages/taro-transformer-wx/package.json
index 255999e07b07..e11fec2eaeac 100644
--- a/packages/taro-transformer-wx/package.json
+++ b/packages/taro-transformer-wx/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/transformer-wx",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Transfrom Nerv Component to Wechat mini program.",
"repository": {
"type": "git",
@@ -62,14 +62,14 @@
"babel-types": "^6.26.0",
"eslint": "5.16.0",
"eslint-plugin-react": "7.10.0",
- "eslint-plugin-taro": "1.3.34",
+ "eslint-plugin-taro": "2.0.0-beta.13",
"html": "^1.0.0",
"lodash": "^4.17.5",
"prettier": "^1.14.2",
"typescript": "^3.2.2"
},
"devDependencies": {
- "@tarojs/taro": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
"@types/babel-core": "^6.25.5",
"@types/babel-generator": "^6.25.1",
"@types/babel-template": "^6.25.0",
diff --git a/packages/taro-transformer-wx/src/index.ts b/packages/taro-transformer-wx/src/index.ts
index dc9c4e93eedb..b0d10f199ea6 100644
--- a/packages/taro-transformer-wx/src/index.ts
+++ b/packages/taro-transformer-wx/src/index.ts
@@ -185,23 +185,29 @@ function findThirdPartyComponent (properties: (t.ObjectMethod | t.ObjectProperty
}
}
}
+interface Result {
+ template?: string
+ componentProperies?: string[]
+}
-export interface Result {
- template: string
+export interface TransformResult extends Result {
+ ast: t.File
+ code?: string
+ imageSrcs?: string
+ compressedTemplate?: string,
+ sourcemap?: object
components: {
name: string,
path: string,
type: string
- }[],
- componentProperies: string[]
+ }[]
}
-interface TransformResult extends Result {
- code: string,
- ast: t.File
+export interface TransformOptions extends Options {
+ //
}
-export default function transform (options: Options): TransformResult {
+export default function transform (options: TransformOptions): TransformResult {
if (options.adapter) {
setAdapter(options.adapter)
if (Adapter.type === Adapters.quickapp) {
@@ -220,6 +226,13 @@ export default function transform (options: Options): TransformResult {
setIsTaroReady('priTaroCompReady')
setCompId('priCompid')
}
+ const defaultResult: TransformResult = {
+ ast: {} as any,
+ code: '',
+ imageSrcs: '',
+ compressedTemplate: '',
+ components: []
+ }
THIRD_PARTY_COMPONENTS.clear()
const code = options.isTyped
? ts.transpile(options.code, {
@@ -238,6 +251,21 @@ export default function transform (options: Options): TransformResult {
// 原因大概是 babylon.parse 没有生成 File 实例导致 scope 和 path 原型上都没有 `file`
// 将来升级到 babel@7 可以直接用 parse 而不是 transform
const ast = parse(code, buildBabelTransformOptions()).ast as t.File
+ // traverse(ast, {
+ // JSXElement (p) {
+ // setIsNormal(false)
+ // p.stop()
+ // },
+ // ImportDeclaration (path) {
+ // const { source, specifiers } = path.node
+ // if (source.value === TARO_PACKAGE_NAME) {
+ // if (specifiers.some(s => s.local.name === 'Component')) {
+ // setIsNormal(false)
+ // path.stop()
+ // }
+ // }
+ // }
+ // })
if (options.isNormal) {
if (options.isTyped) {
const mainClassNode = ast.program.body.find(v => {
@@ -247,7 +275,12 @@ export default function transform (options: Options): TransformResult {
resetTSClassProperty(mainClassNode.body.body)
}
}
- return { ast } as any
+ const code = generate(ast).code
+ return {
+ ...defaultResult,
+ ast,
+ code
+ }
}
// transformFromAst(ast, code)
let result
@@ -337,9 +370,8 @@ export default function transform (options: Options): TransformResult {
code: superClass.code,
isTyped: true,
sourcePath: superClass.sourcePath,
- outputPath: superClass.sourcePath,
sourceDir: options.sourceDir
- }).componentProperies
+ }).componentProperies!
} catch (error) {
//
}
@@ -780,7 +812,12 @@ export default function transform (options: Options): TransformResult {
}
if (!mainClass) {
- throw new Error('未找到 Taro.Component 的类定义')
+ const code = generate(ast).code
+ return {
+ ...defaultResult,
+ ast,
+ code
+ }
}
if (Adapter.type === Adapters.alipay) {
@@ -837,7 +874,12 @@ export default function transform (options: Options): TransformResult {
renderMethod.replaceWith(
t.classMethod('method', t.identifier('_createData'), [], t.blockStatement([]))
)
- return { ast } as TransformResult
+ const code = generate(ast).code
+ return {
+ ...defaultResult,
+ ast,
+ code
+ }
}
result = new Transformer(mainClass, options.sourcePath, componentProperies, options.sourceDir!, classMethods).result
result.code = generate(ast).code
diff --git a/packages/taro-transformer-wx/src/options.ts b/packages/taro-transformer-wx/src/options.ts
index 28f068e8dcd4..4f2a486720f5 100644
--- a/packages/taro-transformer-wx/src/options.ts
+++ b/packages/taro-transformer-wx/src/options.ts
@@ -7,14 +7,14 @@ import { buildVistor } from './class-method-renamer'
export interface Options {
isRoot?: boolean,
- isApp: boolean,
- outputPath: string,
+ isApp?: boolean,
+ // outputPath: string,
sourcePath: string,
sourceDir?: string,
code: string,
isTyped: boolean,
isNormal?: boolean,
- env?: object,
+ env?: Object,
adapter?: Adapters,
jsxAttributeNameReplace?: Object,
rootProps?: object
diff --git a/packages/taro-tt/package.json b/packages/taro-tt/package.json
index 50f83079e018..ff1d7ac8df92 100644
--- a/packages/taro-tt/package.json
+++ b/packages/taro-tt/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-tt",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro toutiao framework",
"main": "index.js",
"files": [
@@ -24,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-utils/package.json b/packages/taro-utils/package.json
index 62bcadb58763..2de6854ab0ca 100644
--- a/packages/taro-utils/package.json
+++ b/packages/taro-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/utils",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Utils for Taro",
"main": "index.js",
"scripts": {
diff --git a/packages/taro-weapp/package.json b/packages/taro-weapp/package.json
index dd866caee02f..9509f40ed483 100644
--- a/packages/taro-weapp/package.json
+++ b/packages/taro-weapp/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-weapp",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro weapp framework",
"main": "index.js",
"files": [
@@ -24,8 +24,8 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
- "@tarojs/utils": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/utils": "2.0.0-beta.13",
"lodash": "^4.17.10",
"prop-types": "^15.6.1"
}
diff --git a/packages/taro-webpack-runner/package.json b/packages/taro-webpack-runner/package.json
index 6b578ca66512..1cb02289bbd8 100644
--- a/packages/taro-webpack-runner/package.json
+++ b/packages/taro-webpack-runner/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/webpack-runner",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "webpack runner for taro",
"main": "index.js",
"scripts": {
@@ -32,14 +32,16 @@
},
"homepage": "https://github.com/NervJS/taro#readme",
"dependencies": {
- "@tarojs/plugin-sass": "1.3.34",
- "@tarojs/taro-h5": "1.3.34",
+ "@tarojs/plugin-sass": "2.0.0-beta.13",
+ "@tarojs/runner-utils": "2.0.0-beta.13",
+ "@tarojs/taro": "2.0.0-beta.13",
+ "@tarojs/taro-h5": "2.0.0-beta.13",
"autoprefixer": "8.6.4",
"babel-core": "6.26.0",
"babel-loader": "7.1.4",
"babel-plugin-syntax-dynamic-import": "6.18.0",
"babel-plugin-transform-react-jsx": "6.24.1",
- "babel-plugin-transform-taroapi": "1.3.34",
+ "babel-plugin-transform-taroapi": "2.0.0-beta.13",
"babel-types": "6.26.0",
"chalk": "2.4.2",
"copy-webpack-plugin": "^5.0.3",
@@ -56,13 +58,12 @@
"opn": "5.3.0",
"ora": "2.1.0",
"postcss-loader": "2.1.6",
- "postcss-plugin-constparse": "1.3.34",
- "postcss-pxtransform": "1.3.34",
+ "postcss-plugin-constparse": "2.0.0-beta.13",
+ "postcss-pxtransform": "2.0.0-beta.13",
"resolve": "1.8.1",
"resolve-url-loader": "2.3.0",
"sass": "^1.23.1",
"sass-loader": "7.1.0",
- "scss-bundle": "^2.5.1",
"style-loader": "0.21.0",
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
diff --git a/packages/taro-webpack-runner/src/__tests__/index-test.ts b/packages/taro-webpack-runner/src/__tests__/index-test.ts
index dddf90a389c8..d1de21d74e89 100644
--- a/packages/taro-webpack-runner/src/__tests__/index-test.ts
+++ b/packages/taro-webpack-runner/src/__tests__/index-test.ts
@@ -46,12 +46,8 @@ describe('Regs', () => {
mediaUrlLoaderOption: {},
esnextModules: [],
- module: {
- postcss: {}
- },
- plugins: {
- babel: {}
- }
+ postcss: {},
+ babel: {}
})
expect(rule.sass).toMatchObject({
test: /\.(s[ac]ss)\b/,
diff --git a/packages/taro-webpack-runner/src/config/build.conf.ts b/packages/taro-webpack-runner/src/config/build.conf.ts
index a429cfecdfb8..6d8f520e997b 100644
--- a/packages/taro-webpack-runner/src/config/build.conf.ts
+++ b/packages/taro-webpack-runner/src/config/build.conf.ts
@@ -1,4 +1,4 @@
-import { BuildConfig, TaroBaseConfig } from '../util/types';
+import { BuildConfig } from '../util/types';
export default ({
sourceRoot = 'src',
@@ -7,7 +7,7 @@ export default ({
staticDirectory = 'static',
chunkDirectory = 'chunk',
designWidth = 750
-}: BuildConfig): Partial => {
+}: BuildConfig): Partial => {
return {
sourceRoot,
outputRoot,
diff --git a/packages/taro-webpack-runner/src/config/dev.conf.ts b/packages/taro-webpack-runner/src/config/dev.conf.ts
index b940873b31fa..a46afa62f259 100644
--- a/packages/taro-webpack-runner/src/config/dev.conf.ts
+++ b/packages/taro-webpack-runner/src/config/dev.conf.ts
@@ -52,10 +52,8 @@ export default function (appPath: string, config: Partial): any {
miniCssExtractPluginOption = emptyObj,
esnextModules = [],
- module = {
- postcss: emptyObj
- },
- plugins
+ postcss = emptyObj,
+ babel
} = config
const plugin = {} as any
@@ -118,8 +116,8 @@ export default function (appPath: string, config: Partial): any {
mediaUrlLoaderOption,
esnextModules,
- module,
- plugins,
+ postcss,
+ babel,
staticDirectory
}),
plugin,
diff --git a/packages/taro-webpack-runner/src/config/postcss.conf.ts b/packages/taro-webpack-runner/src/config/postcss.conf.ts
index 235894d84e6b..68d7ec3e08aa 100644
--- a/packages/taro-webpack-runner/src/config/postcss.conf.ts
+++ b/packages/taro-webpack-runner/src/config/postcss.conf.ts
@@ -1,11 +1,11 @@
-import * as autoprefixer from 'autoprefixer';
-import * as path from 'path';
-import * as constparse from 'postcss-plugin-constparse';
-import * as pxtransform from 'postcss-pxtransform';
-import { sync as resolveSync } from 'resolve';
-import { isNpmPackage, recursiveMerge } from '../util';
+import * as autoprefixer from 'autoprefixer'
+import * as path from 'path'
+import * as constparse from 'postcss-plugin-constparse'
+import * as pxtransform from 'postcss-pxtransform'
+import { sync as resolveSync } from 'resolve'
+import { IPostcssOption, TogglableOptions } from '@tarojs/taro/types/compile'
-import { PostcssOption, TogglableOptions } from '../util/types'
+import { isNpmPackage, recursiveMerge } from '../util'
const defaultAutoprefixerOption = {
enable: true,
@@ -44,7 +44,7 @@ const plugins = [] as any[]
export const getPostcssPlugins = function (appPath: string, {
designWidth,
deviceRatio,
- postcssOption = {} as PostcssOption
+ postcssOption = {} as IPostcssOption
}) {
if (designWidth) {
diff --git a/packages/taro-webpack-runner/src/config/prod.conf.ts b/packages/taro-webpack-runner/src/config/prod.conf.ts
index 24fe7b77bd0e..5e565d505f9b 100644
--- a/packages/taro-webpack-runner/src/config/prod.conf.ts
+++ b/packages/taro-webpack-runner/src/config/prod.conf.ts
@@ -51,12 +51,10 @@ export default function (appPath: string, config: Partial): any {
miniCssExtractPluginOption = emptyObj,
esnextModules = [],
- module = {
- postcss: emptyObj
- },
- plugins = {
- babel: {}
- }
+ postcss,
+ babel,
+ csso,
+ uglify
} = config
const isMultiRouterMode = get(router, 'mode') === 'multi'
@@ -91,25 +89,25 @@ export default function (appPath: string, config: Partial): any {
plugin.definePlugin = getDefinePlugin([processEnvOption(env), defineConstants])
- const isCssoEnabled = (plugins.csso && plugins.csso.enable === false)
+ const isCssoEnabled = (csso && csso.enable === false)
? false
: true
if (isCssoEnabled) {
- plugin.cssoWebpackPlugin = getCssoWebpackPlugin([plugins.csso ? plugins.csso.config : {}])
+ plugin.cssoWebpackPlugin = getCssoWebpackPlugin([csso ? csso.config : {}])
}
const mode = 'production'
const minimizer: any[] = []
- const isUglifyEnabled = (plugins.uglify && plugins.uglify.enable === false)
+ const isUglifyEnabled = (uglify && uglify.enable === false)
? false
: true
if (isUglifyEnabled) {
minimizer.push(getUglifyPlugin([
enableSourceMap,
- plugins.uglify ? plugins.uglify.config : {}
+ uglify ? uglify.config : {}
]))
}
@@ -139,8 +137,8 @@ export default function (appPath: string, config: Partial): any {
mediaUrlLoaderOption,
esnextModules,
- module,
- plugins,
+ postcss,
+ babel,
staticDirectory
}),
plugin,
diff --git a/packages/taro-webpack-runner/src/index.ts b/packages/taro-webpack-runner/src/index.ts
index f55c0e1f2825..3e7bd7adb82e 100644
--- a/packages/taro-webpack-runner/src/index.ts
+++ b/packages/taro-webpack-runner/src/index.ts
@@ -134,7 +134,7 @@ const buildDev = async (appPath: string, config: BuildConfig): Promise => {
}
export default async (appPath: string, config: BuildConfig): Promise => {
- const newConfig: BuildConfig = await makeConfig(config);
+ const newConfig: BuildConfig = await makeConfig(config)
if (newConfig.isWatch) {
try {
await buildDev(appPath, newConfig)
diff --git a/packages/taro-webpack-runner/src/util/chain.ts b/packages/taro-webpack-runner/src/util/chain.ts
index c0dfcd686b74..61e5a4c16251 100644
--- a/packages/taro-webpack-runner/src/util/chain.ts
+++ b/packages/taro-webpack-runner/src/util/chain.ts
@@ -1,5 +1,5 @@
import * as apis from '@tarojs/taro-h5/dist/taroApis'
-import * as Bundler from '@tarojs/plugin-sass/bundler'
+import { getSassLoaderOption } from '@tarojs/runner-utils'
import * as CopyWebpackPlugin from 'copy-webpack-plugin'
import CssoWebpackPlugin from 'csso-webpack-plugin'
import * as sass from 'sass'
@@ -10,65 +10,17 @@ import * as MiniCssExtractPlugin from 'mini-css-extract-plugin'
import { join, resolve } from 'path'
import * as UglifyJsPlugin from 'uglifyjs-webpack-plugin'
import * as webpack from 'webpack'
+import { PostcssOption, IPostcssOption, ICopyOptions } from '@tarojs/taro/types/compile'
import { recursiveMerge } from '.'
import { getPostcssPlugins } from '../config/postcss.conf'
-import { BuildConfig, CopyOptions, Option, PostcssOption } from './types'
-
-const makeConfig = async (config: BuildConfig) => {
- const plugins = config.plugins || {}
- const sassLoaderOption = config.sassLoaderOption || {}
- const sass = plugins.sass || {}
-
- let bundledContent = ''
- // when plugins.sass only configured resource property
- if (sass.resource && !sass.projectDirectory) {
- const { resource } = sass
- try {
- if (typeof resource === 'string') {
- const res = await Bundler(resource)
- bundledContent += res.bundledContent
- }
- if (Array.isArray(resource)) {
- for (const url of resource) {
- const res = await Bundler(url)
- bundledContent += res.bundledContent
- }
- }
- } catch (e) {
- console.log(e)
- }
- }
+import { Option, BuildConfig } from './types'
- // check resource & projectDirectory property
- // projectDirectory used for resolving tilde imports
- if (sass.resource && sass.projectDirectory) {
- const { resource, projectDirectory } = sass
- try {
- if (typeof resource === 'string') {
- const res = await Bundler(resource, projectDirectory)
- bundledContent += res.bundledContent
- }
- if (Array.isArray(resource)) {
- for (const url of resource) {
- const res = await Bundler(url, projectDirectory)
- bundledContent += res.bundledContent
- }
- }
- } catch (e) {
- console.log(e)
- }
- }
- if (sass.data) {
- bundledContent += sass.data
- }
+const makeConfig = async (buildConfig: BuildConfig) => {
+ const sassLoaderOption: Option = await getSassLoaderOption(buildConfig)
return {
- ...config,
- plugins,
- sassLoaderOption: {
- ...sassLoaderOption,
- data: sassLoaderOption.data ? `${sassLoaderOption.data}${bundledContent}` : bundledContent
- }
+ ...buildConfig,
+ sassLoaderOption
}
}
@@ -183,7 +135,7 @@ const getCssoWebpackPlugin = ([cssoOption]) => {
return pipe(mergeOption, listify, partial(getPlugin, CssoWebpackPlugin))([defaultCSSCompressOption, cssoOption])
}
const getCopyWebpackPlugin = ({ copy, appPath }: {
- copy: CopyOptions,
+ copy: ICopyOptions,
appPath: string
}) => {
const args = [
@@ -247,11 +199,10 @@ const getModule = (appPath: string, {
mediaUrlLoaderOption,
esnextModules = [] as (string | RegExp)[],
- module,
- plugins
+ postcss,
+ babel
}) => {
-
- const postcssOption: PostcssOption = module.postcss || {}
+ const postcssOption: IPostcssOption = postcss || {}
const defaultStyleLoaderOption = {
sourceMap: enableSourceMap
@@ -287,7 +238,7 @@ const getModule = (appPath: string, {
cssLoaderOption
]
const additionalBabelOptions = {
- ...plugins.babel,
+ ...babel,
sourceMap: enableSourceMap
}
const esnextModuleRules = getEsnextModuleRules(esnextModules)
diff --git a/packages/taro-webpack-runner/src/util/types.ts b/packages/taro-webpack-runner/src/util/types.ts
index ee0f5a4e2899..ce04a8b3b322 100644
--- a/packages/taro-webpack-runner/src/util/types.ts
+++ b/packages/taro-webpack-runner/src/util/types.ts
@@ -1,5 +1,5 @@
import * as webpack from 'webpack'
-import * as webpackDevServer from 'webpack-dev-server'
+import { IProjectBaseConfig, IH5Config } from '@tarojs/taro/types/compile'
type FunctionLikeCustomWebpackConfig = (webpackConfig: webpack.Configuration, webpack) => webpack.Configuration;
@@ -8,108 +8,12 @@ export interface Option {
[key: string]: any;
};
-export type TogglableOptions = {
- enable?: boolean;
- config?: T;
-}
-
-export namespace PostcssOption {
- export type cssModules = TogglableOptions<{
- namingPattern: 'global' | string;
- generateScopedName: string | ((localName: string, absoluteFilePath: string) => string);
- }>;
-}
-
-export interface PostcssOption {
- autoprefixer?: TogglableOptions;
- pxtransform?: TogglableOptions;
- cssModules?: PostcssOption.cssModules;
-}
-
export interface Chain {
[key: string]: any;
}
-export interface IOption {
- [key: string]: any
-}
-
-export interface IH5RouterConfig {
- mode?: 'hash' | 'browser' | 'multi',
- customRoutes?: IOption,
- basename?: string,
- lazyload?: boolean | ((pagename: string) => boolean)
- renamePagename?: (pagename: string) => string
-}
-
-export interface TaroH5Config {
-
- webpack: ((webpackConfig: webpack.Configuration, webpack) => webpack.Configuration) | webpack.Configuration
-
- webpackChain: (chain: any, webpack: any) => void;
-
- alias: Option;
- entry: webpack.Entry;
- output: webpack.Output;
- router?: IH5RouterConfig;
- devServer: webpackDevServer.Configuration;
- enableSourceMap: boolean;
- sourceMapType?: 'none' | 'eval' | 'cheap-eval-source-map' | 'cheap-module-eval-source-map' | 'eval-source-map' | 'cheap-source-map' | 'cheap-module-source-map' | 'inline-cheap-source-map' | 'inline-cheap-module-source-map' | 'source-map' | 'inline-source-map' | 'hidden-source-map' | 'nosources-source-map';
- enableExtract: boolean;
-
- cssLoaderOption: Option;
- styleLoaderOption: Option;
- sassLoaderOption: Option;
- lessLoaderOption: Option;
- stylusLoaderOption: Option;
- mediaUrlLoaderOption: Option;
- fontUrlLoaderOption: Option;
- imageUrlLoaderOption: Option;
- miniCssExtractPluginOption: Option;
- esnextModules: string[];
-
- module?: {
- postcss?: PostcssOption;
- };
-}
-
-export interface TaroPlugins {
- babel: Option;
- csso?: TogglableOptions;
- uglify?: TogglableOptions;
- sass?: Option;
-}
-
-export interface CopyOptions {
- patterns: {
- from: string;
- to: string;
- ignore: string[]
- }[];
- options: {
- ignore: string[];
- };
-}
-
-export interface TaroBaseConfig {
- sourceRoot: string;
- outputRoot: string;
- publicPath: string;
- staticDirectory: string;
- chunkDirectory: string;
- copy: CopyOptions;
-
- designWidth: number;
- deviceRatio?: number;
-
- defineConstants?: Option;
- env?: Option;
-
- plugins: TaroPlugins;
-}
-
-export interface BuildConfig extends TaroBaseConfig, TaroH5Config {
+export interface BuildConfig extends IProjectBaseConfig, IH5Config {
isWatch: boolean;
port?: number;
homePage?: [string, string]
diff --git a/packages/taro-with-weapp/package.json b/packages/taro-with-weapp/package.json
index 6d6d76d1a900..6991adebf2df 100644
--- a/packages/taro-with-weapp/package.json
+++ b/packages/taro-with-weapp/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/with-weapp",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "taroize 之后的运行时",
"main": "index.js",
"scripts": {
@@ -22,7 +22,7 @@
"author": "yuche",
"license": "MIT",
"dependencies": {
- "@tarojs/taro": "1.3.34",
+ "@tarojs/taro": "2.0.0-beta.13",
"lodash": "^4.17.11"
},
"devDependencies": {
@@ -37,7 +37,7 @@
"rollup": "^0.66.2",
"rollup-plugin-buble": "^0.19.6",
"rollup-plugin-typescript2": "^0.17.0",
- "sinon": "^7.4.1",
+ "sinon": "^8.0.2",
"ts-jest": "^23.10.5",
"tslint": "^5.10.0",
"tslint-config-prettier": "^1.10.0",
diff --git a/packages/taro-with-weapp/yarn.lock b/packages/taro-with-weapp/yarn.lock
index 660797cb2f7a..55f2d4da6b78 100644
--- a/packages/taro-with-weapp/yarn.lock
+++ b/packages/taro-with-weapp/yarn.lock
@@ -16,46 +16,46 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393"
- integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==
+"@sinonjs/commons@^1", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.0.tgz#f90ffc52a2e519f018b13b6c4da03cbff36ebed6"
+ integrity sha512-qbk9AP+cZUsKdW1GJsBpxPKFmCJ0T8swwzVje3qFd+AkQb74Q/tiuzrdfFg8AD2g5HH/XbE/I8Uc1KYHVYWfhg==
dependencies:
type-detect "4.0.8"
-"@sinonjs/formatio@^3.2.1":
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c"
- integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==
+"@sinonjs/formatio@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-4.0.1.tgz#50ac1da0c3eaea117ca258b06f4f88a471668bdb"
+ integrity sha512-asIdlLFrla/WZybhm0C8eEzaDNNrzymiTqHMeJl6zPW2881l3uuVRpm0QlRQEjqYWv6CcKMGYME3LbrLJsORBw==
dependencies:
"@sinonjs/commons" "^1"
- "@sinonjs/samsam" "^3.1.0"
+ "@sinonjs/samsam" "^4.2.0"
-"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.3":
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a"
- integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==
+"@sinonjs/samsam@^4.2.0", "@sinonjs/samsam@^4.2.1":
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-4.2.1.tgz#cee77dc95f8d00339633e1683e026f2d73ed1d3a"
+ integrity sha512-7+5S4C4wpug5pzHS+z/63+XUwsH7dtyYELDafoT1QnfruFh7eFjlDWwZXltUB0GLk6y5eMeAt34Bjx8wJ4KfSA==
dependencies:
- "@sinonjs/commons" "^1.3.0"
- array-from "^2.1.1"
- lodash "^4.17.15"
+ "@sinonjs/commons" "^1.6.0"
+ lodash.get "^4.4.2"
+ type-detect "^4.0.8"
"@sinonjs/text-encoding@^0.7.1":
version "0.7.1"
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
-"@tarojs/taro@1.3.23":
- version "1.3.23"
- resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-1.3.23.tgz#8ad32c88898f578b3e6f53b98c0a75eeff349df1"
- integrity sha512-nHLBEoz3Lb5jDPgXRr3e4MC8z9+3i6Pa2WzYhZnx+IZEa0WF6zNyCFkaTN3suoWPZdEcmSj5MvoQd7c5BC/OEQ==
+"@tarojs/taro@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-2.0.0-beta.13.tgz#6537b4263a27641fa51e8f98673f9ea48919af01"
+ integrity sha512-kpbLGlViyDWQ0dq39aOn1FyZUpLtebkA9m9DnIZoQLmGJjZ02FBnCr7/fF3LcYNlGANluHqIOLF/n2cbk2zwMw==
dependencies:
- "@tarojs/utils" "1.3.23"
+ "@tarojs/utils" "2.0.0-beta.13"
-"@tarojs/utils@1.3.23":
- version "1.3.23"
- resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-1.3.23.tgz#e83282c29730c7604b6d5e82ded1b7460355535f"
- integrity sha512-f3hFYzY+ZkHFcEXEMrDmzNwSWe83CKPavJI4NWAKKqPkbGLIpKZN7gwzgX46BFVOPSG1Brqpb1pfbMPTldPJ4Q==
+"@tarojs/utils@2.0.0-beta.13":
+ version "2.0.0-beta.13"
+ resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-2.0.0-beta.13.tgz#a3b9b4a36ab71ac4e2a3fddd96f4fb006862ea62"
+ integrity sha512-R/i14e/qFMc1zJyj/kEDtN3ig5GSO5l0NjCXfuIRWZaLOW+j9Ld+/qgoub0CoKZJ0STFdoZEM9yUfcbbMUX9HA==
"@types/estree@0.0.39":
version "0.0.39"
@@ -207,11 +207,6 @@ array-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
-array-from@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
- integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
-
array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
@@ -246,7 +241,7 @@ async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-async@^2.1.4, async@^2.5.0:
+async@^2.1.4:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
dependencies:
@@ -653,9 +648,10 @@ commander@^2.12.1:
version "2.18.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
-commander@~2.17.1:
- version "2.17.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+commander@~2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
component-emitter@^1.2.1:
version "1.2.1"
@@ -800,10 +796,15 @@ detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
-diff@^3.2.0, diff@^3.5.0:
+diff@^3.2.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+diff@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
+ integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
+
doctrine@0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
@@ -1190,10 +1191,11 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
handlebars@^4.0.3:
- version "4.0.12"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
- async "^2.5.0"
+ neo-async "^2.6.0"
optimist "^0.6.1"
source-map "^0.6.1"
optionalDependencies:
@@ -1224,6 +1226,11 @@ has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
has-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
@@ -2325,6 +2332,11 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+lodash.get@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
lodash.sortby@^4.7.0:
version "4.7.0"
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
@@ -2334,15 +2346,12 @@ lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.13.tgz#0bdc3a6adc873d2f4e0c4bac285df91b64fc7b93"
integrity sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==
-lodash@^4.17.15:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
-lolex@^4.1.0, lolex@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7"
- integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==
+lolex@^5.0.1, lolex@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
+ integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
loose-envify@^1.0.0:
version "1.4.0"
@@ -2471,7 +2480,8 @@ minimist@^1.1.1, minimist@^1.2.0:
minimist@~0.0.1:
version "0.0.10"
- resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.4"
@@ -2540,6 +2550,11 @@ needle@^2.2.1:
iconv-lite "^0.4.4"
sax "^1.2.4"
+neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+
nerv-shared@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/nerv-shared/-/nerv-shared-1.4.0.tgz#4ae903f215888ab886b3d04ae3b95d5327e67f43"
@@ -2558,15 +2573,16 @@ nervjs@^1.4.4:
nerv-shared "1.4.0"
nerv-utils "1.4.5"
-nise@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652"
- integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==
+nise@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-3.0.1.tgz#0659982af515e5aac15592226246243e8da0013d"
+ integrity sha512-fYcH9y0drBGSoi88kvhpbZEsenX58Yr+wOJ4/Mi1K4cy+iGP/a73gNoyNhu5E9QxPdgTlVChfIaAlnyOy/gHUA==
dependencies:
- "@sinonjs/formatio" "^3.2.1"
+ "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/formatio" "^4.0.1"
"@sinonjs/text-encoding" "^0.7.1"
just-extend "^4.0.2"
- lolex "^4.1.0"
+ lolex "^5.0.1"
path-to-regexp "^1.7.0"
node-int64@^0.4.0:
@@ -2708,6 +2724,7 @@ once@^1.3.0, once@^1.4.0:
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
@@ -3253,18 +3270,18 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-sinon@^7.4.1:
- version "7.5.0"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.5.0.tgz#e9488ea466070ea908fd44a3d6478fd4923c67ec"
- integrity sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==
+sinon@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-8.0.2.tgz#cc5f6daa9cc351b86b03faaca1e9c3650a04ae11"
+ integrity sha512-8W1S7BnCyvk7SK+Xi15B1QAVLuS81G/NGmWefPb31+ly6xI3fXaug/g5oUdfc8+7ruC4Ay51AxuLlYm8diq6kA==
dependencies:
- "@sinonjs/commons" "^1.4.0"
- "@sinonjs/formatio" "^3.2.1"
- "@sinonjs/samsam" "^3.3.3"
- diff "^3.5.0"
- lolex "^4.2.0"
- nise "^1.5.2"
- supports-color "^5.5.0"
+ "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/formatio" "^4.0.1"
+ "@sinonjs/samsam" "^4.2.1"
+ diff "^4.0.1"
+ lolex "^5.1.2"
+ nise "^3.0.1"
+ supports-color "^7.1.0"
sisteransi@^0.1.1:
version "0.1.1"
@@ -3471,12 +3488,19 @@ supports-color@^3.1.2:
dependencies:
has-flag "^1.0.0"
-supports-color@^5.3.0, supports-color@^5.5.0:
+supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
dependencies:
has-flag "^3.0.0"
+supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+ dependencies:
+ has-flag "^4.0.0"
+
symbol-tree@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
@@ -3640,7 +3664,7 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-type-detect@4.0.8:
+type-detect@4.0.8, type-detect@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
@@ -3650,10 +3674,11 @@ typescript@^3.0.1:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8"
uglify-js@^3.1.4:
- version "3.4.9"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
+ integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
dependencies:
- commander "~2.17.1"
+ commander "~2.20.3"
source-map "~0.6.1"
unicode-canonical-property-names-ecmascript@^1.0.4:
@@ -3805,6 +3830,7 @@ wide-align@^1.1.0:
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"
diff --git a/packages/taro/package.json b/packages/taro/package.json
index 391d2eeb307c..0f973ff734e6 100644
--- a/packages/taro/package.json
+++ b/packages/taro/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "Taro framework",
"module": "dist/index.esm.js",
"main": "index.js",
@@ -23,15 +23,17 @@
"keywords": [
"taro"
],
+ "author": "O2Team",
+ "license": "MIT",
"peerDependencies": {
"nervjs": "^1.5.0"
},
- "author": "O2Team",
- "license": "MIT",
"dependencies": {
- "@tarojs/utils": "1.3.34"
+ "@tarojs/utils": "2.0.0-beta.13"
},
"devDependencies": {
- "@types/react": "^16.9.4"
+ "@types/react": "^16.9.4",
+ "webpack": "^4.35.0",
+ "webpack-dev-server": "^3.7.2"
}
}
diff --git a/packages/taro/types/api/media/image.d.ts b/packages/taro/types/api/media/image.d.ts
index 4ea6ee3a6ffd..c75f494eb48d 100644
--- a/packages/taro/types/api/media/image.d.ts
+++ b/packages/taro/types/api/media/image.d.ts
@@ -167,6 +167,10 @@ declare namespace Taro {
path: string
/** 本地临时文件大小,单位 B */
size: number
+ /** (仅 H5) 文件的 MIME 类型 */
+ type?: string
+ /** (仅 H5) 原始的浏览器 File 对象 */
+ originalFileObj?: File
}
}
/**
diff --git a/packages/taro/types/api/storage/index.d.ts b/packages/taro/types/api/storage/index.d.ts
index 179b531dc25f..be32ca5b3e8c 100644
--- a/packages/taro/types/api/storage/index.d.ts
+++ b/packages/taro/types/api/storage/index.d.ts
@@ -287,7 +287,7 @@ declare namespace Taro {
* ```
* @see https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorage.html
*/
- function getStorage(option: getStorage.Option): Promise
+ function getStorage(option: getStorage.Option): Promise
/** Taro.clearStorage 的同步版本
* @supported weapp, h5
diff --git a/packages/taro/types/compile.d.ts b/packages/taro/types/compile.d.ts
new file mode 100644
index 000000000000..096837bd0de1
--- /dev/null
+++ b/packages/taro/types/compile.d.ts
@@ -0,0 +1,369 @@
+import * as webpack from 'webpack'
+import * as webpackDevServer from 'webpack-dev-server'
+
+export const enum TEMPLATE_TYPES {
+ WEAPP = '.wxml',
+ SWAN = '.swan',
+ ALIPAY = '.axml',
+ TT = '.ttml',
+ QUICKAPP = '.ux',
+ QQ = '.qml'
+}
+
+export const enum STYLE_TYPES {
+ WEAPP = '.wxss',
+ SWAN = '.css',
+ ALIPAY = '.acss',
+ TT = '.ttss',
+ QUICKAPP = '.css',
+ QQ = '.qss'
+}
+
+export const enum SCRIPT_TYPES {
+ WEAPP = '.js',
+ SWAN = '.js',
+ ALIPAY = '.js',
+ TT = '.js',
+ QUICKAPP = '.js',
+ QQ = '.js'
+}
+
+export const enum CONFIG_TYPES {
+ WEAPP = '.json',
+ SWAN = '.json',
+ ALIPAY = '.json',
+ TT = '.json',
+ QUICKAPP = '.json',
+ QQ = '.json'
+}
+
+export type IMINI_APP_FILE_TYPE = {
+ TEMPL: TEMPLATE_TYPES,
+ STYLE: STYLE_TYPES,
+ SCRIPT: SCRIPT_TYPES,
+ CONFIG: CONFIG_TYPES
+}
+
+export type IMINI_APP_FILES = {
+ [key: string]: IMINI_APP_FILE_TYPE
+}
+
+export interface IOption {
+ [key: string]: any
+}
+
+export interface ICopyOptions {
+ patterns: {
+ from: string,
+ to: string,
+ ignore?: string[],
+ watch?: boolean
+ }[],
+ options: {
+ ignore?: string[]
+ }
+}
+
+interface IBabelOptions {
+ sourceMap: boolean,
+ presets: string[],
+ plugins: any[]
+}
+
+interface ISassOptions {
+ /**
+ * 引入的全局 sass 文件,如果要引入多个文件,支持数组形式传入
+ */
+ resource?: string | string[],
+ /**
+ * 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
+ */
+ projectDirectory?: string,
+ /**
+ * 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
+ */
+ data?: string
+}
+
+export interface ICopyArgOptions {
+ filter?: (src: string) => boolean
+}
+
+export namespace PostcssOption {
+ export type cssModules = TogglableOptions<{
+ namingPattern: 'global' | string
+ generateScopedName: string | ((localName: string, absoluteFilePath: string) => string)
+ }>
+ export type url = TogglableOptions<{
+ limit: number,
+ basePath?: string | string[]
+ }>
+}
+
+export interface IPostcssOption {
+ autoprefixer?: TogglableOptions,
+ pxtransform?: TogglableOptions,
+ cssModules?: PostcssOption.cssModules,
+ url?: PostcssOption.url,
+ [key: string]: any
+}
+
+export interface ICompileOption {
+ exclude?: string[],
+ include?: string[]
+}
+
+export interface IMiniAppConfig {
+ appOutput?: boolean,
+ enableSourceMap: boolean,
+
+ webpackChain: (chain: any, webpack: any) => void,
+ entry: webpack.Entry,
+ output: webpack.Output,
+ postcss?: IPostcssOption,
+ cssLoaderOption: IOption,
+ sassLoaderOption: IOption,
+ lessLoaderOption: IOption,
+ stylusLoaderOption: IOption,
+ mediaUrlLoaderOption: IOption,
+ fontUrlLoaderOption: IOption,
+ imageUrlLoaderOption: IOption,
+ miniCssExtractPluginOption: IOption,
+
+ customFilesTypes: IMINI_APP_FILE_TYPE,
+ commonChunks: string[]
+}
+
+export type TogglableOptions = {
+ enable?: boolean,
+ config?: T
+}
+
+export interface IH5RouterConfig {
+ mode?: 'hash' | 'browser' | 'multi',
+ customRoutes?: IOption,
+ basename?: string,
+ lazyload?: boolean | ((pagename: string) => boolean),
+ renamePagename?: (pagename: string) => string
+}
+
+export interface IH5Config {
+ publicPath: string,
+ staticDirectory: string,
+ chunkDirectory: string,
+
+ webpack: ((webpackConfig: webpack.Configuration, webpack) => webpack.Configuration) | webpack.Configuration
+
+ webpackChain: (chain: any, webpack: any) => void,
+
+ entry: webpack.Entry,
+ output: webpack.Output,
+ router?: IH5RouterConfig,
+ devServer: webpackDevServer.Configuration,
+ enableSourceMap: boolean,
+ sourceMapType?: 'none' | 'eval' | 'cheap-eval-source-map' | 'cheap-module-eval-source-map' | 'eval-source-map' | 'cheap-source-map' | 'cheap-module-source-map' | 'inline-cheap-source-map' | 'inline-cheap-module-source-map' | 'source-map' | 'inline-source-map' | 'hidden-source-map' | 'nosources-source-map',
+ enableExtract: boolean,
+ transformOnly: boolean,
+
+ cssLoaderOption: IOption,
+ styleLoaderOption: IOption,
+ sassLoaderOption: IOption,
+ lessLoaderOption: IOption,
+ stylusLoaderOption: IOption,
+ mediaUrlLoaderOption: IOption,
+ fontUrlLoaderOption: IOption,
+ imageUrlLoaderOption: IOption,
+ miniCssExtractPluginOption: IOption,
+ esnextModules: string[],
+
+ postcss?: IPostcssOption
+}
+
+type FeatureItem = {
+ name: string
+}
+
+declare enum LogLevel {
+ OFF = 'off',
+ ERROR = 'error',
+ WARN = 'warn',
+ INFO = 'info',
+ LOG = 'log',
+ DEBUG = 'debug'
+}
+
+export interface IDeviceRatio {
+ [key: string]: number
+}
+
+export type SystemConfig = {
+ /**
+ * 打印日志等级,分为 off,error,warn,info,log,debug
+ */
+ logLevel?: LogLevel,
+ /**
+ * 页面设计基准宽度,根据实际设备宽度来缩放元素大小
+ */
+ designWidth?: number,
+ /**
+ * 全局数据对象,属性名不能以$或_开头,在页面中可通过 this 进行访问;如果全局数据属性与页面的数据属性重名,则页面初始化时,全局数据会覆盖页面中对应的属性值
+ */
+ data?: IOption
+}
+
+type RouterConfig = {
+ /**
+ * 首页名称
+ */
+ entry: string,
+ /**
+ * 页面配置列表,key 值为页面名称(对应页面目录名,例如 Hello 对应'Hello'目录),value 为页面详细配置 page
+ */
+ pages: RouterPage[]
+}
+type RouterPage = {
+ /**
+ * 页面对应的组件名,与 ux 文件名保持一致,例如'hello' 对应 'hello.ux'
+ */
+ component: string,
+ /**
+ * 页面路径,例如“/user”,不填则默认为/<页面名称>。
+ * path 必须唯一,不能和其他 page 的 path 相同。
+ * 下面 page 的 path 因为缺失,会被设置为“/Index”:
+ * "Index": {"component": "index"}
+ */
+ path?: string,
+ /**
+ * 声明页面可以处理某种请求
+ */
+ filter: {
+ [key: string]: {
+ uri: string
+ }
+ }
+}
+
+interface IDefaultDisplayConfig {
+ /**
+ * 窗口背景颜色
+ */
+ backgroundColor?: string,
+ /**
+ * 是否是全屏模式,默认不会同时作用于 titleBar,titleBar 需要继续通过 titleBar 控制
+ */
+ fullScreen?: boolean,
+ /**
+ * 是否显示 titleBar
+ */
+ titleBar?: boolean,
+ /**
+ * 标题栏背景色
+ */
+ titleBarBackgroundColor?: string,
+ /**
+ * 标题栏文字颜色
+ */
+ titleBarTextColor?: string,
+ /**
+ * 标题栏文字(也可通过页面跳转传递参数(titleBarText)设置)
+ */
+ titleBarText?: string,
+ /**
+ * 是否显示标题栏右上角菜单按钮,点击菜单按钮调用页面生命周期 onMenuPress 方法,如果该方法未实现则显示系统默认菜单
+ */
+ menu?: boolean,
+ /**
+ * 软键盘弹出时为保证输入框可见,页面的调整方式。 adjustPan:上移页面; adjustResize:压缩页面显示区域,当页面全屏时,此设置不生效
+ */
+ windowSoftInputMode?: 'adjustPan' | 'adjustResize'
+}
+
+interface IDisplayConfig extends IDefaultDisplayConfig {
+ /**
+ * 各个页面的显示样式,key 为页面名(与路由中的页面名保持一致),value 为窗口显示样式,页面样式覆盖 default 样式
+ */
+ pages?: {
+ [key: string]: IDefaultDisplayConfig
+ }
+}
+
+export interface ITaroManifestConfig {
+ /**
+ * 应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
+ */
+ package: string,
+ /**
+ * 应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
+ */
+ name: string,
+ /**
+ * 应用图标,提供 192x192 大小的即可
+ */
+ icon: string,
+ /**
+ * 应用版本名称,如:"1.0"
+ */
+ versionName?: string,
+ /**
+ * 应用版本号,从1自增,推荐每次重新上传包时versionCode+1
+ */
+ versionCode: number,
+ /**
+ * 支持的最小平台版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
+ */
+ minPlatformVersion?: string,
+ /**
+ * 接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
+ */
+ features?: FeatureItem[],
+ /**
+ *
+ */
+ logLevel?: LogLevel
+}
+
+export interface IManifestConfig extends ITaroManifestConfig {
+ /**
+ * 系统配置信息
+ */
+ config: SystemConfig,
+ /**
+ * 路由信息
+ */
+ router: RouterConfig,
+ /**
+ * UI 显示相关配置
+ */
+ display?: IDisplayConfig
+}
+
+export interface ICommonPlugin {
+ apply: (obj: object) => any
+}
+
+export interface IProjectBaseConfig {
+ projectName?: string,
+ date?: string,
+ designWidth?: number,
+ watcher?: any[],
+ deviceRatio?: IDeviceRatio,
+ sourceRoot?: string,
+ outputRoot?: string,
+ env?: IOption,
+ alias?: IOption,
+ defineConstants?: IOption,
+ copy?: ICopyOptions,
+ babel?: IBabelOptions,
+ csso?: TogglableOptions,
+ uglify?: TogglableOptions,
+ sass?: ISassOptions,
+ plugins?: ICommonPlugin[],
+}
+
+export interface IProjectConfig extends IProjectBaseConfig {
+ ui?: {
+ extraWatchFiles?: any[]
+ },
+ mini?: IMiniAppConfig,
+ h5?: IH5Config
+}
diff --git a/packages/taro/yarn.lock b/packages/taro/yarn.lock
new file mode 100644
index 000000000000..ae7f5d62492e
--- /dev/null
+++ b/packages/taro/yarn.lock
@@ -0,0 +1,3164 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+
+"@types/glob@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+
+"@types/node@*":
+ version "12.0.10"
+ resolved "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031"
+
+"@webassemblyjs/ast@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
+ dependencies:
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/wast-parser" "1.8.5"
+
+"@webassemblyjs/floating-point-hex-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
+
+"@webassemblyjs/helper-api-error@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
+
+"@webassemblyjs/helper-buffer@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
+
+"@webassemblyjs/helper-code-frame@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
+ dependencies:
+ "@webassemblyjs/wast-printer" "1.8.5"
+
+"@webassemblyjs/helper-fsm@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
+
+"@webassemblyjs/helper-module-context@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ mamacro "^0.0.3"
+
+"@webassemblyjs/helper-wasm-bytecode@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
+
+"@webassemblyjs/helper-wasm-section@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+
+"@webassemblyjs/ieee754@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
+
+"@webassemblyjs/wasm-edit@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/helper-wasm-section" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+ "@webassemblyjs/wasm-opt" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ "@webassemblyjs/wast-printer" "1.8.5"
+
+"@webassemblyjs/wasm-gen@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/ieee754" "1.8.5"
+ "@webassemblyjs/leb128" "1.8.5"
+ "@webassemblyjs/utf8" "1.8.5"
+
+"@webassemblyjs/wasm-opt@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+
+"@webassemblyjs/wasm-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-api-error" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/ieee754" "1.8.5"
+ "@webassemblyjs/leb128" "1.8.5"
+ "@webassemblyjs/utf8" "1.8.5"
+
+"@webassemblyjs/wast-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/floating-point-hex-parser" "1.8.5"
+ "@webassemblyjs/helper-api-error" "1.8.5"
+ "@webassemblyjs/helper-code-frame" "1.8.5"
+ "@webassemblyjs/helper-fsm" "1.8.5"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/wast-printer@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/wast-parser" "1.8.5"
+ "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
+
+acorn-dynamic-import@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
+
+acorn@^6.0.5:
+ version "6.1.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
+
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+
+ajv-keywords@^3.1.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d"
+
+ajv@^6.1.0:
+ version "6.10.0"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
+ dependencies:
+ fast-deep-equal "^2.0.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-colors@^3.0.0:
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
+
+ansi-html@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+aproba@^1.0.3, aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+
+are-we-there-yet@~1.1.2:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+
+arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+
+array-flatten@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+
+asn1.js@^4.0.0:
+ version "4.10.1"
+ resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+assert@^1.1.1:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
+ dependencies:
+ object-assign "^4.1.1"
+ util "0.10.3"
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+
+async-each@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+
+async@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+atob@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+base64-js@^1.0.2:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+batch@0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+
+binary-extensions@^1.0.0:
+ version "1.13.1"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+
+bluebird@^3.5.5:
+ version "3.5.5"
+ resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
+ version "4.11.8"
+ resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+
+body-parser@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ dependencies:
+ bytes "3.1.0"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "~1.1.2"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ on-finished "~2.3.0"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
+
+bonjour@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ dependencies:
+ array-flatten "^2.1.0"
+ deep-equal "^1.0.1"
+ dns-equal "^1.0.0"
+ dns-txt "^2.0.2"
+ multicast-dns "^6.0.1"
+ multicast-dns-service-types "^1.1.0"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^2.3.1, braces@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+brorand@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+
+browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ dependencies:
+ bn.js "^4.1.0"
+ randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+ dependencies:
+ bn.js "^4.1.1"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.2"
+ elliptic "^6.0.0"
+ inherits "^2.0.1"
+ parse-asn1 "^5.0.0"
+
+browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ dependencies:
+ pako "~1.0.5"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+
+buffer-indexof@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+
+buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+
+buffer@^4.3.0:
+ version "4.9.1"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+
+bytes@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+
+cacache@^11.3.2:
+ version "11.3.3"
+ resolved "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
+ dependencies:
+ bluebird "^3.5.5"
+ chownr "^1.1.1"
+ figgy-pudding "^3.5.1"
+ glob "^7.1.4"
+ graceful-fs "^4.1.15"
+ lru-cache "^5.1.1"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.3"
+ ssri "^6.0.1"
+ unique-filename "^1.1.1"
+ y18n "^4.0.0"
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+camelcase@^5.0.0:
+ version "5.3.1"
+ resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+
+chokidar@^2.0.2, chokidar@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
+ dependencies:
+ anymatch "^2.0.0"
+ async-each "^1.0.1"
+ braces "^2.3.2"
+ glob-parent "^3.1.0"
+ inherits "^2.0.3"
+ is-binary-path "^1.0.0"
+ is-glob "^4.0.0"
+ normalize-path "^3.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.2.1"
+ upath "^1.1.1"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
+chownr@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
+
+chrome-trace-event@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
+ dependencies:
+ tslib "^1.9.0"
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+cliui@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+commander@^2.19.0:
+ version "2.20.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+
+compressible@~2.0.16:
+ version "2.0.17"
+ resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
+ dependencies:
+ mime-db ">= 1.40.0 < 2"
+
+compression@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+ dependencies:
+ accepts "~1.3.5"
+ bytes "3.0.0"
+ compressible "~2.0.16"
+ debug "2.6.9"
+ on-headers "~1.0.2"
+ safe-buffer "5.1.2"
+ vary "~1.1.2"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+concat-stream@^1.5.0:
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+connect-history-api-fallback@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
+
+console-browserify@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ dependencies:
+ date-now "^0.1.4"
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+
+constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+
+content-disposition@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ dependencies:
+ safe-buffer "5.1.2"
+
+content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+
+cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+
+copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+create-ecdh@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.0.0"
+
+create-hash@^1.1.0, create-hash@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+cross-spawn@^6.0.0:
+ version "6.0.5"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+crypto-browserify@^3.11.0:
+ version "3.12.0"
+ resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+ randomfill "^1.0.3"
+
+cyclist@~0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
+
+date-now@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.2.5, debug@^3.2.6:
+ version "3.2.6"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.1.0, debug@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ dependencies:
+ ms "^2.1.1"
+
+decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+
+deep-equal@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+
+default-gateway@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
+ dependencies:
+ execa "^1.0.0"
+ ip-regex "^2.1.0"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+del@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
+ dependencies:
+ "@types/glob" "^7.1.1"
+ globby "^6.1.0"
+ is-path-cwd "^2.0.0"
+ is-path-in-cwd "^2.0.0"
+ p-map "^2.0.0"
+ pify "^4.0.1"
+ rimraf "^2.6.3"
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+
+des.js@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+destroy@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+
+detect-libc@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+
+detect-node@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
+
+diffie-hellman@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+
+dns-packet@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
+ dependencies:
+ ip "^1.1.0"
+ safe-buffer "^5.0.1"
+
+dns-txt@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ dependencies:
+ buffer-indexof "^1.0.0"
+
+domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+
+duplexify@^3.4.2, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+
+elliptic@^6.0.0:
+ version "6.4.1"
+ resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
+ dependencies:
+ bn.js "^4.4.0"
+ brorand "^1.0.1"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.0"
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ dependencies:
+ once "^1.4.0"
+
+enhanced-resolve@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.4.0"
+ tapable "^1.0.0"
+
+errno@^0.1.3, errno@~0.1.7:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+ dependencies:
+ prr "~1.0.1"
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+
+eslint-scope@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ dependencies:
+ estraverse "^4.1.0"
+
+estraverse@^4.1.0, estraverse@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+
+eventemitter3@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
+
+events@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
+
+eventsource@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
+ dependencies:
+ original "^1.0.0"
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+express@^4.17.1:
+ version "4.17.1"
+ resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ dependencies:
+ accepts "~1.3.7"
+ array-flatten "1.1.1"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
+ content-type "~1.0.4"
+ cookie "0.4.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "~1.1.2"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "~1.1.2"
+ fresh "0.5.2"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.1.2"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+fast-deep-equal@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+faye-websocket@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+faye-websocket@~0.11.1:
+ version "0.11.3"
+ resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+figgy-pudding@^3.5.1:
+ version "3.5.1"
+ resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
+ unpipe "~1.0.0"
+
+find-cache-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^2.0.0"
+ pkg-dir "^3.0.0"
+
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ dependencies:
+ locate-path "^3.0.0"
+
+flush-write-stream@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+follow-redirects@^1.0.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76"
+ dependencies:
+ debug "^3.2.6"
+
+for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+forwarded@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ dependencies:
+ map-cache "^0.2.2"
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+
+from2@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
+fs-minipass@^1.2.5:
+ version "1.2.6"
+ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07"
+ dependencies:
+ minipass "^2.2.1"
+
+fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ dependencies:
+ graceful-fs "^4.1.2"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+fsevents@^1.2.7:
+ version "1.2.9"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
+ dependencies:
+ nan "^2.12.1"
+ node-pre-gyp "^0.12.0"
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ dependencies:
+ pump "^3.0.0"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+
+glob-parent@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.0"
+
+glob@^7.0.3, glob@^7.1.3, glob@^7.1.4:
+ version "7.1.4"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
+ version "4.1.15"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
+
+handle-thing@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+has-unicode@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+hash-base@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+hmac-drbg@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hpack.js@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ dependencies:
+ inherits "^2.0.1"
+ obuf "^1.0.0"
+ readable-stream "^2.0.1"
+ wbuf "^1.1.0"
+
+html-entities@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
+
+http-deceiver@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+
+http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
+http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+"http-parser-js@>=0.4.0 <0.4.11":
+ version "0.4.10"
+ resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
+
+http-proxy-middleware@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
+ dependencies:
+ http-proxy "^1.17.0"
+ is-glob "^4.0.0"
+ lodash "^4.17.11"
+ micromatch "^3.1.10"
+
+http-proxy@^1.17.0:
+ version "1.17.0"
+ resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
+ dependencies:
+ eventemitter3 "^3.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
+https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+
+iconv-lite@0.4.24, iconv-lite@^0.4.4:
+ version "0.4.24"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ieee754@^1.1.4:
+ version "1.1.13"
+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
+
+iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+
+ignore-walk@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
+ dependencies:
+ minimatch "^3.0.4"
+
+import-local@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ dependencies:
+ pkg-dir "^3.0.0"
+ resolve-cwd "^2.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+
+inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ini@~1.3.0:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
+internal-ip@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
+ dependencies:
+ default-gateway "^4.2.0"
+ ipaddr.js "^1.9.0"
+
+invert-kv@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+
+ip-regex@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+
+ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
+ipaddr.js@1.9.0, ipaddr.js@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ dependencies:
+ kind-of "^6.0.0"
+
+is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ dependencies:
+ binary-extensions "^1.0.0"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ dependencies:
+ kind-of "^6.0.0"
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.0, is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-glob@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ dependencies:
+ is-extglob "^2.1.0"
+
+is-glob@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-path-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c"
+
+is-path-in-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
+ dependencies:
+ is-path-inside "^2.1.0"
+
+is-path-inside@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
+ dependencies:
+ path-is-inside "^1.0.2"
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ dependencies:
+ isobject "^3.0.1"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+
+is-wsl@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+
+isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+
+json-parse-better-errors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+
+json3@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
+
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ dependencies:
+ minimist "^1.2.0"
+
+killable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+
+lcid@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+ dependencies:
+ invert-kv "^2.0.0"
+
+loader-runner@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+
+loader-utils@^1.1.0, loader-utils@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^2.0.0"
+ json5 "^1.0.1"
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+lodash@^4.17.11:
+ version "4.17.11"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+
+loglevel@^1.6.3:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280"
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ dependencies:
+ yallist "^3.0.2"
+
+make-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+mamacro@^0.0.3:
+ version "0.0.3"
+ resolved "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
+
+map-age-cleaner@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+ dependencies:
+ p-defer "^1.0.0"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ dependencies:
+ object-visit "^1.0.0"
+
+md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+
+mem@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
+ dependencies:
+ map-age-cleaner "^0.1.1"
+ mimic-fn "^2.0.0"
+ p-is-promise "^2.0.0"
+
+memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+
+micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
+ version "3.1.10"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@1.40.0, "mime-db@>= 1.40.0 < 2":
+ version "1.40.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
+
+mime-types@~2.1.17, mime-types@~2.1.24:
+ version "2.1.24"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
+ dependencies:
+ mime-db "1.40.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+
+mime@^2.4.2:
+ version "2.4.4"
+ resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
+
+mimic-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+
+minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+minipass@^2.2.1, minipass@^2.3.5:
+ version "2.3.5"
+ resolved "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
+ dependencies:
+ safe-buffer "^5.1.2"
+ yallist "^3.0.0"
+
+minizlib@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
+ dependencies:
+ minipass "^2.2.1"
+
+mississippi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^3.0.0"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
+
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
+ version "0.5.1"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ dependencies:
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+ms@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+
+ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+
+multicast-dns-service-types@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+
+multicast-dns@^6.0.1:
+ version "6.2.3"
+ resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+ dependencies:
+ dns-packet "^1.3.1"
+ thunky "^1.0.2"
+
+nan@^2.12.1:
+ version "2.14.0"
+ resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+needle@^2.2.1:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
+ dependencies:
+ debug "^3.2.6"
+ iconv-lite "^0.4.4"
+ sax "^1.2.4"
+
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+
+neo-async@^2.5.0:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+
+node-forge@0.7.5:
+ version "0.7.5"
+ resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
+
+node-libs-browser@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+node-pre-gyp@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
+ dependencies:
+ detect-libc "^1.0.2"
+ mkdirp "^0.5.1"
+ needle "^2.2.1"
+ nopt "^4.0.1"
+ npm-packlist "^1.1.6"
+ npmlog "^4.0.2"
+ rc "^1.2.7"
+ rimraf "^2.6.1"
+ semver "^5.3.0"
+ tar "^4"
+
+nopt@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+ dependencies:
+ abbrev "1"
+ osenv "^0.1.4"
+
+normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+
+npm-bundled@^1.0.1:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
+
+npm-packlist@^1.1.6:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc"
+ dependencies:
+ ignore-walk "^3.0.1"
+ npm-bundled "^1.0.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+npmlog@^4.0.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ dependencies:
+ isobject "^3.0.0"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ dependencies:
+ isobject "^3.0.1"
+
+obuf@^1.0.0, obuf@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ dependencies:
+ ee-first "1.1.1"
+
+on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+opn@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
+ dependencies:
+ is-wsl "^1.1.0"
+
+original@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+ dependencies:
+ url-parse "^1.4.3"
+
+os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-locale@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
+ dependencies:
+ execa "^1.0.0"
+ lcid "^2.0.0"
+ mem "^4.0.0"
+
+os-tmpdir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+
+osenv@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.0"
+
+p-defer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-is-promise@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
+
+p-limit@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2"
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ dependencies:
+ p-limit "^2.0.0"
+
+p-map@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+
+p-retry@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
+ dependencies:
+ retry "^0.12.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+
+pako@~1.0.5:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
+
+parallel-transform@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+ dependencies:
+ cyclist "~0.2.2"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
+parse-asn1@^5.0.0:
+ version "5.1.4"
+ resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
+ dependencies:
+ asn1.js "^4.0.0"
+ browserify-aes "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.0"
+ pbkdf2 "^3.0.3"
+ safe-buffer "^5.1.1"
+
+parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+
+path-dirname@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+
+pbkdf2@^3.0.3:
+ version "3.0.17"
+ resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
+ dependencies:
+ create-hash "^1.1.2"
+ create-hmac "^1.1.4"
+ ripemd160 "^2.0.1"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ dependencies:
+ find-up "^3.0.0"
+
+portfinder@^1.0.20:
+ version "1.0.20"
+ resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a"
+ dependencies:
+ async "^1.5.2"
+ debug "^2.2.0"
+ mkdirp "0.5.x"
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+
+proxy-addr@~2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
+ dependencies:
+ forwarded "~0.1.2"
+ ipaddr.js "1.9.0"
+
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+
+public-encrypt@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+pump@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pumpify@^1.3.3:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
+punycode@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+
+punycode@^1.2.4:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+
+qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+
+querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+
+querystring@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+
+querystringify@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ dependencies:
+ safe-buffer "^5.1.0"
+
+randomfill@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+range-parser@^1.2.1, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+
+raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+rc@^1.2.7:
+ version "1.2.8"
+ resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.6"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@^3.0.6:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readdirp@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ readable-stream "^2.0.2"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+
+repeat-element@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+
+resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ dependencies:
+ resolve-from "^3.0.0"
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+
+rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
+ version "2.6.3"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ dependencies:
+ glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+
+run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ dependencies:
+ aproba "^1.1.1"
+
+safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
+sax@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+
+schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+select-hose@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+
+selfsigned@^1.10.4:
+ version "1.10.4"
+ resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd"
+ dependencies:
+ node-forge "0.7.5"
+
+semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
+ version "5.7.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
+
+semver@^6.1.1:
+ version "6.1.2"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318"
+
+send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
+serialize-javascript@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
+
+serve-index@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ dependencies:
+ accepts "~1.3.4"
+ batch "0.6.1"
+ debug "2.6.9"
+ escape-html "~1.0.3"
+ http-errors "~1.6.2"
+ mime-types "~2.1.17"
+ parseurl "~1.3.2"
+
+serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.1"
+
+set-blocking@^2.0.0, set-blocking@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+setimmediate@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+
+sha.js@^2.4.0, sha.js@^2.4.8:
+ version "2.4.11"
+ resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+signal-exit@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+sockjs-client@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177"
+ dependencies:
+ debug "^3.2.5"
+ eventsource "^1.0.7"
+ faye-websocket "~0.11.1"
+ inherits "^2.0.3"
+ json3 "^3.3.2"
+ url-parse "^1.4.3"
+
+sockjs@0.3.19:
+ version "0.3.19"
+ resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
+ dependencies:
+ faye-websocket "^0.10.0"
+ uuid "^3.0.1"
+
+source-list-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+
+source-map-resolve@^0.5.0:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ dependencies:
+ atob "^2.1.1"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@~0.5.10:
+ version "0.5.12"
+ resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+
+source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+spdy-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+ dependencies:
+ debug "^4.1.0"
+ detect-node "^2.0.4"
+ hpack.js "^2.1.6"
+ obuf "^1.1.2"
+ readable-stream "^3.0.6"
+ wbuf "^1.7.3"
+
+spdy@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52"
+ dependencies:
+ debug "^4.1.0"
+ handle-thing "^2.0.0"
+ http-deceiver "^1.2.7"
+ select-hose "^2.0.0"
+ spdy-transport "^3.0.0"
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ dependencies:
+ extend-shallow "^3.0.0"
+
+ssri@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
+ dependencies:
+ figgy-pudding "^3.5.1"
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-each@^1.1.0:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
+stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-shift@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ dependencies:
+ has-flag "^3.0.0"
+
+tapable@^1.0.0, tapable@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+
+tar@^4:
+ version "4.4.10"
+ resolved "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
+ dependencies:
+ chownr "^1.1.1"
+ fs-minipass "^1.2.5"
+ minipass "^2.3.5"
+ minizlib "^1.2.1"
+ mkdirp "^0.5.0"
+ safe-buffer "^5.1.2"
+ yallist "^3.0.3"
+
+terser-webpack-plugin@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz#69aa22426299f4b5b3775cbed8cb2c5d419aa1d4"
+ dependencies:
+ cacache "^11.3.2"
+ find-cache-dir "^2.0.0"
+ is-wsl "^1.1.0"
+ loader-utils "^1.2.3"
+ schema-utils "^1.0.0"
+ serialize-javascript "^1.7.0"
+ source-map "^0.6.1"
+ terser "^4.0.0"
+ webpack-sources "^1.3.0"
+ worker-farm "^1.7.0"
+
+terser@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz#ef356f6f359a963e2cc675517f21c1c382877374"
+ dependencies:
+ commander "^2.19.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.10"
+
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+thunky@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
+
+timers-browserify@^2.0.4:
+ version "2.0.10"
+ resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
+ dependencies:
+ setimmediate "^1.0.4"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+
+tslib@^1.9.0:
+ version "1.10.0"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+
+type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ dependencies:
+ imurmurhash "^0.1.4"
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+upath@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068"
+
+uri-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+
+url-parse@^1.4.3:
+ version "1.4.7"
+ resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
+url@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ dependencies:
+ punycode "1.3.2"
+ querystring "0.2.0"
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+util@0.10.3:
+ version "0.10.3"
+ resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ dependencies:
+ inherits "2.0.1"
+
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ dependencies:
+ inherits "2.0.3"
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+
+uuid@^3.0.1, uuid@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+
+vm-browserify@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
+
+watchpack@^1.5.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
+ dependencies:
+ chokidar "^2.0.2"
+ graceful-fs "^4.1.2"
+ neo-async "^2.5.0"
+
+wbuf@^1.1.0, wbuf@^1.7.3:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+ dependencies:
+ minimalistic-assert "^1.0.0"
+
+webpack-dev-middleware@^3.7.0:
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff"
+ dependencies:
+ memory-fs "^0.4.1"
+ mime "^2.4.2"
+ range-parser "^1.2.1"
+ webpack-log "^2.0.0"
+
+webpack-dev-server@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz#f79caa5974b7f8b63268ef5421222a8486d792f5"
+ dependencies:
+ ansi-html "0.0.7"
+ bonjour "^3.5.0"
+ chokidar "^2.1.6"
+ compression "^1.7.4"
+ connect-history-api-fallback "^1.6.0"
+ debug "^4.1.1"
+ del "^4.1.1"
+ express "^4.17.1"
+ html-entities "^1.2.1"
+ http-proxy-middleware "^0.19.1"
+ import-local "^2.0.0"
+ internal-ip "^4.3.0"
+ ip "^1.1.5"
+ killable "^1.0.1"
+ loglevel "^1.6.3"
+ opn "^5.5.0"
+ p-retry "^3.0.1"
+ portfinder "^1.0.20"
+ schema-utils "^1.0.0"
+ selfsigned "^1.10.4"
+ semver "^6.1.1"
+ serve-index "^1.9.1"
+ sockjs "0.3.19"
+ sockjs-client "1.3.0"
+ spdy "^4.0.0"
+ strip-ansi "^3.0.1"
+ supports-color "^6.1.0"
+ url "^0.11.0"
+ webpack-dev-middleware "^3.7.0"
+ webpack-log "^2.0.0"
+ yargs "12.0.5"
+
+webpack-log@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+ dependencies:
+ ansi-colors "^3.0.0"
+ uuid "^3.3.2"
+
+webpack-sources@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.6.1"
+
+webpack@^4.35.0:
+ version "4.35.0"
+ resolved "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz#ad3f0f8190876328806ccb7a36f3ce6e764b8378"
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/wasm-edit" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ acorn "^6.0.5"
+ acorn-dynamic-import "^4.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+ chrome-trace-event "^1.0.0"
+ enhanced-resolve "^4.1.0"
+ eslint-scope "^4.0.0"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.3.0"
+ loader-utils "^1.1.0"
+ memory-fs "~0.4.1"
+ micromatch "^3.1.8"
+ mkdirp "~0.5.0"
+ neo-async "^2.5.0"
+ node-libs-browser "^2.0.0"
+ schema-utils "^1.0.0"
+ tapable "^1.1.0"
+ terser-webpack-plugin "^1.1.0"
+ watchpack "^1.5.0"
+ webpack-sources "^1.3.0"
+
+websocket-driver@>=0.5.1:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
+ dependencies:
+ http-parser-js ">=0.4.0 <0.4.11"
+ safe-buffer ">=5.1.0"
+ websocket-extensions ">=0.1.1"
+
+websocket-extensions@>=0.1.1:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+worker-farm@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ dependencies:
+ errno "~0.1.7"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+
+"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+
+yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
+
+yargs-parser@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs@12.0.5:
+ version "12.0.5"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
+ get-caller-file "^1.0.1"
+ os-locale "^3.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1 || ^4.0.0"
+ yargs-parser "^11.1.1"
diff --git a/packages/taroize/package.json b/packages/taroize/package.json
index 9d78ce642644..5c382969cae4 100644
--- a/packages/taroize/package.json
+++ b/packages/taroize/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taroize",
- "version": "1.3.34",
+ "version": "2.0.0-beta.13",
"description": "转换原生微信小程序代码为 Taro 代码",
"main": "index.js",
"files": [
diff --git a/packages/taroize/yarn.lock b/packages/taroize/yarn.lock
index 483f47b3cd49..e17b322c20ef 100644
--- a/packages/taroize/yarn.lock
+++ b/packages/taroize/yarn.lock
@@ -85,18 +85,6 @@ ajv@^5.3.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
ansi-escapes@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
@@ -228,10 +216,6 @@ async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-async@^1.4.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
async@^2.1.4:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
@@ -545,10 +529,6 @@ callsites@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
@@ -563,13 +543,6 @@ caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -620,14 +593,6 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
cliui@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -671,6 +636,11 @@ commander@^2.12.1:
version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+commander@~2.20.3:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
compare-versions@^3.1.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.3.1.tgz#1ede3172b713c15f7c7beb98cb74d2d82576dad3"
@@ -773,7 +743,7 @@ debug@^3.1.0:
dependencies:
ms "2.0.0"
-decamelize@^1.0.0, decamelize@^1.1.1:
+decamelize@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1237,14 +1207,15 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
handlebars@^4.0.3:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
- async "^1.4.0"
+ neo-async "^2.6.0"
optimist "^0.6.1"
- source-map "^0.4.4"
+ source-map "^0.6.1"
optionalDependencies:
- uglify-js "^2.6"
+ uglify-js "^3.1.4"
har-schema@^2.0.0:
version "2.0.0"
@@ -2348,10 +2319,6 @@ kleur@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.1.tgz#7cc64b0d188d0dcbc98bdcdfdda2cc10619ddce8"
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -2399,10 +2366,6 @@ lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.13.tgz#0bdc3a6adc873d2f4e0c4bac285df91b64fc7b93"
integrity sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
loose-envify@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -2519,6 +2482,7 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0:
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.4"
@@ -2583,6 +2547,11 @@ needle@^2.2.1:
iconv-lite "^0.4.4"
sax "^1.2.4"
+neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -2722,6 +2691,7 @@ once@^1.3.0, once@^1.4.0:
optimist@^0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
@@ -3096,12 +3066,6 @@ ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
rimraf@^2.5.4, rimraf@^2.6.1:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
@@ -3264,17 +3228,11 @@ source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-source-map@^0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-source-map@^0.6.0, source-map@~0.6.1:
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
@@ -3593,18 +3551,13 @@ typescript@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb"
-uglify-js@^2.6:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+uglify-js@^3.1.4:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
+ integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+ commander "~2.20.3"
+ source-map "~0.6.1"
union-value@^1.0.0:
version "1.0.0"
@@ -3729,17 +3682,10 @@ wide-align@^1.1.0:
dependencies:
string-width "^1.0.2 || 2"
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"
@@ -3831,12 +3777,3 @@ yargs@^11.0.0:
which-module "^2.0.0"
y18n "^3.2.1"
yargs-parser "^9.0.2"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
diff --git a/scripts/docs-api.ts b/scripts/docs-api.ts
index affae4ae4caa..61961e600845 100644
--- a/scripts/docs-api.ts
+++ b/scripts/docs-api.ts
@@ -55,7 +55,7 @@ export default function docsAPI (
if (diff) {
const canges = spawn('git', ['status', '-z'])
-
+
canges.stdout.on('data', (data) => {
const ss = data.toString().trim().split(/\u0000|\s+/ig)
ss.forEach(s => {
@@ -443,4 +443,4 @@ function isFunction (flags?: ts.SymbolFlags) {
function isOptional (flags?: ts.SymbolFlags) {
return SymbolFlags.includes((flags || -1) - ts.SymbolFlags.Optional)
-}
\ No newline at end of file
+}
diff --git a/website/i18n/en.json b/website/i18n/en.json
index 22ed66ddffdd..93f523a3dcdd 100644
--- a/website/i18n/en.json
+++ b/website/i18n/en.json
@@ -2677,6 +2677,27 @@
},
"version-1.3.26/version-1.3.26-tutorial": {
"title": "框架"
+ },
+ "version-1.3.27/version-1.3.27-hooks": {
+ "title": "Hooks"
+ },
+ "version-1.3.27/version-1.3.27-README": {
+ "title": "Taro 介绍"
+ },
+ "version-2.0.0-beta.2/version-2.0.0-beta.2-config-detail": {
+ "title": "编译配置详情"
+ },
+ "version-2.0.0-beta.2/version-2.0.0-beta.2-config": {
+ "title": "编译配置"
+ },
+ "version-2.0.0-beta.3/version-2.0.0-beta.3-async-await": {
+ "title": "异步编程"
+ },
+ "version-2.0.0-beta.3/version-2.0.0-beta.3-config-detail": {
+ "title": "编译配置详情"
+ },
+ "version-2.0.0-beta.3/version-2.0.0-beta.3-README": {
+ "title": "Taro 介绍"
}
},
"links": {
@@ -2685,8 +2706,7 @@
"API": "API",
"Taro-UI": "Taro-UI",
"物料市场": "物料市场",
- "论坛": "论坛",
- "GitHub": "GitHub"
+ "论坛": "论坛"
},
"categories": {
"关于Taro": "关于Taro",
diff --git a/website/sidebars.json b/website/sidebars.json
index 0a1a75607307..24a35fbb7e20 100644
--- a/website/sidebars.json
+++ b/website/sidebars.json
@@ -55,6 +55,7 @@
"进阶指南": [
"config",
"config-detail",
+ "debug-config",
"hooks",
"ui-lib",
"async-await",
diff --git a/website/versioned_docs/version-2.0.0-beta.12/GETTING-STARTED.md b/website/versioned_docs/version-2.0.0-beta.12/GETTING-STARTED.md
new file mode 100644
index 000000000000..5a7cd50fb301
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.12/GETTING-STARTED.md
@@ -0,0 +1,400 @@
+---
+title: 安装及使用
+id: version-2.0.0-beta.12-GETTING-STARTED
+original_id: GETTING-STARTED
+---
+
+## 安装
+
+Taro 项目基于 node,请确保已具备较新的 node 环境(>=8.0.0),推荐使用 node 版本管理工具 [nvm](https://github.com/creationix/nvm) 来管理 node,这样不仅可以很方便地切换 node 版本,而且全局安装时候也不用加 sudo 了。
+
+### CLI 工具安装
+
+首先,你需要使用 npm 或者 yarn 全局安装`@tarojs/cli`,或者直接使用[npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b):
+
+```bash
+# 使用 npm 安装 CLI
+$ npm install -g @tarojs/cli
+# OR 使用 yarn 安装 CLI
+$ yarn global add @tarojs/cli
+# OR 安装了 cnpm,使用 cnpm 安装 CLI
+$ cnpm install -g @tarojs/cli
+```
+### 注意事项
+
+值得一提的是,如果安装过程出现`sass`相关的安装错误,请在安装[`mirror-config-china`](https://www.npmjs.com/package/mirror-config-china)后重试。
+
+```bash
+$ npm install -g mirror-config-china
+```
+
+## 项目初始化
+
+使用命令创建模板项目
+
+```bash
+$ taro init myApp
+```
+
+npm 5.2+ 也可在不全局安装的情况下使用 npx 创建模板项目
+
+```bash
+$ npx @tarojs/cli init myApp
+```
+
+![taro init myApp command screenshot](http://ww1.sinaimg.cn/large/49320207gy1g0u2e0uf8gj20vg0uw10f.jpg)
+
+在创建完项目之后,Taro 会默认开始安装项目所需要的依赖,安装使用的工具按照 yarn>cnpm>npm 顺序进行检测,一般来说,依赖安装会比较顺利,但某些情况下可能会安装失败,这时候你可以在项目目录下自己使用安装命令进行安装
+
+```bash
+# 使用 yarn 安装依赖
+$ yarn
+# OR 使用 cnpm 安装依赖
+$ cnpm install
+# OR 使用 npm 安装依赖
+$ npm install
+```
+
+进入项目目录开始开发,目前已经支持 微信/百度/支付宝/字节跳动/QQ 小程序、H5、快应用以及 ReactNative 等端的代码转换,针对不同端的启动以及预览、打包方式并不一致
+
+## 运行
+Taro 需要运行不同的命令,将 Taro 代码编译成不同端的代码,然后在对应的开发工具中查看效果。
+
+![image](https://storage.360buyimg.com/taro-resource/platforms.jpg)
+
+
+### 保持 `@tarojs/cli` 的版本与各端依赖版本一致
+
+在使用 Taro 进行多端开发中,请确保 Taro CLI 的版本与你项目的依赖版本一致,否则可能会出现编译错误或者运行时错误。
+
+如果你所使用的 Taro CLI 版本为 1.3.9,而项目里使用的依赖版本为 1.3.20,则有可能会出现问题,查询方法请参见本章 "环境及依赖检测" 章节,这时请将你的 Taro CLI 版本更新至项目依赖版本号相同的版本,如果还是出现问题,请向我们提出 [Issue](https://github.com/NervJS/taro/issues/new?assignees=&labels=&template=bug_report.md&title=)。
+
+
+### 微信小程序
+
+选择微信小程序模式,需要自行下载并打开[微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html),然后选择项目根目录进行预览。
+
+微信小程序编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:weapp
+$ yarn build:weapp
+# npm script
+$ npm run dev:weapp
+$ npm run build:weapp
+# 仅限全局安装
+$ taro build --type weapp --watch
+$ taro build --type weapp
+# npx 用户也可以使用
+$ npx taro build --type weapp --watch
+$ npx taro build --type weapp
+```
+
+### 百度小程序
+
+选择百度小程序模式,需要自行下载并打开[百度开发者工具](https://smartprogram.baidu.com/docs/develop/devtools/show_sur/),然后在项目编译完后选择项目根目录下 `dist` 目录进行预览。
+
+百度小程序编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:swan
+$ yarn build:swan
+# npm script
+$ npm run dev:swan
+$ npm run build:swan
+# 仅限全局安装
+$ taro build --type swan --watch
+$ taro build --type swan
+# npx 用户也可以使用
+$ npx taro build --type swan --watch
+$ npx taro build --type swan
+```
+
+### 支付宝小程序
+
+选择支付宝小程序模式,需要自行下载并打开[支付宝小程序开发者工具](https://docs.alipay.com/mini/developer/getting-started/),然后在项目编译完后选择项目根目录下 `dist` 目录进行预览。
+
+支付宝小程序编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:alipay
+$ yarn build:alipay
+# npm script
+$ npm run dev:alipay
+$ npm run build:alipay
+# 仅限全局安装
+$ taro build --type alipay --watch
+$ taro build --type alipay
+# npx 用户也可以使用
+$ npx taro build --type alipay --watch
+$ npx taro build --type alipay
+```
+
+### 字节跳动小程序
+
+选择字节跳动小程序模式,需要自行下载并打开[字节跳动小程序开发者工具](https://microapp.bytedance.com/docs/devtool/versionUpdate.html),然后在项目编译完后选择项目根目录下 `dist` 目录进行预览。
+
+字节跳动小程序编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:tt
+$ yarn build:tt
+# npm script
+$ npm run dev:tt
+$ npm run build:tt
+# 仅限全局安装
+$ taro build --type tt --watch
+$ taro build --type tt
+# npx 用户也可以使用
+$ npx taro build --type tt --watch
+$ npx taro build --type tt
+```
+
+### QQ 小程序
+
+选择 QQ 小程序模式,需要自行下载并打开[QQ 小程序开发者工具](https://q.qq.com/wiki/#_4-%E7%BC%96%E7%A0%81%E5%BC%80%E5%8F%91%E5%B0%8F%E7%A8%8B%E5%BA%8F),然后在项目编译完后选择项目根目录下 `dist` 目录进行预览。
+
+QQ 小程序编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:qq
+$ yarn build:qq
+# npm script
+$ npm run dev:qq
+$ npm run build:qq
+# 仅限全局安装
+$ taro build --type qq --watch
+$ taro build --type qq
+# npx 用户也可以使用
+$ npx taro build --type qq --watch
+$ npx taro build --type qq
+```
+
+### 快应用
+
+选择快应用模式,需要自行下载并打开[快应用开发者工具](https://www.quickapp.cn/docCenter/IDEPublicity),然后在项目编译完后,在开发者工具中选择「打开文件夹」选择项目根目录下 `dist` 目录,点击左边的预览图标(那个眼睛图标)进行预览。
+
+快应用编译预览及打包(去掉 --watch 将不会监听文件修改,并会对代码进行压缩打包)
+
+```bash
+# yarn
+$ yarn dev:quickapp
+$ yarn build:quickapp
+# npm script
+$ npm run dev:quickapp
+$ npm run build:quickapp
+# 仅限全局安装
+$ taro build --type quickapp --watch
+$ taro build --type quickapp
+# npx 用户也可以使用
+$ npx taro build --type quickapp --watch
+$ npx taro build --type quickapp
+```
+
+[快应用开发者工具如何使用?点击了解](https://doc.quickapp.cn/tutorial/ide/overview.html)
+
+[快应用端开发流程](https://taro-docs.jd.com/taro/docs/quick-app.html)
+
+### H5
+
+H5 模式,无需特定的开发者工具,在执行完下述命令之后即可通过浏览器进行预览
+
+H5 预览项目
+
+```bash
+# yarn
+$ yarn dev:h5
+# npm script
+$ npm run dev:h5
+# 仅限全局安装
+$ taro build --type h5 --watch
+# npx 用户也可以使用
+$ npx taro build --type h5 --watch
+```
+
+H5 打包项目
+
+```bash
+# yarn
+$ yarn build:h5
+# npm script
+$ npm run build:h5
+# 仅限全局安装
+$ taro build --type h5
+# npx 用户也可以使用
+$ npx taro build --type h5
+```
+
+### React Native
+
+React Native 端运行需执行如下命令,React Native 端相关的运行说明请参见 [React Native 教程](./react-native.html)
+
+```bash
+# yarn
+$ yarn dev:rn
+# npm script
+$ npm run dev:rn
+# 仅限全局安装
+$ taro build --type rn --watch
+# npx 用户也可以使用
+$ npx taro build --type rn --watch
+```
+
+> Note:React Native 端和其他端样式兼容性差异较大,如果需要兼容 React Native 端,建议 React Native 端和其他端同步开发。
+
+> Note:如果要支持 React Native 端,必须采用 Flex 布局,并且样式选择器仅支持类选择器,且不
+> 支持 **组合器** [Combinators and groups of selectors](https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Combinators_and_multiple_selectors)。
+
+以下选择器的写法都是不支持的,在样式转换时会自动忽略。
+
+```css
+.button.button_theme_islands {
+ font-style: bold;
+}
+
+img + p {
+ font-style: bold;
+}
+
+p ~ span {
+ color: red;
+}
+
+div > span {
+ background-color: DodgerBlue;
+}
+
+div span {
+ background-color: DodgerBlue;
+}
+```
+
+样式上 H5 最为灵活,小程序次之,RN 最弱,统一多端样式即是对齐短板,也就是要以 RN 的约束来管理样式,同时兼顾小程序的限制,核心可以用三点来概括:
+
+- 使用 Flex 布局
+- 基于 BEM 写样式
+- 采用 style 属性覆盖组件样式
+
+RN 中 View 标签默认主轴方向是 column,如果不将其他端改成与 RN 一致,就需要在所有用到 display: flex 的地方都显式声明主轴方向。
+
+## 常用 CLI 命令
+
+### 查看 Taro 所有命令及帮助
+
+```bash
+$ taro --help
+```
+
+### 更新
+
+Taro 提供了更新命令来更新 CLI 工具自身和项目中 Taro 相关的依赖
+
+更新 Taro CLI 工具
+
+```bash
+# taro
+$ taro update self [version]
+# npm
+npm i -g @tarojs/cli@[version]
+# yarn
+yarn global add @tarojs/cli@[version]
+```
+
+更新项目中 Taro 相关的依赖
+
+```bash
+$ taro update project [version]
+```
+
+> `version` 为选填,如:`1.x.x/latest` 等,将会直接更新到指定版本。
+> 若不填写 `version`,将会更新到当前项目 Taro 依赖的 `主版本(major)`的最新稳定版,如当前主版本没有稳定版本,则会更新到 `latest` 指定的版本。
+
+如命令更新失败,需要在 package.json 文件手动更新依赖版本,然后重新安装依赖。
+
+### 环境及依赖检测
+
+Taro 提供了命令来一键检测 Taro 环境及依赖的版本等信息,方便大家查看项目的环境及依赖,排查环境问题。在提 issue 的时候,请附上 `taro info` 打印的信息,帮助开发人员快速定位问题。
+
+```bash
+$ taro info
+👽 Taro v1.2.0-beta.15
+
+
+ Taro CLI 1.2.0-beta.15 environment info:
+ System:
+ OS: macOS High Sierra 10.13.5
+ Shell: 5.3 - /bin/zsh
+ Binaries:
+ Node: 8.11.2 - /usr/local/bin/node
+ Yarn: 1.8.0 - /usr/local/bin/yarn
+ npm: 5.6.0 - /usr/local/bin/npm
+ npmPackages:
+ @tarojs/components: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/plugin-babel: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/plugin-csso: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/plugin-sass: ^1.2.0-beta.4 => 1.2.0-beta.4
+ @tarojs/plugin-uglifyjs: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/rn-runner: ^1.2.0-beta.4 => 1.2.0-beta.4
+ @tarojs/router: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/taro: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/taro-alipay: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/taro-h5: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/taro-swan: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/taro-weapp: ^1.2.0-beta.3 => 1.2.0-beta.3
+ @tarojs/webpack-runner: ^1.2.0-beta.3 => 1.2.0-beta.3
+ eslint-config-taro: ^1.2.0-beta.3 => 1.2.0-beta.3
+ eslint-plugin-taro: ^1.2.0-beta.3 => 1.2.0-beta.3
+```
+
+### Taro Doctor
+
+Taro Doctor 就像一个医生一样,可以诊断项目的依赖、设置、结构,以及代码的规范是否存在问题,并尝试给出解决方案。
+
+但和真正的医生不一样,Taro Doctor 不需要排队挂号,也不用花钱。你只需要在终端运行命令:`taro doctor`,就像图里一样:
+
+![Taro Doctor 诊断结果图](https://img10.360buyimg.com/ling/jfs/t1/46613/36/5573/202581/5d357d14E6f0df7e1/fc026be7dc69dcf2.png)
+
+### 快速创建新页面
+
+Taro create --name [页面名称] 能够在当前项目的pages目录下快速生成新的页面文件,并填充基础代码,是一个提高开发效率的利器。
+
+### CLI 配置
+
+> 自 `1.3.9` 开始支持
+
+`1.3.9` 开始 Taro 会在用户根目录下创建 .taro 文件夹,其中 .taro/index.json 用于存放 CLI 相关配置。
+
+开发者可以使用 `taro config` 命令对配置项进行一系列操作:
+
+```bash
+# 查看用法
+$ taro config --help
+# 设置配置项的值为
+$ taro config set
+# 读取配置项
+$ taro config get
+# 删除配置项
+$ taro config delete
+# 打印所有配置项
+$ taro config list [--json]
+```
+
+## 其他常见问题
+
+### 回到某个版本
+
+需要安装某个固定版本,或者回到某个版本,例如我们要安装 `1.3.9` , 则如下:
+
+```bash
+# 使用 npm 安装 CLI
+$ npm install -g @tarojs/cli@1.3.9
+# OR 使用 yarn 安装 CLI
+$ yarn global add @tarojs/cli@1.3.9
+# OR 安装了 cnpm,使用 cnpm 安装 CLI
+$ cnpm install -g @tarojs/cli@1.3.9
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.12/react-native.md b/website/versioned_docs/version-2.0.0-beta.12/react-native.md
new file mode 100644
index 000000000000..9d985d4b4beb
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.12/react-native.md
@@ -0,0 +1,779 @@
+---
+title: React Native 端开发流程
+id: version-2.0.0-beta.12-react-native
+original_id: react-native
+---
+
+> 本篇主要讲解 Taro React Native 端 环境安装-开发-调试-打包-发布 原理及流程,React Native 开发前注意事项请看 [开发前注意](./before-dev-remind.html)
+>
+> 适配 RN 端可参考项目:[首个 Taro 多端统一实例 - 网易严选(小程序 + H5 + React Native) - By 趣店 FED](https://github.com/js-newbee/taro-yanxuan)
+
+## 简介
+
+Taro 移动端的开发基于 Facebook 的开源项目 [React Native](https://github.com/facebook/react-native),目前是项目依赖中固定 React Native 版本为 `0.55.4`。
+
+整个 RN 端的开发流程如下:
+
+![image](http://assets.processon.com/chart_image/5c988481e4b01e76978bd6ab.png)
+
+首先在 Taro 项目里执行:`taro build --type rn --watch`,这个命令会将 Taro 代码编译为 React Native 代码(默认输出在 rn_temp 目录下),并启动 Metro Server(可以看成是 webpack run devserver --port 8081)打包 rn_temp 下的 js。
+
+然后进入 `taro-native-shell` 目录(建议和 Taro 项目平级),通过 `react-native run-android|ios`启动,或者通过对应的 Android Studio / Xcode 启动应用,启动后应用可以看成是一个浏览器,会从 8081 端口加载 js 并渲染。
+
+## 搭建 iOS 开发环境
+
+必须安装的依赖有:Node、Watchman 和 React Native 命令行工具以及 Xcode。
+
+虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然必须安装 Xcode 来获得编译 iOS 应用所需的工具和环境。
+
+### Node, Watchman
+我们推荐使用 [Homebrew](http://brew.sh/) 来安装 Node 和 Watchman。在命令行中执行下列命令安装:
+
+```sh
+brew install node
+brew install watchman
+```
+
+如果你已经安装了 Node,请检查其版本是否在 v8.3 以上。安装完 Node 后建议设置 npm 镜像以加速后面的过程(或使用科学上网工具)。
+
+> 注意:不要使用 cnpm!cnpm 安装的模块路径比较奇怪,packager 不能正常识别!
+
+设置 npm 镜像:
+```
+npm config set registry https://registry.npm.taobao.org --global
+npm config set disturl https://npm.taobao.org/dist --global
+```
+
+或者使用 [nrm](https://github.com/Pana/nrm):
+
+```sh
+$ nrm ls
+
+* npm ----- https://registry.npmjs.org/
+ cnpm ---- http://r.cnpmjs.org/
+ taobao -- https://registry.npm.taobao.org/
+ nj ------ https://registry.nodejitsu.com/
+ skimdb -- https://skimdb.npmjs.com/registry
+
+```
+
+```sh
+$ nrm use cnpm //switch registry to cnpm
+
+ Registry has been set to: http://r.cnpmjs.org/
+```
+
+[Watchman](https://facebook.github.io/watchman) 则是由 Facebook 提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager 可以快速捕捉文件的变化从而实现实时刷新)。
+
+### Yarn、React Native 的命令行工具(react-native-cli)
+Yarn 是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。
+
+```sh
+npm install -g yarn react-native-cli
+```
+
+安装完 yarn 后同理也要设置镜像源:
+
+```sh
+yarn config set registry https://registry.npm.taobao.org --global
+yarn config set disturl https://npm.taobao.org/dist --global
+```
+
+安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用 yarn 代替 npm install 命令,用 yarn add 某第三方库名代替 npm install 某第三方库名。
+
+### Xcode
+React Native 目前需要 [Xcode](https://developer.apple.com/xcode/downloads/) 9.4 或更高版本。你可以通过 App Store 或是到 [Apple 开发者官网](https://developer.apple.com/xcode/downloads/) 上下载。这一步骤会同时安装 Xcode IDE、Xcode 的命令行工具和 iOS 模拟器。
+
+Xcode 的命令行工具
+
+启动 Xcode,并在 `Xcode | Preferences | Locations` 菜单中检查一下是否装有某个版本的 `Command Line Tools`。Xcode 的命令行工具中包含一些必须的工具,比如 `git` 等。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedXcodeCommandLineTools.png)
+
+
+## 搭建 Android 开发环境
+
+### 安装依赖
+必须安装的依赖有:Node、Watchman 和 React Native 命令行工具以及 JDK 和 Android Studio。
+
+虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然必须安装 Android Studio 来获得编译 Android 应用所需的工具和环境。
+
+### Java Development Kit
+React Native 需要 Java Development Kit [JDK] 1.8(暂不支持 1.9 及更高版本)。你可以在命令行中输入
+
+> javac -version来查看你当前安装的 JDK 版本。如果版本不合要求,则可以到 官网上下载。
+
+### Android 开发环境
+如果你之前没有接触过 Android 的开发环境,那么请做好心理准备,这一过程相当繁琐。请 `万分仔细`地阅读下面的说明,严格对照文档进行配置操作。
+
+> 注:请注意!!!国内用户必须必须必须有稳定的翻墙工具,否则在下载、安装、配置过程中会不断遭遇链接超时或断开,无法进行开发工作。某些翻墙工具可能只提供浏览器的代理功能,或只针对特定网站代理等等,请自行研究配置或更换其他软件。总之如果报错中出现有网址,那么 99% 就是无法正常翻墙。
+
+> 如果是 socks5 代理 ,如下这样设置其实并没有什么卵用
+
+```
+#systemProp.socks.proxyHost=127.0.0.1
+#systemProp.socks.proxyPort=8016
+
+#systemProp.https.proxyHost=127.0.0.1
+#systemProp.https.proxyPort=8016
+
+#systemProp.https.proxyHost=socks5://127.0.0.1
+#systemProp.https.proxyPort=8016
+```
+
+> 正确设置方法应该是这样:
+org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8016
+
+> 修改 $HOME/.gradle/gradle.properties 文件,加入上面那句,这样就可以全局开启 gradle 代理
+
+
+#### 1. 安装 Android Studio
+
+[首先下载和安装 Android Studio](https://developer.android.com/studio/index.html),国内用户可能无法打开官方链接,请自行使用搜索引擎搜索可用的下载链接。安装界面中选择"Custom"选项,确保选中了以下几项:
+
+- Android SDK
+- Android SDK Platform
+- Performance (Intel ® HAXM) ([AMD 处理器看这里](https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html))
+- Android Virtual Device
+
+然后点击"Next"来安装选中的组件。
+
+> 如果选择框是灰的,你也可以先跳过,稍后再来安装这些组件。
+
+安装完成后,看到欢迎界面时,就可以进行下面的操作了。
+
+#### 2. 安装 Android SDK
+Android Studio 默认会安装最新版本的 Android SDK。目前编译 React Native 应用需要的是 `Android 6.0 (Marshmallow)` 版本的 SDK(注意 SDK 版本不等于终端系统版本,RN 目前支持 android 4.1 以上设备)。你可以在 Android Studio 的 SDK Manager 中选择安装各版本的 SDK。
+
+你可以在 Android Studio 的欢迎界面中找到 SDK Manager。点击 "Configure",然后就能看到 "SDK Manager"。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidStudioWelcomeMacOS.png)
+
+> SDK Manager 还可以在 Android Studio 的 "Preferences" 菜单中找到。具体路径是 `Appearance & Behavior → System Settings → Android SDK`。
+
+在 SDK Manager 中选择 "SDK Platforms"选项卡,然后在右下角勾选 "Show Package Details"。展开 `Android 6.0 (Marshmallow)` 选项,确保勾选了下面这些组件(重申你必须使用稳定的翻墙工具,否则可能都看不到这个界面):
+
+- `Android SDK Platform 28`
+- `Intel x86 Atom_64 System Image`(官方模拟器镜像文件,使用非官方模拟器不需要安装此组件)
+
+然后点击"SDK Tools"选项卡,同样勾中右下角的"Show Package Details"。展开"Android SDK Build-Tools"选项,确保选中了 React Native 所必须的 `23.0.1` 版本。你可以同时安装多个其他版本,然后还要勾选最底部的 `Android Support Repository`。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidSDKManagerSDKToolsMacOS.png)
+
+最后点击"Apply"来下载和安装这些组件。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidSDKManagerInstallsMacOS.png)
+
+#### 3. 配置 ANDROID_HOME 环境变量
+React Native 需要通过环境变量来了解你的 Android SDK 装在什么路径,从而正常进行编译。
+
+具体的做法是把下面的命令加入到 `~/.bash_profile` 文件中:
+
+> ~表示用户目录,即/Users/你的用户名/,而小数点开头的文件在 Finder 中是隐藏的,并且这个文件有可能并不存在。可在终端下使用vi ~/.bash_profile命令创建或编辑。如不熟悉 vi 操作,请点击 [这里](http://www.eepw.com.cn/article/48018.htm) 学习。
+
+```sh
+# 如果你不是通过Android Studio安装的sdk,则其路径可能不同,请自行确定清楚。
+export ANDROID_HOME=$HOME/Library/Android/sdk
+export PATH=$PATH:$ANDROID_HOME/tools
+export PATH=$PATH:$ANDROID_HOME/platform-tools
+```
+
+> 如果你的命令行不是 bash,而是例如 zsh 等其他,请使用对应的配置文件。
+
+使用 `source $HOME/.bash_profile` 命令来使环境变量设置立即生效(否则重启后才生效)。可以使用 `echo $ANDROID_HOME` 检查此变量是否已正确设置。
+
+> 请确保你正常指定了 Android SDK 路径。你可以在 Android Studio 的 "Preferences" 菜单中查看 SDK 的真实路径,具体是`Appearance & Behavior → System Settings → Android SDK`。
+
+
+### 准备 Android 设备
+你需要准备一台 Android 设备来运行 React Native Android 应用。这里所指的设备既可以是真机,也可以是模拟器。Android 官方提供了名为 Android Virtual Device(简称 AVD)的模拟器。此外还有很多第三方提供的模拟器如 [Genymotion](https://www.genymotion.com/download)、BlueStack 等。一般来说官方模拟器免费、功能完整,但性能较差。第三方模拟器性能较好,但可能需要付费,或带有广告。
+
+#### 使用 Android 真机
+你也可以使用 Android 真机来代替模拟器进行开发,只需用 usb 数据线连接到电脑,然后遵照 [在设备上运行](https://reactnative.cn/docs/0.55/running-on-device) 这篇文档的说明操作即可。
+
+#### 使用 Android 模拟器
+你可以在 Android Studi 打开 "AVD Manager" 来查看可用的虚拟设备,它的图标看起来像下面这样:
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidStudioAVD.png)
+
+如果你刚刚才安装 Android Studio,那么可能需要先 [创建一个虚拟设备](https://developer.android.com/studio/run/managing-avds.html)。点击"Create Virtual Device...",然后选择所需的设备类型并点击"Next"。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedCreateAVDMacOS.png)
+
+选择 "x86 Images" 选项卡,这里可以看到你之前已安装过的镜像文件。必须先安装镜像文件才能创建对应的虚拟设备。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedCreateAVDx86MacOS.png)
+
+> 如果你还没有安装 HAXM(Intel 虚拟硬件加速驱动),则先按 [这篇文档](https://software.intel.com/en-us/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-mac-os-x) 说明来进行安装。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAVDManagerMacOS.png)
+
+然后点击 "Next" 和 "Finish" 来完成虚拟设备的创建。
+
+## 开发
+
+### 编译
+
+RN 编译预览模式:
+
+```shell
+# yarn
+$ yarn dev:rn
+# npm script
+$ npm run dev:rn
+# 仅限全局安装
+$ taro build --type rn --watch
+# npx 用户也可以使用
+$ npx taro build --type rn --watch
+```
+
+Taro 将会开始编译文件:
+
+```sh
+➜ taro-demo git:(master) ✗ taro build --type rn --watch
+👽 Taro v1.2.20
+
+开始编译项目 taro-demo
+编译 JS /Users/chengshuai/Taro/taro-demo/src/app.js
+编译 SCSS /Users/chengshuai/Taro/taro-demo/src/app.scss
+拷贝 HTML /Users/chengshuai/Taro/taro-demo/src/index.html
+生成 生成文件 /Users/chengshuai/Taro/taro-demo/rn_temp/app_styles.js
+编译 JS /Users/chengshuai/Taro/taro-demo/src/pages/index/index.js
+编译 SCSS /Users/chengshuai/Taro/taro-demo/src/pages/index/index.scss
+生成 index.js /Users/chengshuai/Taro/taro-demo/rn_temp/index.js
+生成 app.json /Users/chengshuai/Taro/taro-demo/rn_temp/app.json
+生成 package.json /Users/chengshuai/Taro/taro-demo/rn_temp/package.json
+编译 编译完成,花费2504 ms
+生成 生成文件 /Users/chengshuai/Taro/taro-demo/rn_temp/pages/index/index_styles.js
+
+初始化完毕,监听文件修改中...
+
+```
+
+编译后的代码及应用文件在根目录的 `rn_temp` 目录下,常见的工程目录结构如下:
+
+```shell
+rn_temp
+├── app.js
+├── app.json
+├── app_styles.js
+├── index.html
+├── index.js
+├── package-lock.json
+├── package.json
+├── pages
+│ └── index
+│ ├── component.js
+│ ├── index.js
+│ └── index_styles.js
+├── bundle
+│ ├── assets
+│ ├── index.bundle
+│ └── index.bundle.meta
+└── yarn.lock
+```
+其中关键文件及目录如下:
+
+- app.json React Native 应用的配置,从 `config.rn.appJson` 中获取
+- bundle:实时编译的 jsbundle 临时文件
+
+如果编译没有报错,会自动打开一个终端,并在 8081 端口启动 [Metro](https://github.com/facebook/metro) Bundler 负责打包 jsbundle:
+
+![image](https://user-images.githubusercontent.com/9441951/59322399-85780180-8d08-11e9-9ea7-b3e4b23c077c.png)
+
+> 注意:少数电脑上,可能不会 `自动打开一个终端`,这时你可以在项目根目录下运行:`react-native start` 手动启动。
+
+这时,在浏览器输入 http://127.0.0.1:8081,可以看到如下页面:
+![image](https://user-images.githubusercontent.com/9441951/55865494-13245d00-5bb1-11e9-9a97-8a785a83b584.png)
+
+输入 http://127.0.0.1:8081/rn_temp/index.bundle?platform=ios&dev=true 会触发对应终端平台的 js bundle 构建。
+
+![image](https://user-images.githubusercontent.com/9441951/55865039-37336e80-5bb0-11e9-8aca-c121be4542f6.png)
+
+构建完成后,浏览器会显示构建后的 js 代码。
+
+> Note:进入下一步之前请确保 Metro Bundler Server 正常启动,即浏览器能正常访问访问 jsbundle。
+
+
+### 启动应用
+如果上一步的编译和 Metro Bundler Server 启动没问题,接下来就可以启动应用了。
+
+开发者可以自行[整合 React Native (0.55.4) 到原生应用](https://reactnative.cn/docs/0.55/integration-with-existing-apps/),同时为了方便大家开发和整合,Taro 将 React Native 工程中原生的部分剥离出来,单独放在一个工程里面 [NervJS/taro-native-shell](https://github.com/NervJS/taro-native-shell),你可以把它看成是 React Native iOS/Android 空应用的壳子。
+
+首先将应用代码 clone 下来:
+
+```
+git clone git@github.com:NervJS/taro-native-shell.git
+```
+然后 `cd taro-native-shell`,使用 yarn 或者 npm install 安装依赖。
+
+> 注意 `taro-native-shell` 工程和 Taro 工程最好独立存放,不要嵌套,否则会报:`multi react-native ` 错误
+
+工程目录如下:
+
+```sh
+➜ taro-native-shell git:(master) ✗ tree -L 1
+.
+├── LICENSE
+├── README.md
+├── android // Android 工程目录
+├── ios // iOS 工程目录
+├── node_modules
+├── package.json
+└── yarn.lock
+```
+
+
+### iOS
+#### 使用 React Native 命令启动
+
+```sh
+$ react-native run-ios
+```
+
+iOS 模拟器会自行启动,并访问 8081 端口获取 js bundle,这时 Metro Bundler 终端会打印以下内容:
+
+```sh
+ BUNDLE [ios, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.
+```
+
+#### 使用 Xcode 启动
+iOS 的启动比较简单,使用 Xcode 打开 ios 目录,然后点击 Run 按钮就行。
+
+![image](https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Art/XC_O_SchemeMenuWithCallouts_2x.png)
+
+这里需要注意的是 jsBundle 的 moduleName,默认的 moduleName 为 "taroDemo",需要和 `rn_temp/app.json` 里面的 name 字段保持一致。该配置在 `AppDelegate.m` 文件中。
+
+```objc
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ NSURL *jsCodeLocation;
+
+ jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"rn_temp/index" fallbackResource:nil];
+
+ RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
+ moduleName:@"taroDemo"
+ initialProperties:nil
+ launchOptions:launchOptions];
+ rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
+
+ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
+ UIViewController *rootViewController = [UIViewController new];
+ rootViewController.view = rootView;
+ self.window.rootViewController = rootViewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+@end
+```
+
+app.json 字段的配置默认取自于 package.json 的 name 字段,除非你在 `rn -> appJson` 里面有配置。
+
+更多资料,可以查看 Xcode 文档:[Building Your App](https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/BuildingYourApp.html)
+
+### Android
+在 taro-native-shell/android 目录下,你就可以看到 React Native 的工程代码。
+
+#### 使用 React Native 命令启动
+
+```sh
+$ react-native run-android
+```
+
+Android 模拟器会自行启动,并访问 8081 端口获取 js bundle,这时 Metro Bundler 终端会打印一下内容:
+
+```sh
+ BUNDLE [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.
+```
+
+#### 在真实设备上运行
+
+按照以下步骤设置您的设备:
+
+1. 使用一根 USB 电缆将您的设备连接到您的开发机器。如果您是在 Windows 上开发,可能需要为您的设备 [安装相应的 USB 驱动程序](https://developer.android.com/studio/run/oem-usb.html?hl=zh-cn)。
+2. 按照以下步骤操作,在 Developer options 中启用 USB debugging。
+首先,您必须启用开发者选项:
+
+ 1. 打开 Settings 应用。
+ 2. (仅在 Android 8.0 或更高版本上)选择 System。
+ 3. 滚动到底部,然后选择 About phone。
+ 4. 滚动到底部,点按 Build number 7 次。
+ 5. 返回上一屏幕,在底部附近可找到 Developer options。
+打开 Developer options,然后向下滚动以找到并启用 USB debugging。
+
+按照以下步骤操作,在您的设备上运行应用:
+
+1. 在 Android Studio 中,点击 Project 窗口中的 app 模块,然后选择 Run > Run(或点击工具栏中的 Run )。
+
+![image](https://sdtimes.com/wp-content/uploads/2016/04/0408.sdt-androidstudio.png)
+
+2. 在 Select Deployment Target 窗口中,选择您的设备,然后点击 OK。
+
+![image](https://developer.android.com/training/basics/firstapp/images/run-device_2x.png?hl=zh-cn)
+
+Android Studio 会在您连接的设备上安装并启动应用。
+
+#### 在模拟器上运行
+按照以下步骤操作,在模拟器上运行应用:
+
+1. 在 Android Studio 中,点击 Project 窗口中的 app 模块,然后选择 Run > Run(或点击工具栏中的 Run )。
+2. 在 Select Deployment Target 窗口中,点击 Create New Virtual Device。
+
+![image](https://developer.android.com/training/basics/firstapp/images/run-avd_2x.png?hl=zh-cn)
+
+3. 在 Select Hardware 屏幕中,选择电话设备(如 Pixel),然后点击 Next。
+4. 在 System Image 屏幕中,选择具有最高 API 级别的版本。如果您未安装该版本,将显示一个 Download 链接,因此,请点击该链接并完成下载。
+5. 点击 Next。
+6. 在 Android Virtual Device (AVD) 屏幕上,保留所有设置不变,然后点击 Finish。
+7. 返回到 Select Deployment Target 对话框中,选择您刚刚创建的设备,然后点击 OK。
+
+Android Studio 会在模拟器上安装并启动应用。
+
+#### 在真机上运行
+
+参考 [在设备上运行](https://reactnative.cn/docs/running-on-device/)
+
+#### Module Name
+
+同样,Android 这边默认的 jsBundle moduleName 也是 “taroDemo”,位于 `MainActivity.java` 的文件里面:
+
+```java
+package com.tarodemo;
+
+import com.facebook.react.ReactActivity;
+
+public class MainActivity extends ReactActivity {
+
+ /**
+ * Returns the name of the main component registered from JavaScript.
+ * This is used to schedule rendering of the component.
+ */
+ @Override
+ protected String getMainComponentName() {
+ return "taroDemo";
+ }
+}
+
+```
+
+你可以根据实际情况自行修改。
+
+## 调试
+
+更多资料可以查看 [React Native 调试](https://reactnative.cn/docs/debugging.html)。
+
+### 开发者菜单
+
+React Native 在 iOS 模拟器上支持一些快捷键操作,具体会在下文中描述。要使用快捷键请务必确保模拟器的 Hardware 菜单中,Keyboard 选项下的"Connect Hardware Keyboard"处于开启状态,否则按键是没有响应的。
+
+你可以通过摇晃设备或是选择 iOS 模拟器的 "Hardware" 菜单中的 "Shake Gesture" 选项来打开开发菜单。另外,如果是在 iOS 模拟器中运行,还可以按下 `Command⌘ + D` 快捷键,Android 模拟器对应的则是 `Command⌘ + M`(windows 上可能是 F1 或者 F2),或是直接在命令行中运行 `adb shell input keyevent 82` 来发送菜单键命令。
+
+![image](https://reactnative.cn/docs/assets/DeveloperMenu.png)
+
+> 在发布(production)版本中开发者菜单将无法使用。
+
+### 刷新 JavaScript
+传统的原生应用开发中,每一次修改都需要重新编译,但在 RN 中你只需要刷新一下 JavaScript 代码,就能立刻看到变化。具体的操作就是在开发菜单中点击 "Reload" 选项。也可以在 iOS 模拟器中按下 `Command⌘ + R `,Android 模拟器上对应的则是 `按两下R`。
+
+#### 自动刷新
+选择开发菜单中的 "Enable Live Reload" 可以开启自动刷新,这样可以节省你开发中的时间。
+
+更神奇的是,你还可以保持应用的当前运行状态,修改后的 JavaScript 文件会自动注入进来(就好比行驶中的汽车不用停下就能更换新的轮胎)。要实现这一特性只需开启开发菜单中的 [Hot Reloading](https://facebook.github.io/react-native/blog/2016/03/24/introducing-hot-reloading.html) 选项。
+
+> 某些情况下 hot reload 并不能顺利实施。如果碰到任何界面刷新上的问题,请尝试手动完全刷新。
+
+但有些时候你必须要重新编译应用才能使修改生效:
+
+- 增加了新的资源(比如给 iOS 的Images.xcassets或是 Andorid 的res/drawable文件夹添加了图片)
+- 更改了任何的原生代码(objective-c/swift/java)
+
+### 应用内的错误与警告提示(红屏和黄屏)
+红屏或黄屏提示都只会在开发版本中显示,正式的离线包中是不会显示的。
+
+### 红屏错误
+应用内的报错会以全屏红色显示在应用中(调试模式下),我们称为红屏(red box)报错。你可以使用console.error()来手动触发红屏错误。
+
+### 黄屏警告
+应用内的警告会以全屏黄色显示在应用中(调试模式下),我们称为黄屏(yellow box)报错。点击警告可以查看详情或是忽略掉。和红屏报警类似,你可以使用 `console.warn()` 来手动触发黄屏警告。在默认情况下,开发模式中启用了黄屏警告。可以通过以下代码关闭:
+
+```js
+console.disableYellowBox = true;
+console.warn('YellowBox is disabled.');
+```
+
+你也可以通过代码屏蔽指定的警告,像下面这样调用 ignoreWarnings 方法,参数为一个数组:
+
+```
+import {YellowBox} from 'react-native';
+YellowBox.ignoreWarnings(['Warning: ...']);
+```
+
+在 CI/Xcode 中,黄屏警告还可以通过设置 `IS_TESTING` 环境变量来控制启用与否。
+
+> 红屏错误和黄屏警告在发布版(release/production)中都是自动禁用的。
+
+### Chrome 开发者工具
+在开发者菜单中选择 "Debug JS Remotely" 选项,即可以开始在 Chrome 中调试 JavaScript 代码。点击这个选项的同时会自动打开调试页面 http://localhost:8081/debugger-ui.(如果地址栏打开的是 ip 地址,则请自行改为 localhost)
+
+在 Chrome 的菜单中选择 `Tools → Developer Tools` 可以打开开发者工具,也可以通过键盘快捷键来打开(Mac 上是 `Command⌘ + Option⌥ + I`,Windows 上是 `Ctrl + Shift + I或是 F12`)。打开有 [异常时暂停(Pause On Caught Exceptions)](http://stackoverflow.com/questions/2233339/javascript-is-there-a-way-to-get-chrome-to-break-on-all-errors/17324511#17324511) 选项,能够获得更好的开发体验。
+
+> 注意:Chrome 中并不能直接看到 App 的用户界面,而只能提供 console 的输出,以及在 sources 项中断点调试 js 脚本。一些老的教程和文章会提到 React 的 Chrome 插件,这一插件目前并不支持 React Native,而且调试本身并不需要这个插件。不过你可以安装独立(非插件)版本的 React Developer Tools 来辅助查看界面布局,下文会讲述具体安装方法。
+
+> 注意:使用 Chrome 调试目前无法观测到 React Native 中的网络请求,你可以使用功能更强大的第三方的 [react-native-debugger](https://github.com/jhen0409/react-native-debugger)来进行观测。
+
+### 使用自定义的 JavaScript 调试器来调试
+如果想用其他的 JavaScript 调试器来代替 Chrome,可以设置一个名为 `REACT_DEBUGGER` 的环境变量,其值为启动自定义调试器的命令。调试的流程依然是从开发者菜单中的 "Debug JS Remotely" 选项开始。
+
+被指定的调试器需要知道项目所在的目录(可以一次传递多个目录参数,以空格隔开)。例如,如果你设定了 `REACT_DEBUGGER="node /某个路径/launchDebugger.js --port 2345 --type ReactNative"`,那么启动调试器的命令就应该是 `node /某个路径/launchDebugger.js --port 2345 --type ReactNative /某个路径/你的RN项目目录`。
+
+> 以这种方式执行的调试器最好是一个短进程(short-lived processes),同时最好也不要有超过 200k 的文字输出。
+
+### 使用 Chrome 开发者工具来在设备上调试
+> If you're using Create React Native App, this is configured for you already.
+
+对于 iOS 真机来说,需要打开 RCTWebSocketExecutor.m 文件,然后将其中的 "localhost" 改为你的电脑的 IP 地址,最后启用开发者菜单中的 "Debug JS Remotely" 选项。
+
+对于 Android 5.0+设备(包括模拟器)来说,将设备通过 USB 连接到电脑上后,可以使用adb命令行工具来设定从设备到电脑的端口转发:
+
+```sh
+adb reverse tcp:8081 tcp:8081
+```
+
+如果设备 Android 版本在 5.0 以下,则可以在开发者菜单中选择"Dev Settings - Debug server host for device",然后在其中填入电脑的”IP 地址:端口“。
+
+如果在 Chrome 调试时遇到一些问题,那有可能是某些 Chrome 的插件引起的。试着禁用所有的插件,然后逐个启用,以确定是否某个插件影响到了调试。
+
+### 使用 React Developer Tools 调试
+You can use [the standalone version of React Developer Tools](https://github.com/facebook/react-devtools/tree/master/packages/react-devtools) to debug the React component hierarchy. To use it, install the react-devtools package globally:
+
+```sh
+npm install -g react-devtools
+```
+
+> 译注:react-devtools 依赖于 electron,而 electron 需要到国外服务器下载二进制包,所以国内用户这一步很可能会卡住。此时请在环境变量中添加 electron 专用的国内镜像源:ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/",然后再尝试安装 react-devtools。
+
+安装完成后在命令行中执行 `react-devtools` 即可启动此工具:
+
+```sh
+react-devtools
+```
+
+![image](https://reactnative.cn/docs/assets/ReactDevTools.png)
+
+It should connect to your simulator within a few seconds.
+
+> Note: if you prefer to avoid global installations, you can add react-devtools as a project dependency. Add the react-devtools package to your project using npm install --save-dev react-devtools, then add "react-devtools": "react-devtools" to the scripts section in your package.json, and then run npm run react-devtools from your project folder to open the DevTools.
+
+#### Integration with React Native Inspector
+Open the in-app developer menu and choose "Show Inspector". It will bring up an overlay that lets you tap on any UI element and see information about it:
+
+![image](https://reactnative.cn/docs/assets/Inspector.gif)
+
+However, when `react-devtools` is running, Inspector will enter a special collapsed mode, and instead use the DevTools as primary UI. In this mode, clicking on something in the simulator will bring up the relevant components in the DevTools:
+
+![image](https://reactnative.cn/docs/assets/ReactDevToolsInspector.gif)
+
+You can choose "Hide Inspector" in the same menu to exit this mode.
+
+#### Inspecting Component Instances
+
+When debugging JavaScript in Chrome, you can inspect the props and state of the React components in the browser console.
+
+First, follow the instructions for debugging in Chrome to open the Chrome console.
+
+Make sure that the dropdown in the top left corner of the Chrome console says `debuggerWorker.js`. This step is essential.
+
+Then select a React component in React DevTools. There is a search box at the top that helps you find one by name. As soon as you select it, it will be available as `$r` in the Chrome console, letting you inspect its props, state, and instance properties.
+
+![image](https://reactnative.cn/docs/assets/ReactDevToolsDollarR.gif)
+
+### 使用 React Native Debugger 调试
+
+[React Native Debugger ](https://github.com/jhen0409/react-native-debugger),一个基于 React Native 官方调试方式、包含 React Inspector / Redux DevTools 独立应用:
+
+- 基于官方的 [Remote Debugger](https://facebook.github.io/react-native/docs/debugging.html#chrome-developer-tools) 且提供了更为丰富的功能
+- 包含 [`react-devtools-core`](https://github.com/facebook/react-devtools/tree/master/packages/react-devtools-core) 的 [React Inspector](https://github.com/jhen0409/react-native-debugger/blob/master/docs/react-devtools-integration.md)
+- 包含 Redux DevTools,且与 [`redux-devtools-extension`](https://github.com/zalmoxisus/redux-devtools-extension) 保持 [API](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md) 一致
+
+![image](https://user-images.githubusercontent.com/3001525/29451479-6621bf1a-83c8-11e7-8ebb-b4e98b1af91c.png)
+
+#### 安装
+
+不同平台及版本的安装包,请点击[这里](https://github.com/jhen0409/react-native-debugger/releases)。
+
+**macOS** 平台可以使用 [Homebrew Cask](https://caskroom.github.io/) 安装:
+
+```sh
+$ brew update && brew cask install react-native-debugger
+```
+
+#### 启动
+
+在启动 React Native Debugger 之前,请先确认以下内容:
+
+- 所有的 React Native 的 debugger 客户端已关闭,特别是 `http://localhost:/debugger-ui`
+- React Native Debugger 会尝试连接 debugger 代理, React Native 默认使用 `8081` 端口, 你可以新建一个 debugger 窗口 (macOS: `Command + T`,Linux/Windows: `Ctrl + T`) 开定义端口
+- 保证 [developer menu](https://facebook.github.io/react-native/docs/debugging.html#accessing-the-in-app-developer-menu) 的 `Debug JS Remotely` 处于开启状态
+
+你可以启动应用之后再修改端口,也可以直接通过命令行启动应用时指定端口:
+
+```sh
+$ open "rndebugger://set-debugger-loc?host=localhost&port=8081"
+```
+
+> 如果启动之后调试窗口空白,请确认调试端口正确。
+
+#### 使用 Redux DevTools Extension API
+
+Use the same API as [`redux-devtools-extension`](https://github.com/zalmoxisus/redux-devtools-extension#1-with-redux) is very simple:
+
+```jsx
+const store = createStore(
+ reducer, /* preloadedState, */
+ window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
+)
+```
+
+See [`Redux DevTools Integration`](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md) section for more information.
+
+#### 更多资料
+
+- [快速开始](https://github.com/jhen0409/react-native-debugger/blob/master/docs/getting-started.md)
+- [Debugger 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/debugger-integration.md)
+- [React DevTools 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/react-devtools-integration.md)
+- [Redux DevTools 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md)
+- [Shortcut references](https://github.com/jhen0409/react-native-debugger/blob/master/docs/shortcut-references.md)
+- [Network inspect of Chrome Developer Tools](https://github.com/jhen0409/react-native-debugger/blob/master/docs/network-inspect-of-chrome-devtools.md)
+- [Enable open in editor in console](https://github.com/jhen0409/react-native-debugger/blob/master/docs/enable-open-in-editor-in-console.md)
+- [Troubleshooting](https://github.com/jhen0409/react-native-debugger/blob/master/docs/troubleshooting.md)
+- [Contributing](https://github.com/jhen0409/react-native-debugger/blob/master/docs/contributing.md)
+
+## 使用原生模块
+有一些平台性的差异是 Taro 无法抹平的,比如支付、登录等,这时候就需要自己写跨端代码,RN 端这边可能还需要修改原生代码。
+
+例如登录的功能:
+
+![image](https://user-images.githubusercontent.com/9441951/56015544-ff513600-5d2b-11e9-92a6-ad01d21b2b8f.png)
+
+React Native 参考文档:[原生模块](https://reactnative.cn/docs/0.55/native-modules-ios/)
+
+## 集成到现有原生 app
+Taro 编译后的项目实际上就是一个 native React Native 项目,所以集成到现有原生 app 的流程和 React Native 也是一样的。
+
+如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。
+
+React Native 参考文档:[集成到现有原生应用](https://reactnative.cn/docs/0.55/integration-with-existing-apps/)
+
+## 构建独立 app
+
+接下来的步骤将会帮助你为 iOS 和 Android 创建 Expo 应用程序的独立二进制文件,并将其提交到 Apple App Store 和 Google Play Store。
+
+构建 iOS 独立应用程序需要 Apple Developer 帐户,但构建 Android 独立应用程序不需要 Google Play Developer 帐户。如果您想要提交到任一应用商店,您将需要该商店的开发者帐户。
+
+在打包发布步骤之前,我们先对开发者的源代码进行预处理,将 Taro 代码转成 React Native 代码:
+
+``` bash
+taro build --type rn
+```
+
+然后 `.rn_temp` 目录(如果你没有修改)下会生成转换后的 React Native 代码。
+
+### 配置 app.json
+
+在 config 目录配置,如:
+
+```json
+rn: {
+ appJson: {
+ "name": "Your App Name",
+ }
+}
+```
+
+Taro 会读取 appJson 字段的内容且自动覆盖到 .rn_temp/app.json。
+
+### 构建 app
+首先使用 React Native 的 bundle 命令将 rn_temp 目录下的 RN 代码及资源打包成 jsbundle,命令如下:
+
+```sh
+node ../node_modules/react-native/local-cli/cli.js bundle --entry-file ./rn_temp/index.js --bundle-output ./bundle/index.bundle --assets-dest ./${BUNDLE_DIR_NAME} --dev false
+```
+
+其中参数可以自行调整,`--bundle-output` 可以制定任意目录,然后将 bundle 目录下的文件 copy 到 `taro-native-shell`目录即可。
+
+当然,也可以通过指定 `--bundle-output` 直接打包到 `taro-native-shell`目录。
+
+接下来,按照 React Native 的文档按照不同的端分别打包对应的应用即可。
+
+#### iOS
+
+参考文档:[在设备上运行](https://reactnative.cn/docs/0.55/running-on-device/)
+
+#### Android
+参考文档:[打包APK](https://reactnative.cn/docs/0.55/signed-apk-android/)
+
+## 发布
+打包好的应用发布到 App Store 或各大应用商店可以查看官方文档。
+
+- [Overview of publishing an app](https://help.apple.com/app-store-connect/#/dev34e9bbb5a)
+- [Publish your app | Android Developers](https://developer.android.com/studio/publish)
+
+## 更新 React Native 版本
+Taro RN 版本暂时固定在 0.55.4 ,用户如有需求,可以自行升级到更高版本。步骤如下:
+
+1. 更新 Taro 项目中 `package.json` React Native 版本,并重新安装依赖
+2. 更新 `taro-native-shell` 项目中 `package.json` React Native 版本,并重新安装依赖
+3. 分别重新安装 `taro-native-shell` 项目中 ios/android 依赖,如 iOS:`cd ios && pod install`
+
+> 如果对 react 版本有要求,可以同步更新。
+
+## 常见错误
+
+### No bundle url present
+
+导致这个报错的原因很多,最常见的是电脑开了代理。具体可以参考 [#12754](https://github.com/facebook/react-native/issues/12754)
+
+### UnableToResolveError: Unable to resolve module `AccessibilityInfo`
+
+原因很多,我这边是重启电脑就好了😂。 具体可以查看 [#14209](https://github.com/facebook/react-native/issues/14209)
+
+### Metro Bundler error: Expected path […] to be relative to one of the project roots
+
+不支持 `npm link`,可以使用 [nicojs/node-install-local](https://github.com/nicojs/node-install-local) 替代。
+
+### Image component does not resolve images with filenames that include '@' symbol
+
+![image](https://user-images.githubusercontent.com/22125059/44312799-373dee80-a3d4-11e8-8367-9cf44e851739.PNG)
+
+React Native 不支持路径中带 @ 符号,具体可以查看 [#14980](https://github.com/facebook/react-native/issues/14980)。
+
+### The development server returned response error code 500
+
+![image](https://user-images.githubusercontent.com/25324938/41452372-42c1e766-708f-11e8-96ce-323eaa1eb03f.jpeg)
+多半是依赖的问题,进入 `.rn_temp/` 目录,然后删除 npm 依赖,在重新安装就可以了。
+也可以试一下以下命令:
+
+```shell
+watchman watch-del-all
+rm -rf node_modules && npm install
+rm -fr $TMPDIR/react-*
+```
+
+具体可以参考 [#1282](https://github.com/expo/expo/issues/1282)
+
+### app 加载阻塞: "Building JavaScript bundle... 100%"
+
+![image](https://user-images.githubusercontent.com/9441951/47762170-7bb00980-dcf6-11e8-95ab-41152076c3de.png)
+
+可能的原因很多,可以参考这个 issue:[react-community/create-react-native-app#392](https://github.com/react-community/create-react-native-app/issues/392)
+
+## 参考
+
+- [React Native 中文网](https://reactnative.cn/)
+- [Android 开发文档](https://developer.android.com/guide?hl=zh-cn)
+- [Android Studio 用户指南](https://developer.android.com/studio/intro?hl=zh-cn)
+- [Apple Developer Documentation](https://developer.apple.com/documentation/)
+- [React Native Debugger ](https://github.com/jhen0409/react-native-debugger)
diff --git a/website/versioned_docs/version-2.0.0-beta.13/components/forms/button.md b/website/versioned_docs/version-2.0.0-beta.13/components/forms/button.md
new file mode 100644
index 000000000000..fa6363572acb
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.13/components/forms/button.md
@@ -0,0 +1,111 @@
+---
+title: Button
+sidebar_label: Button
+id: version-2.0.0-beta.13-button
+original_id: button
+---
+
+##### 按钮
+
+> 属性及支持度
+
+| H5 | ReactNative| Quickapp| 属性名 | 类型 | 默认值 | 说明 |
+| :-: | :-: | :-: | :- | :- | :- | :- |
+| ✔ | ✔ | ✔ | type | String | default | 按钮的样式类型 |
+| ✔ | ✔ | ✔ | size | String | default | 按钮的大小 px |
+| ✔ | ✔ | ✔ | plain | Boolean | false | 按钮是否镂空,背景色透明 |
+| ✔ | ✔ | ✔ | disabled | Boolean | false | 是否禁用 |
+| ✔ | ✔ | ✔ | loading | Boolean | false | 名称前是否带 loading 图标 |
+| ✔ | X (支持 hoverStyle 属性,但框架未支持 hoverClass) | X(支持 active 伪类状态变化) | hoverClass | String | button-hover | 指定按钮按下去的样式类。当 hover-class='none' 时,没有点击态效果 |
+| ✔ | ✔ | X | hoverStartTime | Number | 20 | 按住后多久出现点击态,单位毫秒 |
+| ✔ | ✔ | X | hoverStayTime | Number | 70 | 手指松开后点击态保留时间,单位毫秒 |
+| X | X | X | onGetUserInfo | Handler | | 微信小程序open-type='getUserInfo'时,用户点击该按钮,会返回获取到的用户信息,从返回参数的 detail 中获取到的值同 wx.getUserInfo |
+
+>其他相关属性请看各小程序官方文档
+
+[微信小程序 Button](https://developers.weixin.qq.com/miniprogram/dev/component/button.html)。
+
+[百度小程序 Button](https://smartprogram.baidu.com/docs/develop/component/formlist/#button)。
+
+[支付宝小程序 Button](https://docs.alipay.com/mini/component/button)。
+
+[字节跳动小程序 Button](https://developer.toutiao.com/docs/comp/button.html)。
+
+
+
+###### 示例:
+```jsx
+import Taro, { Component } from '@tarojs/taro'
+import { View, Text, Button } from '@tarojs/components'
+
+export default class PageButton extends Component {
+ state = {
+ btn: [
+ {
+ text: '页面主操作 Normal',
+ size: 'default',
+ type: 'primary'
+ },
+ {
+ text: '页面主操作 Loading',
+ size: 'default',
+ type: 'primary',
+ loading: true,
+ },
+ {
+ text: '页面主操作 Disabled',
+ size: 'default',
+ type: 'primary',
+ disabled: true,
+ },
+ {
+ text: '页面次要操作 Normal',
+ size: 'default',
+ type: 'default'
+ },
+ {
+ text: '页面次要操作 Disabled',
+ size: 'default',
+ type: 'default',
+ disabled: true,
+ },
+ {
+ text: '警告类操作 Normal',
+ size: 'default',
+ type: 'warn'
+ },
+ {
+ text: '警告类操作 Disabled',
+ size: 'default',
+ type: 'warn',
+ disabled: true,
+ }
+ ]
+ }
+ render () {
+ return (
+
+ {this.state.btn.map(item => {
+ return (
+
+ )
+ })}
+
+
+
+
+
+
+
+
+ )
+ }
+}
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.13/debug-config.md b/website/versioned_docs/version-2.0.0-beta.13/debug-config.md
new file mode 100644
index 000000000000..74a188f1c6d4
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.13/debug-config.md
@@ -0,0 +1,101 @@
+---
+title: 单步调测配置
+id: version-2.0.0-beta.13-debug-config
+original_id: debug-config
+---
+
+> 通过本身 `VSCode` 提供的跨平台代码单步调测能力,能够极大提升基于 `Taro` 开发框架的应用开发速度,因其他平台已有比较成熟的工具可以使用,着重降低 Windows 平台配置复杂度。
+
+## 一、开发环境搭建
+
+首先准备 `Taro` 在 Windows 下的基础开发环境,详情如下(已有开发环境可略过):
+
+#### 1. 安装 Node.js
+建议安装 `10.15` 以上版本,官方下载地址:[Node.js](https://nodejs.org/dist/v12.14.0/node-v12.14.0-x64.msi " node.js")
+
+#### 2. 安装 VSCode
+
+安装完最新 `VSCode` 后,建议安装如下插件:
+- `ESlint` — 代码规范
+- `TSlint` — 语法检查
+
+#### 3. Taro 源码下载
+下载地址:[Taro](https://github.com/NervJS/taro.git "Taro"),默认为 2.x 分支,如有需要,请切换到开发分支
+
+#### 4. 全局安装 Node-sass 、Lerna 和 Rollup
+```shell
+npm i -g node-sass --sass_binary site=https://npm.taobao.org/mirrors/node_sass/
+yarn global add lerna
+yarn global add rollup
+```
+> Node-sass 比较特殊,建议提前进行安装,规避可能出现的各种异常错误。
+
+#### 5. 源码依赖安装
+1.使用 `VSCode` 打开 `Taro` 源码目录,在根目录下执行 `yarn` ,安装项目所需依赖库(首次安装所花时间较长,请耐心等待)
+
+2.待 `yarn` 执行完毕后,执行 `yarn bootstrap` 解析子包之间的依赖关系
+
+## 二、单步调试配置
+
+#### 1. 拷贝测试项目
+进入 `taro cli` 目录,将需要调试的测试项目拷贝至根目录,以测试项目命名 `test` 为例
+
+#### 2. 在测试项目中添加 `js` 入口
+进入测试项目根目录,新增 `debug.js` 调试入口文件,文件内容如下:
+```javascript
+const Builder = require('../dist/build').default
+const appPath = process.cwd()
+const builder = new Builder(appPath)
+
+builder.build({
+ type: 'weapp',
+ watch: 'watch'
+ })
+```
+> 调试入口文件名可自定义设置
+
+#### 3. 增加 VSCode 调试参数配置
+打开 `taro cli` 所在 Windows 文件夹,进入目录下的 `.vscode` 子目录,在 `lanuch.json` 文件中新增调试入口参数,设置如下:
+```shell
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "node",
+ "name": "debug.js",
+ "request": "launch",
+ "sourceMaps": true,
+ "args": [
+ "--runInBand",
+ "-r",
+ "ts-node/register"
+ ],
+ "cwd": "${workspaceFolder}/packages/taro-cli/debug",
+ "console": "integratedTerminal",
+ "internalConsoleOptions": "neverOpen",
+ "program": "${workspaceFolder}/packages/taro-cli/test/debug.js"
+ }
+ ]
+}
+```
+> 若 `.vscode` 目录或 `lanuch.json` 文件不存在,需手动创建;同时 `name` 、`cwd` 、`program` 三个参数根据测试项目的实际名称、目录进行调整
+
+#### 2. 编译子包
+在 `node.js` 调试过程中只能调用 `js` 文件,调试过程所依赖的 `taro` 子模块,需要进入子模块根目录,执行编译命令,将 `ts` 代码编译打包成 `js` 代码之后,才能进行调试,主要编译如下关键子包:
+
+| 模块名称 | 功能描述 | 编译方式 |
+| :------------ |:---------------:| -----:|
+| taro-cli | Taro开发工具转换总入口 | yarn dev |
+| taroize | Taro小程序编译器,主要负责小程序转Taro | yarn dev |
+| taro-mini-runner | Taro编译时,webpack插件化管理打包任务 | yarn dev |
+| taro-transformer-wx | Taro解析模块,解析AST目录树 | yarn dev |
+
+#### 3.链接未发布的库
+为了测试代码更改效果,或依赖未正式发布的包,可通过软链接的方式,将最新代码链接到测试目录下进行测试,同时保持子模块的 `watch` 状态,可以实时更新修改代码,此处以 `taro-mini-runner` 举例:
+
+1.首先进入 `taro-mini-runner` 根目录,执行 `yarn link` 命令
+
+2.进入测试项目 `test` 的根目录,执行 `Debug and Run` , `yarn link taro-mini-runner` 命令进行软链接
+
+#### 4.启动调试
+在编译后的 `js` 文件中打断点,在 `VSCode` 左侧按钮列表中,选择启动调试 `Debug and Run` 按钮,在出现的选择框列表中,选择需要启动的测试项目,启动调试,即可开始单步调试。
\ No newline at end of file
diff --git a/website/versioned_docs/version-2.0.0-beta.2/config-detail.md b/website/versioned_docs/version-2.0.0-beta.2/config-detail.md
new file mode 100644
index 000000000000..ed9993f1c4cb
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.2/config-detail.md
@@ -0,0 +1,853 @@
+---
+title: 编译配置详情
+id: version-2.0.0-beta.2-config-detail
+original_id: config-detail
+---
+
+## designWidth
+
+`designWidth` 用来设置设计稿尺寸,关于这一部分的配置说明请见[设计稿及尺寸单位](./size.md)这一章节。
+
+## sourceRoot
+
+`sourceRoot` 用来设置源码存放目录,通过 Taro 开发工具初始化后的项目源码目录都是 `src`,你可以通过修改这一配置来重新指定源码目录。
+
+## outputRoot
+
+`outputRoot` 用来设置代码编译后的生产目录,通过 Taro 开发工具初始化后的生产目录都是 `dist`,你可以通过修改这一配置来重新指定生产目录。
+
+## plugins
+
+`plugins` 用来设置编译过程插件,插件机制基于 实现,目前暴露了两个钩子 `beforeBuild` 和 `afterBuild`
+
+其中,`beforeBuild` 将在整体编译前触发,可以获取到编译的相关配置,同时也能进行修改
+
+`afterBuild` 将在 webpack 编译完后执行,可以获取到编译后的结果
+
+具体使用方式如下:
+
+首先定义一个插件
+
+```js
+class BuildPlugin {
+ apply (builder) {
+ builder.hooks.beforeBuild.tap('BuildPlugin', (config) => {
+ console.log(config)
+ })
+
+ builder.hooks.afterBuild.tap('BuildPlugin', (stats) => {
+ console.log(stats)
+ })
+ }
+}
+```
+
+接下来在 `plugins` 字段中进行配置
+
+```js
+{
+ plugins: [
+ new BuildPlugin()
+ ]
+}
+```
+
+## babel
+
+用来配置 `babel`,默认配置如下,可以自行添加自己需要的额外的 `presets` 及 `plugins`。
+
+```jsx
+babel: {
+ sourceMap: true,
+ presets: [
+ 'env'
+ ],
+ plugins: [
+ 'transform-class-properties',
+ 'transform-decorators-legacy',
+ 'transform-object-rest-spread'
+ ]
+}
+```
+
+## uglify
+
+用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
+
+```jsx
+uglify: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/mishoo/UglifyJS2#minify-options
+ }
+}
+```
+
+## csso
+
+用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
+
+```jsx
+csso: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/css/csso#minifysource-options
+ }
+}
+```
+
+## sass
+
+用来配置 `sass` 工具,设置打包过程中的 SCSS 代码编译。
+具体配置可以参考[node-sass](https://www.npmjs.com/package/node-sass)
+当需要全局注入scss文件时,可以添加三个额外参数:`resource` 、 `projectDirectory` (v1.2.25开始支持)、`data`(v1.3.0开始支持),具体配置方式如下:
+
+#### 单文件路径形式
+
+当只有 `resource` 字段时,可以传入 scss 文件的绝对路径。
+
+```js
+sass: {
+ resource: path.resolve(__dirname, '..', 'src/styles/variable.scss')
+}
+```
+
+#### 多文件路径形式
+
+此外,当只有 `resource` 字段时,也可以传入一个路径数组。
+
+```js
+sass: {
+ resource: [
+ path.resolve(__dirname, '..', 'src/styles/variable.scss'),
+ path.resolve(__dirname, '..', 'src/styles/mixins.scss')
+ ]
+}
+```
+
+#### 指定项目根目录路径形式
+
+你可以额外配置 `projectDirectory` 字段,这样你就可以在 `resource` 里写相对路径了。
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..')
+}
+```
+
+#### 传入 scss 变量字符串
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..'),
+ data: '$nav-height: 48px;'
+}
+```
+
+* resource: 如果要引入多个文件,支持数组形式传入
+* projectDirectory: 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
+* data: 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
+
+## env
+
+用来设置一些环境变量如 `process.env.NODE_ENV`,例如我们想设置区分预览、打包来做些不同的操作,可以如下配置:
+
+在 `config/dev.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"development"' // JSON.stringify('development')
+}
+```
+
+在 `config/prod.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"production"' // JSON.stringify('production')
+}
+```
+
+这样就能在代码中通过 `process.env.NODE_ENV === 'development'` 来判断环境。
+
+## defineConstants
+
+用来配置一些全局变量供代码中进行使用,例如:
+
+```js
+defineConstants: {
+ A: '"a"' // JSON.stringify('a')
+}
+```
+
+## alias
+
+> `1.2.0` 开始支持。
+
+用来配置目录别名,从而方便书写代码引用路径。例如,使用相对路径书写文件引用如下:
+
+```js
+import A from '../../componnets/A'
+import Utils from '../../utils'
+import packageJson from '../../package.json'
+import projectConfig from '../../project.config.json'
+```
+
+为了避免书写多级相对路径,我们可以如下配置 `alias`:
+
+```js
+alias: {
+ '@/components': path.resolve(__dirname, '..', 'src/components'),
+ '@/utils': path.resolve(__dirname, '..', 'src/utils'),
+ '@/package': path.resolve(__dirname, '..', 'package.json'),
+ '@/project': path.resolve(__dirname, '..', 'project.config.json'),
+}
+```
+
+通过上述配置,可以将 `src/components` 和 `src/utils` 目录配置成别名,将根目录下的 `package.json` 和 `project.config.json` 文件配置成别名,则代码中的引用改写如下:
+
+```js
+import A from '@/components/A'
+import Utils from '@/utils'
+import packageJson from '@/package'
+import projectConfig from '@/project'
+```
+
+为了让编辑器(VS Code)不报错,并继续使用自动路径补全的功能,需要在项目根目录下的 `jsconfig.json` 或者 `tsconfig.json` 中配置 `paths` 让编辑器认得我们的别名,形式如下:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["./src/components/*"],
+ "@/utils/*": ["./src/utils/*"],
+ "@/package": ["./package.json"],
+ "@/project": ["./project.config.json"],
+ }
+ }
+}
+```
+
+*建议别名使用 `@/` 开头而非仅用 `@` 开头,因为有小概率会与某些 `scoped` 形式的 `npm` 包(行如:[@tarojs/taro](https://npm.im/@tarojs/taro), [@babel/core](https://npm.im/@babel/core))产生命名冲突。*
+
+## copy
+
+文件 copy 配置,包含两个配置项 `patterns` 和 `options`。
+
+### copy.patterns
+
+用来指定需要拷贝的文件或者目录,**数组类型**,每一项都必须包含 `from` 、`to` 的配置,分别代表来源和需要拷贝到的目录,同时可以设置 `ignore` 配置来指定需要忽略的文件, `ignore` 是指定的 [glob](https://github.com/isaacs/node-glob) 类型字符串,或者 glob 字符串数组。
+
+值得注意的是,目前 `from` 必须指定存在的文件或者目录,暂不支持 glob 格式, `from` 和 `to` 直接置顶项目根目录下的文件目录,建议 `from` 以 `src` 目录开头,`to` 以 `dist` 目录开头。
+
+一般有如下的使用形式:
+
+```jsx
+copy: {
+ patterns: [
+ { from: 'src/asset/tt/', to: 'dist/asset/tt/', ignore: '*.js' }, // 指定需要 copy 的目录
+ { from: 'src/asset/tt/sd.jpg', to: 'dist/asset/tt/sd.jpg' } // 指定需要 copy 的文件
+ ]
+},
+```
+
+### copy.options
+
+拷贝配置,目前可以指定全局的 ignore:
+
+```jsx
+copy: {
+ options: {
+ ignore: ['*.js', '*.css'] // 全局的 ignore
+ }
+}
+```
+
+## mini
+
+专属于小程序的配置。
+
+### mini.compile
+
+小程序编译过程的相关配置。
+
+#### mini.compile.compressTemplate
+
+决定小程序打包时是否需要压缩 wxml
+
+#### mini.compile.exclude
+
+配置小程序编译过程中排除不需要经过 Taro 编译的文件,数组类型,写文件路径,文件路径必须以源码所在 `src` 目录开头:
+
+```jsx
+mini: {
+ compile: {
+ exclude: ['src/components/ec-canvas/echarts.js']
+ }
+}
+```
+
+### mini.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 raw-loader 的例子,用于在项目中直接引用 md 文件
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /\.md$/,
+ use: [{
+ loader: 'raw-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### mini.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### mini.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### mini.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### mini.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### mini.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### mini.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### mini.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+}
+```
+
+### mini.postcss
+
+配置 `postcss` 相关插件:
+
+```jsx
+postcss: {
+ // 可以进行 autoprefixer 的配置。配置项参考官方文档 https://github.com/postcss/autoprefixer
+ autoprefixer: {
+ enable: true,
+ config: {
+ // autoprefixer 配置项
+ }
+ },
+ pxtransform: {
+ enable: true,
+ config: {
+ // pxtransform 配置项,参考尺寸章节
+ selectorBlackList: ['body']
+ }
+ },
+ // 小程序端样式引用本地资源内联
+ url: {
+ enable: true,
+ config: {
+ limit: 10240 // 设定转换尺寸上限
+ }
+ },
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
+
+## h5
+
+专属于 H5 的配置。
+
+### h5.devServer
+
+预览服务的配置,可以更改端口等参数。具体配置参考 [webpack-dev-server](https://webpack.js.org/configuration/dev-server)。
+
+```js
+devServer: {
+ port: 10086
+}
+```
+
+默认是 `http` 服务,如果想开启 `https` 服务需要做如下配置。
+
+```js
+devServer: {
+ https: true
+}
+```
+
+### h5.output
+
+输出配置
+
+```js
+output: {
+ filename: 'js/[name].[hash:8].js',
+ chunkFilename: 'js/[name].[chunkhash:8].js'
+}
+```
+
+### h5.publicPath
+
+设置输出解析文件的目录。
+
+### h5.staticDirectory
+
+h5 编译后的静态文件目录。
+
+### h5.chunkDirectory
+
+编译后非 entry 的 js 文件的存放目录,主要影响动态引入的 `pages` 的存放路径。
+
+### h5.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 ts-loader 的例子,但事实上 taro 是默认支持 ts 的,并不需要这样做。
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /.tsx?/,
+ use: [{
+ loader: 'ts-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### [DEPRECATED]h5.webpack
+
+自定义 Webpack 配置。这个配置项支持两种形式的配置:
+
+1. 如果该配置项以**对象**的形态呈现,Taro 将会使用 `webpack-merge` 将这个对象合并到默认的配置项中。
+例子:
+
+```jsx
+webpack: {
+ resolve: {
+ alias: {
+ 'test': './test'
+ }
+ }
+}
+```
+
+2. 如果该配置以**函数**的形态呈现,那这个函数将会接收到两个参数:默认配置(defaultConfig)和 Webpack 实例(webpack)。Taro 将会以该函数的返回值作为最终的 Webpack 配置。
+
+例子:
+
+```jsx
+webpack (defaultConfig, webpack) {
+ defaultConfig.plugins.push(
+ new webpack.EnvironmentPlugin(['NODE_ENV'])
+ )
+ return defaultConfig
+}
+```
+
+### h5.router
+
+路由相关的配置,支持路由模式、路由基准路径以及自定义路由的配置。
+
+#### h5.router.mode
+
+路由模式配置。配置值为 `hash`(默认值)或 `browser`,分别对应 hash 路由模式和浏览器 history 路由模式。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ mode: 'hash' // 或者是 'browser'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/pages/index/index`(hash 模式)或者 `http://{{domain}}/pages/index/index`(browser 模式)。
+
+#### h5.router.basename
+
+路由基准路径的配置,配置值为 `string` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ basename: '/myapp'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/myapp/pages/index/index`(hash 模式)或者 `http://{{domain}}/myapp/pages/index/index`(browser 模式)。
+
+#### h5.router.customRoutes
+
+自定义路由的配置,配置值为 `{ [key: string]: string }` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ customRoutes: {
+ '/pages/index/index': '/index'
+ }
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/index`(hash 模式)或者 `http://{{domain}}/myapp/index`(browser 模式)。
+
+### h5.entry
+
+Taro app 的入口,同 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。
+
+```jsx
+{
+ entry: {
+ home: ['./home.js'],
+ about: ['./about.js'],
+ contact: ['./contact.js']
+ }
+}
+```
+
+### h5.enableSourceMap
+
+sourceMap 开关,影响 js、css 的 sourceMap 配置。
+dev 状态默认 **开**,prod 状态默认 **关**。
+
+### h5.enableDll
+
+dll 开关,开启后将使用 `dllPlugin` 把内置的部分依赖库打包为单独的 dll 文件,
+某种程度上可以减少首屏单个文件体积。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.dllWebpackChain
+
+同 `h5.webpackChain`,不过作用于 dll。
+
+### h5.dllEntry
+
+dll编译过程的 `entry` 配置项,决定了 dll 文件的内容,可参考 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。默认值:
+
+```js
+h5: {
+ /* 其他配置 */
+ ...,
+ dllEntry: {
+ lib: ['nervjs', '@tarojs/taro-h5', '@tarojs/router', '@tarojs/components']
+ }
+}
+```
+
+### h5.enableExtract
+
+extract 功能开关,开启后将使用 `mini-css-extract-plugin` 分离 css 文件,
+可通过 `h5.miniCssExtractPluginOption` 对插件进行配置。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.esnextModules
+
+配置需要额外的编译的源码模块,比如 [taro-ui](https://github.com/NervJS/taro-ui):
+
+```javascript
+h5: {
+ // 经过这一配置之后,代码中引入的处于 `node_modules/taro-ui/` 路径下的源码文件均会经过taro的编译处理。
+ esnextModules: ['taro-ui'],
+ ...
+}
+```
+
+### h5.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### h5.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### h5.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### h5.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### h5.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### h5.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### h5.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: 'css/[name].css',
+ chunkFilename: 'css/[id].css'
+ }
+}
+```
+
+### h5.postcss
+
+配置 H5 的 `postcss` 插件。
+
+#### h5.postcss.autoprefixer
+
+可以进行 `autoprefixer` 的配置。配置项参考[官方文档](https://github.com/postcss/autoprefixer),例如:
+
+```jsx
+postcss: {
+ autoprefixer: {
+ enable: true,
+ config: {
+ /* autoprefixer 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.pxtransform
+
+可以进行 `pxtransform` 的配置。配置项参考[官方文档](https://github.com/Pines-Cheng/postcss-pxtransform/),例如:
+
+```jsx
+postcss: {
+ pxtransform: {
+ enable: true,
+ config: {
+ /* pxtransform 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.cssModules
+
+可以进行 H5 端 CSS Modules 配置,配置如下:
+
+```js
+postcss: {
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module',
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.2/config.md b/website/versioned_docs/version-2.0.0-beta.2/config.md
new file mode 100644
index 000000000000..175459ba268f
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.2/config.md
@@ -0,0 +1,83 @@
+---
+title: 编译配置
+id: version-2.0.0-beta.2-config
+original_id: config
+---
+
+编译配置存放于项目根目录下 `config` 目录中,包含三个文件
+
+- `index.js` 是通用配置
+- `dev.js` 是项目预览时的配置
+- `prod.js` 是项目打包时的配置
+
+## index.js —— 通用配置
+
+```js
+const config = {
+ // 项目名称
+ projectName: 'kj',
+ // 项目创建日期
+ date: '2018-6-8',
+ // 设计稿尺寸
+ designWidth: 750,
+ // 项目源码目录
+ sourceRoot: 'src',
+ // 项目产出目录
+ outputRoot: 'dist',
+ // babel 编译配置
+ babel: {
+ sourceMap: true,
+ presets: ['env'],
+ plugins: ['transform-class-properties', 'transform-decorators-legacy', 'transform-object-rest-spread']
+ },
+ // 编译插件配置
+ plugins: [],
+ // 全局变量设置
+ defineConstants: {},
+ // 文件 copy 配置
+ copy: {
+ patterns: [
+ ],
+ options: {
+ }
+ },
+ // 小程序端专用配置
+ weapp: {
+ postcss: {
+ autoprefixer: {
+ enable: true
+ },
+ // 小程序端样式引用本地资源内联配置
+ url: {
+ enable: true,
+ config: {
+ limit: 10240
+ }
+ }
+ },
+ // 替换 JSX 中的属性名,参考:
+ // https://github.com/NervJS/taro/issues/2077
+ jsxAttributeNameReplace: {}
+ },
+ // H5 端专用配置
+ h5: {
+ publicPath: '/',
+ staticDirectory: 'static',
+ postcss: {
+ autoprefixer: {
+ enable: true
+ }
+ },
+ // 自定义 Webpack 配置
+ webpackChain: {},
+ devServer: {}
+ }
+};
+
+module.exports = function(merge) {
+ if (process.env.NODE_ENV === 'development') {
+ return merge({}, config, require('./dev'));
+ }
+ return merge({}, config, require('./prod'));
+};
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.3/README.md b/website/versioned_docs/version-2.0.0-beta.3/README.md
new file mode 100644
index 000000000000..0d322f137dcb
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.3/README.md
@@ -0,0 +1,144 @@
+---
+title: Taro 介绍
+id: version-2.0.0-beta.3-README
+original_id: README
+---
+
+> 这是 Taro 2.x 版本的文档,若要查看 1.x 版本的文档,请[点击这里选择版本](/taro/versions.html)。
+
+## 简介
+
+**Taro** 是一套遵循 [React](https://reactjs.org/) 语法规范的 **多端开发** 解决方案。
+
+现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。
+
+使用 **Taro**,我们可以只书写一套代码,再通过 **Taro** 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动/QQ小程序、快应用、H5、React-Native 等)运行的代码。
+
+## 特性
+
+#### React 语法风格
+
+**Taro** 遵循 [React](https://reactjs.org/) 语法规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 [JSX 语法](jsx.html),让代码具有更丰富的表现力,使用 **Taro** 进行开发可以获得和 React 一致的开发体验。
+
+代码示例
+
+```jsx
+import Taro, { Component } from '@tarojs/taro'
+import { View, Button } from '@tarojs/components'
+
+export default class Index extends Component {
+ constructor () {
+ super(...arguments)
+ this.state = {
+ title: '首页',
+ list: [1, 2, 3]
+ }
+ }
+
+ componentWillMount () {}
+
+ componentDidMount () {}
+
+ componentWillUpdate (nextProps, nextState) {}
+
+ componentDidUpdate (prevProps, prevState) {}
+
+ shouldComponentUpdate (nextProps, nextState) {
+ return true
+ }
+
+ add = (e) => {
+ // dosth
+ }
+
+ render () {
+ return (
+
+ {this.state.title}
+
+ {this.state.list.map(item => {
+ return (
+ {item}
+ )
+ })}
+
+
+
+ )
+ }
+}
+```
+
+> 由于微信小程序端的限制,有极少数 JSX 的优秀用法暂时不能得到很好地支持,同时,为了遵循 React 语法,Taro 在写法上也有一些自己的规范,具体可以参考:[Taro 开发最佳实践](best-practice.html) 。
+
+#### 快速开发微信小程序
+
+Taro 立足于微信小程序开发,众所周知小程序的开发体验并不是非常友好,比如小程序中无法使用 npm 来进行第三方库的管理,无法使用一些比较新的 ES 规范等等,针对小程序端的开发弊端,Taro 具有以下的优秀特性
+
+✅ 支持使用 npm/yarn 安装管理第三方依赖
+
+✅ 支持使用 ES7/ES8 甚至更新的 ES 规范,一切都可自行配置
+
+✅ 支持使用 CSS 预编译器,例如 Sass 等
+
+✅ 支持使用 Redux 进行状态管理
+
+✅ 支持使用 MobX 进行状态管理
+
+✅ 小程序 API 优化,异步 API Promise 化等等
+
+#### 支持多端开发转化
+
+Taro 方案的初心就是为了打造一个多端开发的解决方案。目前 Taro 代码可以支持转换到 **微信/百度/支付宝/字节跳动/QQ小程序** 、**快应用**、 **H5 端** 以及 **移动端(React Native)**。
+
+
+
+## 社区共享
+
+[Taro 交流社区——让每一次交流都被沉淀](https://taro-club.jd.com/) 如果您在此文档没有找到想要的答案,请移步[社区](https://taro-club.jd.com)提问,我们会在看到的第一时间给予答复。
+
+[Taro 物料市场——让每一个轮子产生价值](https://taro-ext.jd.com/) 如果您想找一些现成的物料,例如:模版、组件、SDK、UI,可以移步[物料市场](https://taro-ext.jd.com/)查找,也欢迎您发布物料与其他开发者共享。
+
+## Taro UI
+
+一款基于 `Taro` 框架开发的多端 UI 组件库。
+
+[Taro UI](https://taro-ui.jd.com) 特性:
+
+- 基于 `Taro` 开发 UI 组件
+- 一套组件可以在 `微信小程序`,`支付宝小程序`,`百度小程序`,`H5` 多端适配运行(`ReactNative` 端暂不支持)
+- 提供友好的 API,可灵活的使用组件
+
+## 使用案例
+
+Taro 已经投入了我们的生产环境中使用,业界也在广泛地使用 Taro 开发多端应用。
+
+> 社区案例仅收纳了开发者主动提交的案例
+
+![image](https://raw.githubusercontent.com/NervJS/taro-user-cases/master/user-cases.jpg)
+
+## 学习资源
+
+### 官方文章精选
+- [使用 React Hooks 重构你的小程序](https://aotu.io/notes/2019/07/10/taro-hooks/)
+- [Taro 1.3 震撼发布:全面支持 JSX 语法和 HOOKS](https://aotu.io/notes/2019/06/13/taro-1-3/)
+- [小程序框架全面测评](https://aotu.io/notes/2019/03/12/mini-program-framework-full-review/)
+- [Taro 在京东购物小程序上的实践](https://aotu.io/notes/2018/09/11/taro-in-jd/)
+- [用 React 开发小程序的探索之路 (演讲内容整理)| 掘金开发者大会](https://juejin.im/post/5ba346a7f265da0ad13b78bd)
+- [为何我们要用 React 来写小程序 - Taro 诞生记](https://aotu.io/notes/2018/06/25/the-birth-of-taro/)
+- [多端统一开发框架 - Taro介绍](https://aotu.io/notes/2018/06/07/Taro/)
+
+### 分享交流
+- [第十三届 D2 前端技术论坛——使用 Taro 快速构建多端应用](https://www.yuque.com/d2forum/content/d213#6a1363f4)
+- [WeGeek直播课:从0到1快速开发电商小程序](https://link.juejin.im/?target=https%3A%2F%2Fcloud.tencent.com%2Fedu%2Flearning%2Flive-1497)
+- [掘金开发者大会——用React开发小程序的探索之路](https://www.itdks.com/Course/detail?id=16289)
+
+### 其他
+更多文章教程、开源项目等,请参考:[awesome-taro](https://github.com/NervJS/awesome-taro)
+
+掘金小册:[Taro 多端开发实现原理与实战](https://juejin.im/book/5b73a131f265da28065fb1cd?referrer=5ba228f16fb9a05d3251492d)
+
+## 开发交流
+扫码添加 `凹凸实验室-小助手` ,回复 `Taro` 即可进群。(Taro 开发交流15群 已满)
+
+![image](https://user-images.githubusercontent.com/9441951/63744620-7994e800-c8d2-11e9-9e66-ab43d1d75fe8.png)
diff --git a/website/versioned_docs/version-2.0.0-beta.3/async-await.md b/website/versioned_docs/version-2.0.0-beta.3/async-await.md
new file mode 100644
index 000000000000..42083d1ed159
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.3/async-await.md
@@ -0,0 +1,43 @@
+---
+title: 异步编程
+id: version-2.0.0-beta.3-async-await
+original_id: async-await
+---
+
+> Taro 2.x 版本中使用 `async-await` 不再需要 `@tarojs/async-await`。
+
+Taro 支持使用 `async functions` 来让开发者获得不错的异步编程体验,开启 `async functions` 支持需要安装包 `babel-plugin-transform-runtime` 和 `babel-runtime`。
+
+```bash
+$ yarn add babel-plugin-transform-runtime --dev
+$ yarn add babel-runtime
+```
+
+随后修改项目 [`babel` 配置](./config-detail.md#babel),增加插件 `babel-plugin-transform-runtime`。
+
+```js
+babel: {
+ sourceMap: true,
+ presets: [
+ [
+ 'env',
+ {
+ modules: false
+ }
+ ]
+ ],
+ plugins: [
+ 'transform-decorators-legacy',
+ 'transform-class-properties',
+ 'transform-object-rest-spread',
+ ['transform-runtime', {
+ "helpers": false,
+ "polyfill": false,
+ "regenerator": true,
+ "moduleName": 'babel-runtime'
+ }]
+ ]
+}
+```
+
+> 值得注意的事,使用 `async functions` 一定要记得按照[开发前注意](./before-dev-remind.md)中提示的内容进行操作,否则会出现报错
diff --git a/website/versioned_docs/version-2.0.0-beta.3/config-detail.md b/website/versioned_docs/version-2.0.0-beta.3/config-detail.md
new file mode 100644
index 000000000000..24c0c12fe726
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.3/config-detail.md
@@ -0,0 +1,856 @@
+---
+title: 编译配置详情
+id: version-2.0.0-beta.3-config-detail
+original_id: config-detail
+---
+
+## designWidth
+
+`designWidth` 用来设置设计稿尺寸,关于这一部分的配置说明请见[设计稿及尺寸单位](./size.md)这一章节。
+
+## sourceRoot
+
+`sourceRoot` 用来设置源码存放目录,通过 Taro 开发工具初始化后的项目源码目录都是 `src`,你可以通过修改这一配置来重新指定源码目录。
+
+## outputRoot
+
+`outputRoot` 用来设置代码编译后的生产目录,通过 Taro 开发工具初始化后的生产目录都是 `dist`,你可以通过修改这一配置来重新指定生产目录。
+
+## plugins
+
+`plugins` 用来设置编译过程插件,插件机制基于 实现,目前暴露了两个钩子 `beforeBuild` 和 `afterBuild`
+
+其中,`beforeBuild` 将在整体编译前触发,可以获取到编译的相关配置,同时也能进行修改
+
+`afterBuild` 将在 webpack 编译完后执行,可以获取到编译后的结果
+
+具体使用方式如下:
+
+首先定义一个插件
+
+```js
+class BuildPlugin {
+ apply (builder) {
+ builder.hooks.beforeBuild.tap('BuildPlugin', (config) => {
+ console.log(config)
+ })
+
+ builder.hooks.afterBuild.tap('BuildPlugin', (stats) => {
+ console.log(stats)
+ })
+ }
+}
+```
+
+接下来在 `plugins` 字段中进行配置
+
+```js
+{
+ plugins: [
+ new BuildPlugin()
+ ]
+}
+```
+
+## babel
+
+用来配置 `babel`,默认配置如下,可以自行添加自己需要的额外的 `presets` 及 `plugins`。
+
+```jsx
+babel: {
+ sourceMap: true,
+ presets: [
+ 'env'
+ ],
+ plugins: [
+ 'transform-class-properties',
+ 'transform-decorators-legacy',
+ 'transform-object-rest-spread'
+ ]
+}
+```
+
+## uglify
+
+用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
+
+```jsx
+uglify: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/mishoo/UglifyJS2#minify-options
+ }
+}
+```
+
+## csso
+
+用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
+
+```jsx
+csso: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/css/csso#minifysource-options
+ }
+}
+```
+
+## sass
+
+用来配置 `sass` 工具,设置打包过程中的 SCSS 代码编译。
+具体配置可以参考[node-sass](https://www.npmjs.com/package/node-sass)
+当需要全局注入scss文件时,可以添加三个额外参数:`resource` 、 `projectDirectory` (v1.2.25开始支持)、`data`(v1.3.0开始支持),具体配置方式如下:
+
+#### 单文件路径形式
+
+当只有 `resource` 字段时,可以传入 scss 文件的绝对路径。
+
+```js
+sass: {
+ resource: path.resolve(__dirname, '..', 'src/styles/variable.scss')
+}
+```
+
+#### 多文件路径形式
+
+此外,当只有 `resource` 字段时,也可以传入一个路径数组。
+
+```js
+sass: {
+ resource: [
+ path.resolve(__dirname, '..', 'src/styles/variable.scss'),
+ path.resolve(__dirname, '..', 'src/styles/mixins.scss')
+ ]
+}
+```
+
+#### 指定项目根目录路径形式
+
+你可以额外配置 `projectDirectory` 字段,这样你就可以在 `resource` 里写相对路径了。
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..')
+}
+```
+
+#### 传入 scss 变量字符串
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..'),
+ data: '$nav-height: 48px;'
+}
+```
+
+* resource: 如果要引入多个文件,支持数组形式传入
+* projectDirectory: 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
+* data: 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
+
+## env
+
+用来设置一些环境变量如 `process.env.NODE_ENV`,例如我们想设置区分预览、打包来做些不同的操作,可以如下配置:
+
+在 `config/dev.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"development"' // JSON.stringify('development')
+}
+```
+
+在 `config/prod.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"production"' // JSON.stringify('production')
+}
+```
+
+这样就能在代码中通过 `process.env.NODE_ENV === 'development'` 来判断环境。
+
+## defineConstants
+
+用来配置一些全局变量供代码中进行使用,例如:
+
+```js
+defineConstants: {
+ A: '"a"' // JSON.stringify('a')
+}
+```
+
+## alias
+
+> `1.2.0` 开始支持。
+
+用来配置目录别名,从而方便书写代码引用路径。例如,使用相对路径书写文件引用如下:
+
+```js
+import A from '../../componnets/A'
+import Utils from '../../utils'
+import packageJson from '../../package.json'
+import projectConfig from '../../project.config.json'
+```
+
+为了避免书写多级相对路径,我们可以如下配置 `alias`:
+
+```js
+alias: {
+ '@/components': path.resolve(__dirname, '..', 'src/components'),
+ '@/utils': path.resolve(__dirname, '..', 'src/utils'),
+ '@/package': path.resolve(__dirname, '..', 'package.json'),
+ '@/project': path.resolve(__dirname, '..', 'project.config.json'),
+}
+```
+
+通过上述配置,可以将 `src/components` 和 `src/utils` 目录配置成别名,将根目录下的 `package.json` 和 `project.config.json` 文件配置成别名,则代码中的引用改写如下:
+
+```js
+import A from '@/components/A'
+import Utils from '@/utils'
+import packageJson from '@/package'
+import projectConfig from '@/project'
+```
+
+为了让编辑器(VS Code)不报错,并继续使用自动路径补全的功能,需要在项目根目录下的 `jsconfig.json` 或者 `tsconfig.json` 中配置 `paths` 让编辑器认得我们的别名,形式如下:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["./src/components/*"],
+ "@/utils/*": ["./src/utils/*"],
+ "@/package": ["./package.json"],
+ "@/project": ["./project.config.json"],
+ }
+ }
+}
+```
+
+*建议别名使用 `@/` 开头而非仅用 `@` 开头,因为有小概率会与某些 `scoped` 形式的 `npm` 包(行如:[@tarojs/taro](https://npm.im/@tarojs/taro), [@babel/core](https://npm.im/@babel/core))产生命名冲突。*
+
+## copy
+
+文件 copy 配置,包含两个配置项 `patterns` 和 `options`。
+
+### copy.patterns
+
+用来指定需要拷贝的文件或者目录,**数组类型**,每一项都必须包含 `from` 、`to` 的配置,分别代表来源和需要拷贝到的目录,同时可以设置 `ignore` 配置来指定需要忽略的文件, `ignore` 是指定的 [glob](https://github.com/isaacs/node-glob) 类型字符串,或者 glob 字符串数组。
+
+值得注意的是,目前 `from` 必须指定存在的文件或者目录,暂不支持 glob 格式, `from` 和 `to` 直接置顶项目根目录下的文件目录,建议 `from` 以 `src` 目录开头,`to` 以 `dist` 目录开头。
+
+一般有如下的使用形式:
+
+```jsx
+copy: {
+ patterns: [
+ { from: 'src/asset/tt/', to: 'dist/asset/tt/', ignore: '*.js' }, // 指定需要 copy 的目录
+ { from: 'src/asset/tt/sd.jpg', to: 'dist/asset/tt/sd.jpg' } // 指定需要 copy 的文件
+ ]
+},
+```
+
+### copy.options
+
+拷贝配置,目前可以指定全局的 ignore:
+
+```jsx
+copy: {
+ options: {
+ ignore: ['*.js', '*.css'] // 全局的 ignore
+ }
+}
+```
+
+## mini
+
+专属于小程序的配置。
+
+### mini.compile
+
+小程序编译过程的相关配置。
+
+#### mini.compile.compressTemplate
+
+决定小程序打包时是否需要压缩 wxml
+
+#### mini.compile.exclude
+
+配置小程序编译过程中排除不需要经过 Taro 编译的文件,数组类型,写文件路径,文件路径必须以源码所在 `src` 目录开头:
+
+```jsx
+mini: {
+ compile: {
+ exclude: ['src/components/ec-canvas/echarts.js']
+ }
+}
+```
+
+### mini.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 raw-loader 的例子,用于在项目中直接引用 md 文件
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /\.md$/,
+ use: [{
+ loader: 'raw-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### mini.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### mini.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### mini.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### mini.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### mini.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### mini.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### mini.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+}
+```
+
+### mini.postcss
+
+配置 `postcss` 相关插件:
+
+```jsx
+postcss: {
+ // 可以进行 autoprefixer 的配置。配置项参考官方文档 https://github.com/postcss/autoprefixer
+ autoprefixer: {
+ enable: true,
+ config: {
+ // autoprefixer 配置项
+ }
+ },
+ pxtransform: {
+ enable: true,
+ config: {
+ // pxtransform 配置项,参考尺寸章节
+ selectorBlackList: ['body']
+ }
+ },
+ // 小程序端样式引用本地资源内联
+ url: {
+ enable: true,
+ config: {
+ limit: 10240 // 设定转换尺寸上限
+ }
+ },
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
+
+## h5
+
+专属于 H5 的配置。
+
+### h5.devServer
+
+预览服务的配置,可以更改端口等参数。具体配置参考 [webpack-dev-server](https://webpack.js.org/configuration/dev-server)。
+
+```js
+devServer: {
+ port: 10086
+}
+```
+
+默认是 `http` 服务,如果想开启 `https` 服务需要做如下配置。
+
+```js
+devServer: {
+ https: true
+}
+```
+
+### h5.output
+
+输出配置
+
+```js
+output: {
+ filename: 'js/[name].[hash:8].js',
+ chunkFilename: 'js/[name].[chunkhash:8].js'
+}
+```
+
+### h5.publicPath
+
+设置输出解析文件的目录。
+
+### h5.staticDirectory
+
+h5 编译后的静态文件目录。
+
+### h5.chunkDirectory
+
+编译后非 entry 的 js 文件的存放目录,主要影响动态引入的 `pages` 的存放路径。
+
+### h5.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 ts-loader 的例子,但事实上 taro 是默认支持 ts 的,并不需要这样做。
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /.tsx?/,
+ use: [{
+ loader: 'ts-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### [DEPRECATED]h5.webpack
+
+自定义 Webpack 配置。这个配置项支持两种形式的配置:
+
+1. 如果该配置项以**对象**的形态呈现,Taro 将会使用 `webpack-merge` 将这个对象合并到默认的配置项中。
+例子:
+
+```jsx
+webpack: {
+ resolve: {
+ alias: {
+ 'test': './test'
+ }
+ }
+}
+```
+
+2. 如果该配置以**函数**的形态呈现,那这个函数将会接收到两个参数:默认配置(defaultConfig)和 Webpack 实例(webpack)。Taro 将会以该函数的返回值作为最终的 Webpack 配置。
+
+例子:
+
+```jsx
+webpack (defaultConfig, webpack) {
+ defaultConfig.plugins.push(
+ new webpack.EnvironmentPlugin(['NODE_ENV'])
+ )
+ return defaultConfig
+}
+```
+
+### h5.router
+
+路由相关的配置,支持路由模式、路由基准路径以及自定义路由的配置。
+
+#### h5.router.mode
+
+路由模式配置。配置值为 `hash`(默认值)或 `browser`,分别对应 hash 路由模式和浏览器 history 路由模式。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ mode: 'hash' // 或者是 'browser'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/pages/index/index`(hash 模式)或者 `http://{{domain}}/pages/index/index`(browser 模式)。
+
+#### h5.router.basename
+
+路由基准路径的配置,配置值为 `string` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ basename: '/myapp'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/myapp/pages/index/index`(hash 模式)或者 `http://{{domain}}/myapp/pages/index/index`(browser 模式)。
+
+#### h5.router.customRoutes
+
+自定义路由的配置,配置值为 `{ [key: string]: string }` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ customRoutes: {
+ '/pages/index/index': '/index'
+ }
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/index`(hash 模式)或者 `http://{{domain}}/myapp/index`(browser 模式)。
+
+### h5.entry
+
+Taro app 的入口,同 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。
+
+```jsx
+{
+ entry: {
+ home: ['./home.js'],
+ about: ['./about.js'],
+ contact: ['./contact.js']
+ }
+}
+```
+
+### h5.enableSourceMap
+
+sourceMap 开关,影响 js、css 的 sourceMap 配置。
+dev 状态默认 **开**,prod 状态默认 **关**。
+
+### h5.sourceMapType
+sourceMap格式, 默认cheap-module-eval-source-map。[具体配置](https://webpack.js.org/configuration/devtool/#devtool)
+
+### h5.enableDll
+
+dll 开关,开启后将使用 `dllPlugin` 把内置的部分依赖库打包为单独的 dll 文件,
+某种程度上可以减少首屏单个文件体积。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.dllWebpackChain
+
+同 `h5.webpackChain`,不过作用于 dll。
+
+### h5.dllEntry
+
+dll编译过程的 `entry` 配置项,决定了 dll 文件的内容,可参考 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。默认值:
+
+```js
+h5: {
+ /* 其他配置 */
+ ...,
+ dllEntry: {
+ lib: ['nervjs', '@tarojs/taro-h5', '@tarojs/router', '@tarojs/components']
+ }
+}
+```
+
+### h5.enableExtract
+
+extract 功能开关,开启后将使用 `mini-css-extract-plugin` 分离 css 文件,
+可通过 `h5.miniCssExtractPluginOption` 对插件进行配置。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.esnextModules
+
+配置需要额外的编译的源码模块,比如 [taro-ui](https://github.com/NervJS/taro-ui):
+
+```javascript
+h5: {
+ // 经过这一配置之后,代码中引入的处于 `node_modules/taro-ui/` 路径下的源码文件均会经过taro的编译处理。
+ esnextModules: ['taro-ui'],
+ ...
+}
+```
+
+### h5.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### h5.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### h5.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### h5.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### h5.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### h5.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### h5.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: 'css/[name].css',
+ chunkFilename: 'css/[id].css'
+ }
+}
+```
+
+### h5.postcss
+
+配置 H5 的 `postcss` 插件。
+
+#### h5.postcss.autoprefixer
+
+可以进行 `autoprefixer` 的配置。配置项参考[官方文档](https://github.com/postcss/autoprefixer),例如:
+
+```jsx
+postcss: {
+ autoprefixer: {
+ enable: true,
+ config: {
+ /* autoprefixer 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.pxtransform
+
+可以进行 `pxtransform` 的配置。配置项参考[官方文档](https://github.com/Pines-Cheng/postcss-pxtransform/),例如:
+
+```jsx
+postcss: {
+ pxtransform: {
+ enable: true,
+ config: {
+ /* pxtransform 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.cssModules
+
+可以进行 H5 端 CSS Modules 配置,配置如下:
+
+```js
+postcss: {
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module',
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.4/README.md b/website/versioned_docs/version-2.0.0-beta.4/README.md
new file mode 100644
index 000000000000..e89f7c58adc8
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.4/README.md
@@ -0,0 +1,144 @@
+---
+title: Taro 介绍
+id: version-2.0.0-beta.4-README
+original_id: README
+---
+
+> 这是 Taro 2.x 版本的文档,若要查看 1.x 版本的文档,请[点击这里选择版本](/taro/versions.html)。
+
+## 简介
+
+**Taro** 是一套遵循 [React](https://reactjs.org/) 语法规范的 **多端开发** 解决方案。
+
+现如今市面上端的形态多种多样,Web、React-Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。
+
+使用 **Taro**,我们可以只书写一套代码,再通过 **Taro** 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动/QQ小程序、快应用、H5、React-Native 等)运行的代码。
+
+## 特性
+
+#### React 语法风格
+
+**Taro** 遵循 [React](https://reactjs.org/) 语法规范,它采用与 React 一致的组件化思想,组件生命周期与 React 保持一致,同时支持使用 [JSX 语法](jsx.html),让代码具有更丰富的表现力,使用 **Taro** 进行开发可以获得和 React 一致的开发体验。
+
+代码示例
+
+```jsx
+import Taro, { Component } from '@tarojs/taro'
+import { View, Button } from '@tarojs/components'
+
+export default class Index extends Component {
+ constructor () {
+ super(...arguments)
+ this.state = {
+ title: '首页',
+ list: [1, 2, 3]
+ }
+ }
+
+ componentWillMount () {}
+
+ componentDidMount () {}
+
+ componentWillUpdate (nextProps, nextState) {}
+
+ componentDidUpdate (prevProps, prevState) {}
+
+ shouldComponentUpdate (nextProps, nextState) {
+ return true
+ }
+
+ add = (e) => {
+ // dosth
+ }
+
+ render () {
+ return (
+
+ {this.state.title}
+
+ {this.state.list.map(item => {
+ return (
+ {item}
+ )
+ })}
+
+
+
+ )
+ }
+}
+```
+
+> 由于微信小程序端的限制,有极少数 JSX 的优秀用法暂时不能得到很好地支持,同时,为了遵循 React 语法,Taro 在写法上也有一些自己的规范,具体可以参考:[Taro 开发最佳实践](best-practice.html) 。
+
+#### 快速开发微信小程序
+
+Taro 立足于微信小程序开发,众所周知小程序的开发体验并不是非常友好,比如小程序中无法使用 npm 来进行第三方库的管理,无法使用一些比较新的 ES 规范等等,针对小程序端的开发弊端,Taro 具有以下的优秀特性
+
+✅ 支持使用 npm/yarn 安装管理第三方依赖
+
+✅ 支持使用 ES7/ES8 甚至更新的 ES 规范,一切都可自行配置
+
+✅ 支持使用 CSS 预编译器,例如 Sass 等
+
+✅ 支持使用 Redux 进行状态管理
+
+✅ 支持使用 MobX 进行状态管理
+
+✅ 小程序 API 优化,异步 API Promise 化等等
+
+#### 支持多端开发转化
+
+Taro 方案的初心就是为了打造一个多端开发的解决方案。目前 Taro 代码可以支持转换到 **微信/百度/支付宝/字节跳动/QQ小程序** 、**快应用**、 **H5 端** 以及 **移动端(React Native)**。
+
+
+
+## 社区共享
+
+[Taro 交流社区——让每一次交流都被沉淀](https://taro-club.jd.com/) 如果您在此文档没有找到想要的答案,请移步[社区](https://taro-club.jd.com)提问,我们会在看到的第一时间给予答复。
+
+[Taro 物料市场——让每一个轮子产生价值](https://taro-ext.jd.com/) 如果您想找一些现成的物料,例如:模版、组件、SDK、UI,可以移步[物料市场](https://taro-ext.jd.com/)查找,也欢迎您发布物料与其他开发者共享。
+
+## Taro UI
+
+一款基于 `Taro` 框架开发的多端 UI 组件库。
+
+[Taro UI](https://taro-ui.jd.com) 特性:
+
+- 基于 `Taro` 开发 UI 组件
+- 一套组件可以在 `微信小程序`,`支付宝小程序`,`百度小程序`,`H5` 多端适配运行(`ReactNative` 端暂不支持)
+- 提供友好的 API,可灵活的使用组件
+
+## 使用案例
+
+Taro 已经投入了我们的生产环境中使用,业界也在广泛地使用 Taro 开发多端应用。
+
+> 社区案例仅收纳了开发者主动提交的案例
+
+![image](https://raw.githubusercontent.com/NervJS/taro-user-cases/master/user-cases.jpg)
+
+## 学习资源
+
+### 官方文章精选
+- [使用 React Hooks 重构你的小程序](https://aotu.io/notes/2019/07/10/taro-hooks/)
+- [Taro 1.3 震撼发布:全面支持 JSX 语法和 HOOKS](https://aotu.io/notes/2019/06/13/taro-1-3/)
+- [小程序框架全面测评](https://aotu.io/notes/2019/03/12/mini-program-framework-full-review/)
+- [Taro 在京东购物小程序上的实践](https://aotu.io/notes/2018/09/11/taro-in-jd/)
+- [用 React 开发小程序的探索之路 (演讲内容整理)| 掘金开发者大会](https://juejin.im/post/5ba346a7f265da0ad13b78bd)
+- [为何我们要用 React 来写小程序 - Taro 诞生记](https://aotu.io/notes/2018/06/25/the-birth-of-taro/)
+- [多端统一开发框架 - Taro介绍](https://aotu.io/notes/2018/06/07/Taro/)
+
+### 分享交流
+- [第十三届 D2 前端技术论坛——使用 Taro 快速构建多端应用](https://www.yuque.com/d2forum/content/d213#6a1363f4)
+- [WeGeek直播课:从0到1快速开发电商小程序](https://link.juejin.im/?target=https%3A%2F%2Fcloud.tencent.com%2Fedu%2Flearning%2Flive-1497)
+- [掘金开发者大会——用React开发小程序的探索之路](https://www.itdks.com/Course/detail?id=16289)
+
+### 其他
+更多文章教程、开源项目等,请参考:[awesome-taro](https://github.com/NervJS/awesome-taro)
+
+掘金小册:[Taro 多端开发实现原理与实战](https://juejin.im/book/5b73a131f265da28065fb1cd?referrer=5ba228f16fb9a05d3251492d)
+
+## 开发交流
+扫码添加 `凹凸实验室-小助手` ,回复 `Taro` 即可进群。(Taro 开发交流14群 已满)
+
+![image](https://user-images.githubusercontent.com/9441951/63744620-7994e800-c8d2-11e9-9e66-ab43d1d75fe8.png)
diff --git a/website/versioned_docs/version-2.0.0-beta.4/async-await.md b/website/versioned_docs/version-2.0.0-beta.4/async-await.md
new file mode 100644
index 000000000000..9c2250d842e6
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.4/async-await.md
@@ -0,0 +1,43 @@
+---
+title: 异步编程
+id: version-2.0.0-beta.4-async-await
+original_id: async-await
+---
+
+> Taro 2.x 版本中使用 `async-await` 不再需要 `@tarojs/async-await`。
+
+Taro 支持使用 `async functions` 来让开发者获得不错的异步编程体验,开启 `async functions` 支持需要安装包 `babel-plugin-transform-runtime` 和 `babel-runtime`。
+
+```bash
+$ yarn add babel-plugin-transform-runtime --dev
+$ yarn add babel-runtime
+```
+
+随后修改项目 [`babel` 配置](./config-detail.md#babel),增加插件 `babel-plugin-transform-runtime`。
+
+```js
+babel: {
+ sourceMap: true,
+ presets: [
+ [
+ 'env',
+ {
+ modules: false
+ }
+ ]
+ ],
+ plugins: [
+ 'transform-decorators-legacy',
+ 'transform-class-properties',
+ 'transform-object-rest-spread',
+ ['transform-runtime', {
+ "helpers": false,
+ "polyfill": false,
+ "regenerator": true,
+ "moduleName": 'babel-runtime'
+ }]
+ ]
+}
+```
+
+> 值得注意的事,使用 `async functions` 一定要记得按照[开发前注意](./before-dev-remind.md)中提示的内容进行操作,否则会出现报错
diff --git a/website/versioned_docs/version-2.0.0-beta.4/react-native.md b/website/versioned_docs/version-2.0.0-beta.4/react-native.md
new file mode 100644
index 000000000000..8fb20cf5c942
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.4/react-native.md
@@ -0,0 +1,776 @@
+---
+title: React Native 端开发流程
+id: version-2.0.0-beta.4-react-native
+original_id: react-native
+---
+
+> 本篇主要讲解 Taro React Native 端 环境安装-开发-调试-打包-发布 原理及流程,React Native 开发前注意事项请看 [开发前注意](./before-dev-remind.html)
+>
+> 适配 RN 端可参考项目:[首个 Taro 多端统一实例 - 网易严选(小程序 + H5 + React Native) - By 趣店 FED](https://github.com/js-newbee/taro-yanxuan)
+
+## 简介
+
+Taro 移动端的开发基于 Facebook 的开源项目 [React Native](https://github.com/facebook/react-native),目前是项目依赖中固定 React Native 版本为 `0.55.4`。
+
+整个 RN 端的开发流程如下:
+
+![image](http://assets.processon.com/chart_image/5c988481e4b01e76978bd6ab.png)
+
+首先在 Taro 项目里执行:`taro build --type rn --watch`,这个命令会将 Taro 代码编译为 React Native 代码(默认输出在 rn_temp 目录下),并启动 Metro Server(可以看成是 webpack run devserver --port 8081)打包 rn_temp 下的 js。
+
+然后进入 `taro-native-shell` 目录(建议和 Taro 项目平级),通过 `react-native run-android|ios`启动,或者通过对应的 Android Studio / Xcode 启动应用,启动后应用可以看成是一个浏览器,会从 8081 端口加载 js 并渲染。
+
+## 搭建 iOS 开发环境
+
+必须安装的依赖有:Node、Watchman 和 React Native 命令行工具以及 Xcode。
+
+虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然必须安装 Xcode 来获得编译 iOS 应用所需的工具和环境。
+
+### Node, Watchman
+我们推荐使用 [Homebrew](http://brew.sh/) 来安装 Node 和 Watchman。在命令行中执行下列命令安装:
+
+```sh
+brew install node
+brew install watchman
+```
+
+如果你已经安装了 Node,请检查其版本是否在 v8.3 以上。安装完 Node 后建议设置 npm 镜像以加速后面的过程(或使用科学上网工具)。
+
+> 注意:不要使用 cnpm!cnpm 安装的模块路径比较奇怪,packager 不能正常识别!
+
+设置 npm 镜像:
+```
+npm config set registry https://registry.npm.taobao.org --global
+npm config set disturl https://npm.taobao.org/dist --global
+```
+
+或者使用 [nrm](https://github.com/Pana/nrm):
+
+```sh
+$ nrm ls
+
+* npm ----- https://registry.npmjs.org/
+ cnpm ---- http://r.cnpmjs.org/
+ taobao -- https://registry.npm.taobao.org/
+ nj ------ https://registry.nodejitsu.com/
+ skimdb -- https://skimdb.npmjs.com/registry
+
+```
+
+```sh
+$ nrm use cnpm //switch registry to cnpm
+
+ Registry has been set to: http://r.cnpmjs.org/
+```
+
+[Watchman](https://facebook.github.io/watchman) 则是由 Facebook 提供的监视文件系统变更的工具。安装此工具可以提高开发时的性能(packager 可以快速捕捉文件的变化从而实现实时刷新)。
+
+### Yarn、React Native 的命令行工具(react-native-cli)
+Yarn 是 Facebook 提供的替代 npm 的工具,可以加速 node 模块的下载。React Native 的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务。
+
+```sh
+npm install -g yarn react-native-cli
+```
+
+安装完 yarn 后同理也要设置镜像源:
+
+```sh
+yarn config set registry https://registry.npm.taobao.org --global
+yarn config set disturl https://npm.taobao.org/dist --global
+```
+
+安装完 yarn 之后就可以用 yarn 代替 npm 了,例如用 yarn 代替 npm install 命令,用 yarn add 某第三方库名代替 npm install 某第三方库名。
+
+### Xcode
+React Native 目前需要 [Xcode](https://developer.apple.com/xcode/downloads/) 9.4 或更高版本。你可以通过 App Store 或是到 [Apple 开发者官网](https://developer.apple.com/xcode/downloads/) 上下载。这一步骤会同时安装 Xcode IDE、Xcode 的命令行工具和 iOS 模拟器。
+
+Xcode 的命令行工具
+
+启动 Xcode,并在 `Xcode | Preferences | Locations` 菜单中检查一下是否装有某个版本的 `Command Line Tools`。Xcode 的命令行工具中包含一些必须的工具,比如 `git` 等。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedXcodeCommandLineTools.png)
+
+
+## 搭建 Android 开发环境
+
+### 安装依赖
+必须安装的依赖有:Node、Watchman 和 React Native 命令行工具以及 JDK 和 Android Studio。
+
+虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然必须安装 Android Studio 来获得编译 Android 应用所需的工具和环境。
+
+### Java Development Kit
+React Native 需要 Java Development Kit [JDK] 1.8(暂不支持 1.9 及更高版本)。你可以在命令行中输入
+
+> javac -version来查看你当前安装的 JDK 版本。如果版本不合要求,则可以到 官网上下载。
+
+### Android 开发环境
+如果你之前没有接触过 Android 的开发环境,那么请做好心理准备,这一过程相当繁琐。请 `万分仔细`地阅读下面的说明,严格对照文档进行配置操作。
+
+> 注:请注意!!!国内用户必须必须必须有稳定的翻墙工具,否则在下载、安装、配置过程中会不断遭遇链接超时或断开,无法进行开发工作。某些翻墙工具可能只提供浏览器的代理功能,或只针对特定网站代理等等,请自行研究配置或更换其他软件。总之如果报错中出现有网址,那么 99% 就是无法正常翻墙。
+
+> 如果是 socks5 代理 ,如下这样设置其实并没有什么卵用
+
+```
+#systemProp.socks.proxyHost=127.0.0.1
+#systemProp.socks.proxyPort=8016
+
+#systemProp.https.proxyHost=127.0.0.1
+#systemProp.https.proxyPort=8016
+
+#systemProp.https.proxyHost=socks5://127.0.0.1
+#systemProp.https.proxyPort=8016
+```
+
+> 正确设置方法应该是这样:
+org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8016
+
+> 修改 $HOME/.gradle/gradle.properties 文件,加入上面那句,这样就可以全局开启 gradle 代理
+
+
+#### 1. 安装 Android Studio
+
+[首先下载和安装 Android Studio](https://developer.android.com/studio/index.html),国内用户可能无法打开官方链接,请自行使用搜索引擎搜索可用的下载链接。安装界面中选择"Custom"选项,确保选中了以下几项:
+
+- Android SDK
+- Android SDK Platform
+- Performance (Intel ® HAXM) ([AMD 处理器看这里](https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html))
+- Android Virtual Device
+
+然后点击"Next"来安装选中的组件。
+
+> 如果选择框是灰的,你也可以先跳过,稍后再来安装这些组件。
+
+安装完成后,看到欢迎界面时,就可以进行下面的操作了。
+
+#### 2. 安装 Android SDK
+Android Studio 默认会安装最新版本的 Android SDK。目前编译 React Native 应用需要的是 `Android 6.0 (Marshmallow)` 版本的 SDK(注意 SDK 版本不等于终端系统版本,RN 目前支持 android 4.1 以上设备)。你可以在 Android Studio 的 SDK Manager 中选择安装各版本的 SDK。
+
+你可以在 Android Studio 的欢迎界面中找到 SDK Manager。点击 "Configure",然后就能看到 "SDK Manager"。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidStudioWelcomeMacOS.png)
+
+> SDK Manager 还可以在 Android Studio 的 "Preferences" 菜单中找到。具体路径是 `Appearance & Behavior → System Settings → Android SDK`。
+
+在 SDK Manager 中选择 "SDK Platforms"选项卡,然后在右下角勾选 "Show Package Details"。展开 `Android 6.0 (Marshmallow)` 选项,确保勾选了下面这些组件(重申你必须使用稳定的翻墙工具,否则可能都看不到这个界面):
+
+- `Android SDK Platform 28`
+- `Intel x86 Atom_64 System Image`(官方模拟器镜像文件,使用非官方模拟器不需要安装此组件)
+
+然后点击"SDK Tools"选项卡,同样勾中右下角的"Show Package Details"。展开"Android SDK Build-Tools"选项,确保选中了 React Native 所必须的 `23.0.1` 版本。你可以同时安装多个其他版本,然后还要勾选最底部的 `Android Support Repository`。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidSDKManagerSDKToolsMacOS.png)
+
+最后点击"Apply"来下载和安装这些组件。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidSDKManagerInstallsMacOS.png)
+
+#### 3. 配置 ANDROID_HOME 环境变量
+React Native 需要通过环境变量来了解你的 Android SDK 装在什么路径,从而正常进行编译。
+
+具体的做法是把下面的命令加入到 `~/.bash_profile` 文件中:
+
+> ~表示用户目录,即/Users/你的用户名/,而小数点开头的文件在 Finder 中是隐藏的,并且这个文件有可能并不存在。可在终端下使用vi ~/.bash_profile命令创建或编辑。如不熟悉 vi 操作,请点击 [这里](http://www.eepw.com.cn/article/48018.htm) 学习。
+
+```sh
+# 如果你不是通过Android Studio安装的sdk,则其路径可能不同,请自行确定清楚。
+export ANDROID_HOME=$HOME/Library/Android/sdk
+export PATH=$PATH:$ANDROID_HOME/tools
+export PATH=$PATH:$ANDROID_HOME/platform-tools
+```
+
+> 如果你的命令行不是 bash,而是例如 zsh 等其他,请使用对应的配置文件。
+
+使用 `source $HOME/.bash_profile` 命令来使环境变量设置立即生效(否则重启后才生效)。可以使用 `echo $ANDROID_HOME` 检查此变量是否已正确设置。
+
+> 请确保你正常指定了 Android SDK 路径。你可以在 Android Studio 的 "Preferences" 菜单中查看 SDK 的真实路径,具体是`Appearance & Behavior → System Settings → Android SDK`。
+
+
+### 准备 Android 设备
+你需要准备一台 Android 设备来运行 React Native Android 应用。这里所指的设备既可以是真机,也可以是模拟器。Android 官方提供了名为 Android Virtual Device(简称 AVD)的模拟器。此外还有很多第三方提供的模拟器如 [Genymotion](https://www.genymotion.com/download)、BlueStack 等。一般来说官方模拟器免费、功能完整,但性能较差。第三方模拟器性能较好,但可能需要付费,或带有广告。
+
+#### 使用 Android 真机
+你也可以使用 Android 真机来代替模拟器进行开发,只需用 usb 数据线连接到电脑,然后遵照 [在设备上运行](https://reactnative.cn/docs/0.55/running-on-device) 这篇文档的说明操作即可。
+
+#### 使用 Android 模拟器
+你可以在 Android Studi 打开 "AVD Manager" 来查看可用的虚拟设备,它的图标看起来像下面这样:
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAndroidStudioAVD.png)
+
+如果你刚刚才安装 Android Studio,那么可能需要先 [创建一个虚拟设备](https://developer.android.com/studio/run/managing-avds.html)。点击"Create Virtual Device...",然后选择所需的设备类型并点击"Next"。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedCreateAVDMacOS.png)
+
+选择 "x86 Images" 选项卡,这里可以看到你之前已安装过的镜像文件。必须先安装镜像文件才能创建对应的虚拟设备。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedCreateAVDx86MacOS.png)
+
+> 如果你还没有安装 HAXM(Intel 虚拟硬件加速驱动),则先按 [这篇文档](https://software.intel.com/en-us/android/articles/installation-instructions-for-intel-hardware-accelerated-execution-manager-mac-os-x) 说明来进行安装。
+
+![image](https://reactnative.cn/docs/assets/GettingStartedAVDManagerMacOS.png)
+
+然后点击 "Next" 和 "Finish" 来完成虚拟设备的创建。
+
+## 开发
+
+### 编译
+
+RN 编译预览模式:
+
+```shell
+# yarn
+$ yarn dev:rn
+# npm script
+$ npm run dev:rn
+# 仅限全局安装
+$ taro build --type rn --watch
+# npx 用户也可以使用
+$ npx taro build --type rn --watch
+```
+
+Taro 将会开始编译文件:
+
+```sh
+➜ taro-demo git:(master) ✗ taro build --type rn --watch
+👽 Taro v1.2.20
+
+开始编译项目 taro-demo
+编译 JS /Users/chengshuai/Taro/taro-demo/src/app.js
+编译 SCSS /Users/chengshuai/Taro/taro-demo/src/app.scss
+拷贝 HTML /Users/chengshuai/Taro/taro-demo/src/index.html
+生成 生成文件 /Users/chengshuai/Taro/taro-demo/rn_temp/app_styles.js
+编译 JS /Users/chengshuai/Taro/taro-demo/src/pages/index/index.js
+编译 SCSS /Users/chengshuai/Taro/taro-demo/src/pages/index/index.scss
+生成 index.js /Users/chengshuai/Taro/taro-demo/rn_temp/index.js
+生成 app.json /Users/chengshuai/Taro/taro-demo/rn_temp/app.json
+生成 package.json /Users/chengshuai/Taro/taro-demo/rn_temp/package.json
+编译 编译完成,花费2504 ms
+生成 生成文件 /Users/chengshuai/Taro/taro-demo/rn_temp/pages/index/index_styles.js
+
+初始化完毕,监听文件修改中...
+
+```
+
+编译后的代码及应用文件在根目录的 `rn_temp` 目录下,常见的工程目录结构如下:
+
+```shell
+rn_temp
+├── app.js
+├── app.json
+├── app_styles.js
+├── index.html
+├── index.js
+├── package-lock.json
+├── package.json
+├── pages
+│ └── index
+│ ├── component.js
+│ ├── index.js
+│ └── index_styles.js
+├── bundle
+│ ├── assets
+│ ├── index.bundle
+│ └── index.bundle.meta
+└── yarn.lock
+```
+其中关键文件及目录如下:
+
+- app.json React Native 应用的配置,从 `config.rn.appJson` 中获取
+- bundle:实时编译的 jsbundle 临时文件
+
+如果编译没有报错,会自动打开一个终端,并在 8081 端口启动 [Metro](https://github.com/facebook/metro) Bundler 负责打包 jsbundle:
+
+![image](https://user-images.githubusercontent.com/9441951/59322399-85780180-8d08-11e9-9ea7-b3e4b23c077c.png)
+
+> 注意:少数电脑上,可能不会 `自动打开一个终端`,这时你可以在项目根目录下运行:`react-native start` 手动启动。
+
+这时,在浏览器输入 http://127.0.0.1:8081,可以看到如下页面:
+![image](https://user-images.githubusercontent.com/9441951/55865494-13245d00-5bb1-11e9-9a97-8a785a83b584.png)
+
+输入 http://127.0.0.1:8081/rn_temp/index.bundle?platform=ios&dev=true 会触发对应终端平台的 js bundle 构建。
+
+![image](https://user-images.githubusercontent.com/9441951/55865039-37336e80-5bb0-11e9-8aca-c121be4542f6.png)
+
+构建完成后,浏览器会显示构建后的 js 代码。
+
+> Note:进入下一步之前请确保 Metro Bundler Server 正常启动,即浏览器能正常访问访问 jsbundle。
+
+
+### 启动应用
+如果上一步的编译和 Metro Bundler Server 启动没问题,接下来就可以启动应用了。
+
+开发者可以自行[整合 React Native (0.55.4) 到原生应用](https://reactnative.cn/docs/0.55/integration-with-existing-apps/),同时为了方便大家开发和整合,Taro 将 React Native 工程中原生的部分剥离出来,单独放在一个工程里面 [NervJS/taro-native-shell](https://github.com/NervJS/taro-native-shell),你可以把它看成是 React Native iOS/Android 空应用的壳子。
+
+首先将应用代码 clone 下来:
+
+```
+git clone git@github.com:NervJS/taro-native-shell.git
+```
+然后 `cd taro-native-shell`,使用 yarn 或者 npm install 安装依赖。
+
+> 注意 `taro-native-shell` 工程和 Taro 工程最好独立存放,不要嵌套,否则会报:`multi react-native ` 错误
+
+工程目录如下:
+
+```sh
+➜ taro-native-shell git:(master) ✗ tree -L 1
+.
+├── LICENSE
+├── README.md
+├── android // Android 工程目录
+├── ios // iOS 工程目录
+├── node_modules
+├── package.json
+└── yarn.lock
+```
+
+
+### iOS
+#### 使用 React Native 命令启动
+
+```sh
+$ react-native run-ios
+```
+
+iOS 模拟器会自行启动,并访问 8081 端口获取 js bundle,这时 Metro Bundler 终端会打印以下内容:
+
+```sh
+ BUNDLE [ios, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.
+```
+
+#### 使用 Xcode 启动
+iOS 的启动比较简单,使用 Xcode 打开 ios 目录,然后点击 Run 按钮就行。
+
+![image](https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Art/XC_O_SchemeMenuWithCallouts_2x.png)
+
+这里需要注意的是 jsBundle 的 moduleName,默认的 moduleName 为 "taroDemo",需要和 `rn_temp/app.json` 里面的 name 字段保持一致。该配置在 `AppDelegate.m` 文件中。
+
+```objc
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ NSURL *jsCodeLocation;
+
+ jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"rn_temp/index" fallbackResource:nil];
+
+ RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
+ moduleName:@"taroDemo"
+ initialProperties:nil
+ launchOptions:launchOptions];
+ rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
+
+ self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
+ UIViewController *rootViewController = [UIViewController new];
+ rootViewController.view = rootView;
+ self.window.rootViewController = rootViewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+@end
+```
+
+app.json 字段的配置默认取自于 package.json 的 name 字段,除非你在 rn -> appJson 里面有配置。
+
+更多资料,可以查看 Xcode 文档:[Building Your App](https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/BuildingYourApp.html)
+
+### Android
+在 taro-native-shell/android 目录下,你就可以看到 React Native 的工程代码。
+
+#### 使用 React Native 命令启动
+
+```sh
+$ react-native run-android
+```
+
+Android 模拟器会自行启动,并访问 8081 端口获取 js bundle,这时 Metro Bundler 终端会打印一下内容:
+
+```sh
+ BUNDLE [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.
+```
+
+
+#### 在真实设备上运行
+
+按照以下步骤设置您的设备:
+
+1. 使用一根 USB 电缆将您的设备连接到您的开发机器。如果您是在 Windows 上开发,可能需要为您的设备 [安装相应的 USB 驱动程序](https://developer.android.com/studio/run/oem-usb.html?hl=zh-cn)。
+2. 按照以下步骤操作,在 Developer options 中启用 USB debugging。
+首先,您必须启用开发者选项:
+
+ 1. 打开 Settings 应用。
+ 2. (仅在 Android 8.0 或更高版本上)选择 System。
+ 3. 滚动到底部,然后选择 About phone。
+ 4. 滚动到底部,点按 Build number 7 次。
+ 5. 返回上一屏幕,在底部附近可找到 Developer options。
+打开 Developer options,然后向下滚动以找到并启用 USB debugging。
+
+按照以下步骤操作,在您的设备上运行应用:
+
+1. 在 Android Studio 中,点击 Project 窗口中的 app 模块,然后选择 Run > Run(或点击工具栏中的 Run )。
+
+![image](https://sdtimes.com/wp-content/uploads/2016/04/0408.sdt-androidstudio.png)
+
+2. 在 Select Deployment Target 窗口中,选择您的设备,然后点击 OK。
+
+![image](https://developer.android.com/training/basics/firstapp/images/run-device_2x.png?hl=zh-cn)
+
+Android Studio 会在您连接的设备上安装并启动应用。
+
+### 在模拟器上运行
+按照以下步骤操作,在模拟器上运行应用:
+
+1. 在 Android Studio 中,点击 Project 窗口中的 app 模块,然后选择 Run > Run(或点击工具栏中的 Run )。
+2. 在 Select Deployment Target 窗口中,点击 Create New Virtual Device。
+
+![image](https://developer.android.com/training/basics/firstapp/images/run-avd_2x.png?hl=zh-cn)
+
+3. 在 Select Hardware 屏幕中,选择电话设备(如 Pixel),然后点击 Next。
+4. 在 System Image 屏幕中,选择具有最高 API 级别的版本。如果您未安装该版本,将显示一个 Download 链接,因此,请点击该链接并完成下载。
+5. 点击 Next。
+6. 在 Android Virtual Device (AVD) 屏幕上,保留所有设置不变,然后点击 Finish。
+7. 返回到 Select Deployment Target 对话框中,选择您刚刚创建的设备,然后点击 OK。
+
+Android Studio 会在模拟器上安装并启动应用。
+
+#### Module Name
+
+同样,Android 这边默认的 jsBundle moduleName 也是 “taroDemo”,位于 `MainActivity.java` 的文件里面:
+
+```java
+package com.tarodemo;
+
+import com.facebook.react.ReactActivity;
+
+public class MainActivity extends ReactActivity {
+
+ /**
+ * Returns the name of the main component registered from JavaScript.
+ * This is used to schedule rendering of the component.
+ */
+ @Override
+ protected String getMainComponentName() {
+ return "taroDemo";
+ }
+}
+
+```
+
+你可以根据实际情况自行修改。
+
+## 调试
+
+更多资料可以查看 [React Native 调试](https://reactnative.cn/docs/debugging.html)。
+
+### 开发者菜单
+
+React Native 在 iOS 模拟器上支持一些快捷键操作,具体会在下文中描述。要使用快捷键请务必确保模拟器的 Hardware 菜单中,Keyboard 选项下的"Connect Hardware Keyboard"处于开启状态,否则按键是没有响应的。
+
+你可以通过摇晃设备或是选择 iOS 模拟器的 "Hardware" 菜单中的 "Shake Gesture" 选项来打开开发菜单。另外,如果是在 iOS 模拟器中运行,还可以按下 `Command⌘ + D` 快捷键,Android 模拟器对应的则是 `Command⌘ + M`(windows 上可能是 F1 或者 F2),或是直接在命令行中运行 `adb shell input keyevent 82` 来发送菜单键命令。
+
+![image](https://reactnative.cn/docs/assets/DeveloperMenu.png)
+
+> 在发布(production)版本中开发者菜单将无法使用。
+
+### 刷新 JavaScript
+传统的原生应用开发中,每一次修改都需要重新编译,但在 RN 中你只需要刷新一下 JavaScript 代码,就能立刻看到变化。具体的操作就是在开发菜单中点击 "Reload" 选项。也可以在 iOS 模拟器中按下 `Command⌘ + R `,Android 模拟器上对应的则是 `按两下R`。
+
+#### 自动刷新
+选择开发菜单中的 "Enable Live Reload" 可以开启自动刷新,这样可以节省你开发中的时间。
+
+更神奇的是,你还可以保持应用的当前运行状态,修改后的 JavaScript 文件会自动注入进来(就好比行驶中的汽车不用停下就能更换新的轮胎)。要实现这一特性只需开启开发菜单中的 [Hot Reloading](https://facebook.github.io/react-native/blog/2016/03/24/introducing-hot-reloading.html) 选项。
+
+> 某些情况下 hot reload 并不能顺利实施。如果碰到任何界面刷新上的问题,请尝试手动完全刷新。
+
+但有些时候你必须要重新编译应用才能使修改生效:
+
+- 增加了新的资源(比如给 iOS 的Images.xcassets或是 Andorid 的res/drawable文件夹添加了图片)
+- 更改了任何的原生代码(objective-c/swift/java)
+
+### 应用内的错误与警告提示(红屏和黄屏)
+红屏或黄屏提示都只会在开发版本中显示,正式的离线包中是不会显示的。
+
+### 红屏错误
+应用内的报错会以全屏红色显示在应用中(调试模式下),我们称为红屏(red box)报错。你可以使用console.error()来手动触发红屏错误。
+
+### 黄屏警告
+应用内的警告会以全屏黄色显示在应用中(调试模式下),我们称为黄屏(yellow box)报错。点击警告可以查看详情或是忽略掉。和红屏报警类似,你可以使用 `console.warn()` 来手动触发黄屏警告。在默认情况下,开发模式中启用了黄屏警告。可以通过以下代码关闭:
+
+```js
+console.disableYellowBox = true;
+console.warn('YellowBox is disabled.');
+```
+
+你也可以通过代码屏蔽指定的警告,像下面这样调用 ignoreWarnings 方法,参数为一个数组:
+
+```
+import {YellowBox} from 'react-native';
+YellowBox.ignoreWarnings(['Warning: ...']);
+```
+
+在 CI/Xcode 中,黄屏警告还可以通过设置 `IS_TESTING` 环境变量来控制启用与否。
+
+> 红屏错误和黄屏警告在发布版(release/production)中都是自动禁用的。
+
+### Chrome 开发者工具
+在开发者菜单中选择 "Debug JS Remotely" 选项,即可以开始在 Chrome 中调试 JavaScript 代码。点击这个选项的同时会自动打开调试页面 http://localhost:8081/debugger-ui.(如果地址栏打开的是 ip 地址,则请自行改为 localhost)
+
+在 Chrome 的菜单中选择 `Tools → Developer Tools` 可以打开开发者工具,也可以通过键盘快捷键来打开(Mac 上是 `Command⌘ + Option⌥ + I`,Windows 上是 `Ctrl + Shift + I或是 F12`)。打开有 [异常时暂停(Pause On Caught Exceptions)](http://stackoverflow.com/questions/2233339/javascript-is-there-a-way-to-get-chrome-to-break-on-all-errors/17324511#17324511) 选项,能够获得更好的开发体验。
+
+> 注意:Chrome 中并不能直接看到 App 的用户界面,而只能提供 console 的输出,以及在 sources 项中断点调试 js 脚本。一些老的教程和文章会提到 React 的 Chrome 插件,这一插件目前并不支持 React Native,而且调试本身并不需要这个插件。不过你可以安装独立(非插件)版本的 React Developer Tools 来辅助查看界面布局,下文会讲述具体安装方法。
+
+> 注意:使用 Chrome 调试目前无法观测到 React Native 中的网络请求,你可以使用功能更强大的第三方的 [react-native-debugger](https://github.com/jhen0409/react-native-debugger)来进行观测。
+
+### 使用自定义的 JavaScript 调试器来调试
+如果想用其他的 JavaScript 调试器来代替 Chrome,可以设置一个名为 `REACT_DEBUGGER` 的环境变量,其值为启动自定义调试器的命令。调试的流程依然是从开发者菜单中的 "Debug JS Remotely" 选项开始。
+
+被指定的调试器需要知道项目所在的目录(可以一次传递多个目录参数,以空格隔开)。例如,如果你设定了 `REACT_DEBUGGER="node /某个路径/launchDebugger.js --port 2345 --type ReactNative"`,那么启动调试器的命令就应该是 `node /某个路径/launchDebugger.js --port 2345 --type ReactNative /某个路径/你的RN项目目录`。
+
+> 以这种方式执行的调试器最好是一个短进程(short-lived processes),同时最好也不要有超过 200k 的文字输出。
+
+### 使用 Chrome 开发者工具来在设备上调试
+> If you're using Create React Native App, this is configured for you already.
+
+对于 iOS 真机来说,需要打开 RCTWebSocketExecutor.m 文件,然后将其中的 "localhost" 改为你的电脑的 IP 地址,最后启用开发者菜单中的 "Debug JS Remotely" 选项。
+
+对于 Android 5.0+设备(包括模拟器)来说,将设备通过 USB 连接到电脑上后,可以使用adb命令行工具来设定从设备到电脑的端口转发:
+
+```sh
+adb reverse tcp:8081 tcp:8081
+```
+
+如果设备 Android 版本在 5.0 以下,则可以在开发者菜单中选择"Dev Settings - Debug server host for device",然后在其中填入电脑的”IP 地址:端口“。
+
+如果在 Chrome 调试时遇到一些问题,那有可能是某些 Chrome 的插件引起的。试着禁用所有的插件,然后逐个启用,以确定是否某个插件影响到了调试。
+
+### 使用 React Developer Tools 调试
+You can use [the standalone version of React Developer Tools](https://github.com/facebook/react-devtools/tree/master/packages/react-devtools) to debug the React component hierarchy. To use it, install the react-devtools package globally:
+
+```sh
+npm install -g react-devtools
+```
+
+> 译注:react-devtools 依赖于 electron,而 electron 需要到国外服务器下载二进制包,所以国内用户这一步很可能会卡住。此时请在环境变量中添加 electron 专用的国内镜像源:ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/",然后再尝试安装 react-devtools。
+
+安装完成后在命令行中执行 `react-devtools` 即可启动此工具:
+
+```sh
+react-devtools
+```
+
+![image](https://reactnative.cn/docs/assets/ReactDevTools.png)
+
+It should connect to your simulator within a few seconds.
+
+> Note: if you prefer to avoid global installations, you can add react-devtools as a project dependency. Add the react-devtools package to your project using npm install --save-dev react-devtools, then add "react-devtools": "react-devtools" to the scripts section in your package.json, and then run npm run react-devtools from your project folder to open the DevTools.
+
+#### Integration with React Native Inspector
+Open the in-app developer menu and choose "Show Inspector". It will bring up an overlay that lets you tap on any UI element and see information about it:
+
+![image](https://reactnative.cn/docs/assets/Inspector.gif)
+
+However, when `react-devtools` is running, Inspector will enter a special collapsed mode, and instead use the DevTools as primary UI. In this mode, clicking on something in the simulator will bring up the relevant components in the DevTools:
+
+![image](https://reactnative.cn/docs/assets/ReactDevToolsInspector.gif)
+
+You can choose "Hide Inspector" in the same menu to exit this mode.
+
+#### Inspecting Component Instances
+
+When debugging JavaScript in Chrome, you can inspect the props and state of the React components in the browser console.
+
+First, follow the instructions for debugging in Chrome to open the Chrome console.
+
+Make sure that the dropdown in the top left corner of the Chrome console says `debuggerWorker.js`. This step is essential.
+
+Then select a React component in React DevTools. There is a search box at the top that helps you find one by name. As soon as you select it, it will be available as `$r` in the Chrome console, letting you inspect its props, state, and instance properties.
+
+![image](https://reactnative.cn/docs/assets/ReactDevToolsDollarR.gif)
+
+### 使用 React Native Debugger 调试
+
+[React Native Debugger ](https://github.com/jhen0409/react-native-debugger),一个基于 React Native 官方调试方式、包含 React Inspector / Redux DevTools 独立应用:
+
+- 基于官方的 [Remote Debugger](https://facebook.github.io/react-native/docs/debugging.html#chrome-developer-tools) 且提供了更为丰富的功能
+- 包含 [`react-devtools-core`](https://github.com/facebook/react-devtools/tree/master/packages/react-devtools-core) 的 [React Inspector](https://github.com/jhen0409/react-native-debugger/blob/master/docs/react-devtools-integration.md)
+- 包含 Redux DevTools,且与 [`redux-devtools-extension`](https://github.com/zalmoxisus/redux-devtools-extension) 保持 [API](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md) 一致
+
+![image](https://user-images.githubusercontent.com/3001525/29451479-6621bf1a-83c8-11e7-8ebb-b4e98b1af91c.png)
+
+#### 安装
+
+不同平台及版本的安装包,请点击[这里](https://github.com/jhen0409/react-native-debugger/releases)。
+
+**macOS** 平台可以使用 [Homebrew Cask](https://caskroom.github.io/) 安装:
+
+```sh
+$ brew update && brew cask install react-native-debugger
+```
+
+#### 启动
+
+在启动 React Native Debugger 之前,请先确认以下内容:
+
+- 所有的 React Native 的 debugger 客户端已关闭,特别是 `http://localhost:/debugger-ui`
+- React Native Debugger 会尝试连接 debugger 代理, React Native 默认使用 `8081` 端口, 你可以新建一个 debugger 窗口 (macOS: `Command + T`,Linux/Windows: `Ctrl + T`) 开定义端口
+- 保证 [developer menu](https://facebook.github.io/react-native/docs/debugging.html#accessing-the-in-app-developer-menu) 的 `Debug JS Remotely` 处于开启状态
+
+你可以启动应用之后再修改端口,也可以直接通过命令行启动应用时指定端口:
+
+```sh
+$ open "rndebugger://set-debugger-loc?host=localhost&port=8081"
+```
+
+> 如果启动之后调试窗口空白,请确认调试端口正确。
+
+#### 使用 Redux DevTools Extension API
+
+Use the same API as [`redux-devtools-extension`](https://github.com/zalmoxisus/redux-devtools-extension#1-with-redux) is very simple:
+
+```jsx
+const store = createStore(
+ reducer, /* preloadedState, */
+ window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
+)
+```
+
+See [`Redux DevTools Integration`](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md) section for more information.
+
+#### 更多资料
+
+- [快速开始](https://github.com/jhen0409/react-native-debugger/blob/master/docs/getting-started.md)
+- [Debugger 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/debugger-integration.md)
+- [React DevTools 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/react-devtools-integration.md)
+- [Redux DevTools 整合](https://github.com/jhen0409/react-native-debugger/blob/master/docs/redux-devtools-integration.md)
+- [Shortcut references](https://github.com/jhen0409/react-native-debugger/blob/master/docs/shortcut-references.md)
+- [Network inspect of Chrome Developer Tools](https://github.com/jhen0409/react-native-debugger/blob/master/docs/network-inspect-of-chrome-devtools.md)
+- [Enable open in editor in console](https://github.com/jhen0409/react-native-debugger/blob/master/docs/enable-open-in-editor-in-console.md)
+- [Troubleshooting](https://github.com/jhen0409/react-native-debugger/blob/master/docs/troubleshooting.md)
+- [Contributing](https://github.com/jhen0409/react-native-debugger/blob/master/docs/contributing.md)
+
+## 使用原生模块
+有一些平台性的差异是 Taro 无法抹平的,比如支付、登录等,这时候就需要自己写跨端代码,RN 端这边可能还需要修改原生代码。
+
+例如登录的功能:
+
+![image](https://user-images.githubusercontent.com/9441951/56015544-ff513600-5d2b-11e9-92a6-ad01d21b2b8f.png)
+
+React Native 参考文档:[原生模块](https://reactnative.cn/docs/0.55/native-modules-ios/)
+
+## 集成到现有原生 app
+Taro 编译后的项目实际上就是一个 native React Native 项目,所以集成到现有原生 app 的流程和 React Native 也是一样的。
+
+如果你正准备从头开始制作一个新的应用,那么 React Native 会是个非常好的选择。但如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下。只需简单几步,你就可以给原有应用加上新的基于 React Native 的特性、画面和视图等。
+
+React Native 参考文档:[集成到现有原生应用](https://reactnative.cn/docs/0.55/integration-with-existing-apps/)
+
+## 构建独立 app
+
+接下来的步骤将会帮助你为 iOS 和 Android 创建 Expo 应用程序的独立二进制文件,并将其提交到 Apple App Store 和 Google Play Store。
+
+构建 iOS 独立应用程序需要 Apple Developer 帐户,但构建 Android 独立应用程序不需要 Google Play Developer 帐户。如果您想要提交到任一应用商店,您将需要该商店的开发者帐户。
+
+在打包发布步骤之前,我们先对开发者的源代码进行预处理,将 Taro 代码转成 React Native 代码:
+
+``` bash
+taro build --type rn
+```
+
+然后 `.rn_temp` 目录(如果你没有修改)下会生成转换后的 React Native 代码。
+
+### 配置 app.json
+
+在 config 目录配置,如:
+
+```json
+rn: {
+ appJson: {
+ "name": "Your App Name",
+ }
+}
+```
+
+Taro 会读取 appJson 字段的内容且自动覆盖到 .rn_temp/app.json。
+
+### 构建 app
+首先使用 React Native 的 bundle 命令将 rn_temp 目录下的 RN 代码及资源打包成 jsbundle,命令如下:
+
+```sh
+node ../node_modules/react-native/local-cli/cli.js bundle --entry-file ./rn_temp/index.js --bundle-output ./bundle/index.bundle --assets-dest ./${BUNDLE_DIR_NAME} --dev false
+```
+
+其中参数可以自行调整,`--bundle-output` 可以制定任意目录,然后将 bundle 目录下的文件 copy 到 `taro-native-shell`目录即可。
+
+当然,也可以通过指定 `--bundle-output` 直接打包到 `taro-native-shell`目录。
+
+接下来,按照 React Native 的文档按照不同的端分别打包对应的应用即可。
+
+#### iOS
+
+参考文档:[在设备上运行](https://reactnative.cn/docs/0.55/running-on-device/)
+
+#### Android
+参考文档:[打包APK](https://reactnative.cn/docs/0.55/signed-apk-android/)
+
+## 发布
+打包好的应用发布到 App Store 或各大应用商店可以查看官方文档。
+
+- [Overview of publishing an app](https://help.apple.com/app-store-connect/#/dev34e9bbb5a)
+- [Publish your app | Android Developers](https://developer.android.com/studio/publish)
+
+## 更新 React Native 版本
+Taro RN 版本暂时固定在 0.55.4 ,用户如有需求,可以自行升级到更高版本。步骤如下:
+
+1. 更新 Taro 项目中 `package.json` React Native 版本,并重新安装依赖
+2. 更新 `taro-native-shell` 项目中 `package.json` React Native 版本,并重新安装依赖
+3. 分别重新安装 `taro-native-shell` 项目中 ios/android 依赖,如 iOS:`cd ios && pod install`
+
+> 如果对 react 版本有要求,可以同步更新。
+
+## 常见错误
+
+### No bundle url present
+
+导致这个报错的原因很多,最常见的是电脑开了代理。具体可以参考 [#12754](https://github.com/facebook/react-native/issues/12754)
+
+### UnableToResolveError: Unable to resolve module `AccessibilityInfo`
+
+原因很多,我这边是重启电脑就好了😂。 具体可以查看 [#14209](https://github.com/facebook/react-native/issues/14209)
+
+### Metro Bundler error: Expected path […] to be relative to one of the project roots
+
+不支持 `npm link`,可以使用 [nicojs/node-install-local](https://github.com/nicojs/node-install-local) 替代。
+
+### Image component does not resolve images with filenames that include '@' symbol
+
+![image](https://user-images.githubusercontent.com/22125059/44312799-373dee80-a3d4-11e8-8367-9cf44e851739.PNG)
+
+React Native 不支持路径中带 @ 符号,具体可以查看 [#14980](https://github.com/facebook/react-native/issues/14980)。
+
+### The development server returned response error code 500
+
+![image](https://user-images.githubusercontent.com/25324938/41452372-42c1e766-708f-11e8-96ce-323eaa1eb03f.jpeg)
+多半是依赖的问题,进入 `.rn_temp/` 目录,然后删除 npm 依赖,在重新安装就可以了。
+也可以试一下以下命令:
+
+```shell
+watchman watch-del-all
+rm -rf node_modules && npm install
+rm -fr $TMPDIR/react-*
+```
+
+具体可以参考 [#1282](https://github.com/expo/expo/issues/1282)
+
+### app 加载阻塞: "Building JavaScript bundle... 100%"
+
+![image](https://user-images.githubusercontent.com/9441951/47762170-7bb00980-dcf6-11e8-95ab-41152076c3de.png)
+
+可能的原因很多,可以参考这个 issue:[react-community/create-react-native-app#392](https://github.com/react-community/create-react-native-app/issues/392)
+
+## 参考
+
+- [React Native 中文网](https://reactnative.cn/)
+- [Android 开发文档](https://developer.android.com/guide?hl=zh-cn)
+- [Android Studio 用户指南](https://developer.android.com/studio/intro?hl=zh-cn)
+- [Apple Developer Documentation](https://developer.apple.com/documentation/)
+- [React Native Debugger ](https://github.com/jhen0409/react-native-debugger)
diff --git a/website/versioned_docs/version-2.0.0-beta.4/size.md b/website/versioned_docs/version-2.0.0-beta.4/size.md
new file mode 100644
index 000000000000..317af0c39ebf
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.4/size.md
@@ -0,0 +1,172 @@
+---
+title: 设计稿及尺寸单位
+id: version-2.0.0-beta.4-size
+original_id: size
+---
+
+在 Taro 中尺寸单位建议使用 `px`、 `百分比 %`,Taro 默认会对所有单位进行转换。在 Taro 中书写尺寸按照 1:1 的关系来进行书写,即从设计稿上量的长度 `100px`,那么尺寸书写就是 `100px`,当转成微信小程序的时候,尺寸将默认转换为 `100rpx`,当转成 H5 时将默认转换为以 `rem` 为单位的值。
+
+如果你希望部分 `px` 单位不被转换成 `rpx` 或者 `rem` ,最简单的做法就是在 px 单位中增加一个大写字母,例如 `Px` 或者 `PX` 这样,则会被转换插件忽略。
+
+结合过往的开发经验,Taro 默认以 `750px` 作为换算尺寸标准,如果设计稿不是以 `750px` 为标准,则需要在项目配置 `config/index.js` 中进行设置,例如设计稿尺寸是 `640px`,则需要修改项目配置 `config/index.js` 中的 `designWidth` 配置为 `640`:
+
+```jsx
+const config = {
+ projectName: 'myProject',
+ date: '2018-4-18',
+ designWidth: 640,
+ ....
+}
+```
+
+目前 Taro 支持 `750`、 `640` 、 `828` 三种尺寸设计稿,他们的换算规则如下:
+
+```jsx
+const deviceRatio = {
+ '640': 2.34 / 2,
+ '750': 1,
+ '828': 1.81 / 2
+}
+```
+
+建议使用 Taro 时,设计稿以 iPhone 6 `750px` 作为设计尺寸标准。
+
+如果你的设计稿是 `375` ,不在以上三种之中,那么你需要把 `designWidth` 配置为 `375`,同时在 `deviceRatio` 中添加换算规则如下:
+```js
+{
+ designWidth: 375,
+ deviceRatio: {
+ '375': 1 / 2,
+ '640': 2.34 / 2,
+ '750': 1,
+ '828': 1.81 / 2
+ }
+}
+```
+
+## API
+
+在编译时,Taro 会帮你对样式做尺寸转换操作,但是如果是在 JS 中书写了行内样式,那么编译时就无法做替换了,针对这种情况,Taro 提供了 API `Taro.pxTransform` 来做运行时的尺寸转换。
+
+```jsx
+Taro.pxTransform(10) // 小程序:rpx,H5:rem
+```
+
+## 配置
+
+默认配置会对所有的 `px` 单位进行转换,有大写字母的 `Px` 或 `PX` 则会被忽略。
+
+参数默认值如下:
+
+```js
+{
+ onePxTransform: true,
+ unitPrecision: 5,
+ propList: ['*'],
+ selectorBlackList: [],
+ replace: true,
+ mediaQuery: false,
+ minPixelValue: 0
+}
+```
+
+Type: `Object | Null`
+
+### `onePxTransform` (Boolean)
+
+设置 1px 是否需要被转换
+
+### `unitPrecision` (Number)
+
+REM 单位允许的小数位。
+
+### `propList` (Array)
+
+允许转换的属性。
+
+- Values need to be exact matches.
+- Use wildcard `*` to enable all properties. Example: `['*']`
+- Use `*` at the start or end of a word. (`['*position*']` will match `background-position-y`)
+- Use `!` to not match a property. Example: `['*', '!letter-spacing']`
+- Combine the "not" prefix with the other prefixes. Example: `['*', '!font*']`
+
+### `selectorBlackList`
+
+黑名单里的选择器将会被忽略。
+
+- If value is string, it checks to see if selector contains the string.
+ - `['body']` will match `.body-class`
+- If value is regexp, it checks to see if the selector matches the regexp.
+ - `[/^body$/]` will match `body` but not `.body`
+
+### `replace` (Boolean)
+
+直接替换而不是追加一条进行覆盖。
+
+### `mediaQuery` (Boolean)
+
+允许媒体查询里的 px 单位转换
+
+### `minPixelValue` (Number)
+
+设置一个可被转换的最小 px 值
+
+配置规则对应到 `config/index.js` ,例如:
+
+```js
+{
+ h5: {
+ publicPath: '/',
+ staticDirectory: 'static',
+ module: {
+ postcss: {
+ autoprefixer: {
+ enable: true
+ },
+ pxtransform: {
+ enable: true,
+ config: {
+ selectorBlackList: ['body']
+ }
+ }
+ }
+ }
+ },
+ weapp: {
+ // ...
+ module: {
+ postcss: {
+ pxtransform: {
+ enable: true,
+ config: {
+ selectorBlackList: ['body']
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+## 忽略
+
+### 属性
+
+当前忽略单个属性的最简单的方法,就是 px 单位使用大写字母。
+
+```css
+ /* `px` is converted to `rem` */
+.convert {
+ font-size: 16px; // converted to 1rem
+}
+
+ /* `Px` or `PX` is ignored by `postcss-pxtorem` but still accepted by browsers */
+.ignore {
+ border: 1Px solid; // ignored
+ border-width: 2PX; // ignored
+}
+```
+
+### 文件
+
+对于头部包含注释 `/*postcss-pxtransform disable*/` 的文件,插件不予处理。
diff --git a/website/versioned_docs/version-2.0.0-beta.4/taroize.md b/website/versioned_docs/version-2.0.0-beta.4/taroize.md
new file mode 100644
index 000000000000..2bc6737f62f6
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.4/taroize.md
@@ -0,0 +1,253 @@
+---
+title: 微信小程序转 Taro
+id: version-2.0.0-beta.4-taroize
+original_id: taroize
+---
+
+> 自 `v1.2.0` 开始支持此功能
+
+Taro 可以将你的原生微信小程序应用转换为 Taro 代码,进而你可以通过 `taro build` 的命令将 Taro 代码转换为对应平台的代码,或者对转换后的 Taro 代码用 React 的方式进行二次开发。
+
+微信原生小程序转 Taro 的操作非常简单,首先必须安装使用 `npm i -g @tarojs/cli` 安装 Taro 命令行工具,其次在命令行中定位到小程序项目的根目录,根目录中运行:
+
+```bash
+$ taro convert
+```
+
+即可完成转换。转换后的代码保存在根目录下的 `taroConvert` 文件夹下。你需要定位到 `taroConvert` 目录执行 `npm install` 命令之后就可以使用 `taro build` 命令编译到对应平台的代码。
+
+## 二次开发
+
+假设已有一个转换后文件如下:
+
+```javascript
+import { View } from '@tarojs/components'
+import Taro from '@tarojs/taro'
+import withWeapp from '@tarojs/with-weapp'
+import './index.scss'
+
+var app = Taro.getApp()
+
+@withWeapp('Page')
+class _C extends Taro.Component {
+ state = {}
+
+ componentWillMount(e) {
+ var orderId = e.id
+ this.data.orderId = orderId
+ }
+
+ componentDidShow() {
+ var that = this
+ Taro.request({
+ url: 'https://api.it120.cc/' + app.globalData.subDomain + '/order/detail',
+ data: {
+ token: Taro.getStorageSync('token'),
+ id: that.data.orderId
+ },
+ success: res => {
+ Taro.hideLoading()
+ if (res.data.code != 0) {
+ Taro.showModal({
+ title: '错误',
+ content: res.data.msg,
+ showCancel: false
+ })
+ return
+ }
+ that.setData({
+ orderDetail: res.data.data,
+ logisticsTraces: res.data.data.logisticsTraces.reverse()
+ })
+ }
+ })
+ }
+
+ config = {
+ navigationBarTitleText: '物流详情'
+ }
+
+ render() {
+ const {
+ orderDetail: orderDetail,
+ logisticsTraces: logisticsTraces
+ } = this.state
+ return (
+
+
+
+ 物流单号
+ {orderDetail.logistics.trackingNumber}
+
+
+ 物流公司
+ {orderDetail.logistics.shipperName}
+
+
+
+
+
+ {logisticsTraces.map((item, index) => {
+ return (
+
+
+
+
+
+
+
+
+ {item.AcceptTime}
+ {item.AcceptStation}
+
+
+ )
+ })}
+
+
+
+ )
+ }
+}
+
+export default _C
+```
+
+它看起来就像普通的 Taro 组件,最重要的区别就在于 `@withWeapp()` 这个装饰器,你可以将它理解为转换代码的运行时,`@withWeapp()` 会增加一些原来 Taro 没有方法和属性,例如:
+
+### `this.setData`
+
+转换后的 `this.setData` 的 API 相当于小程序的 `this.setData` 的 polyfill,他和 `this.setState` 最大的区别就在于,`this.setData` 之后 `data` 的数据是同步更新,而渲染是异步更新,而 `setState` 两者都是异步的。
+
+### `this.data` 和 `this.properties`
+
+`this.data` 和 `this.properties` 相当于 Taro 的 `this.state` 和 `this.props` 的 alias,当它们的数据更新时,对应的 `state` 和 `props` 也会同步更新。
+
+### 生命周期
+
+Taro 会将原始文件的生命周期钩子函数转换为 Taro 的生命周期,完整对应关系如下:
+
+| Page.onLoad | componentWillMount |
+| --: | --: |
+| onShow | componentDidShow |
+| onHide | componentDidHide |
+| onReady | componentDidMount |
+| onUnload | componentWillUnmount |
+| onError | componentDidCatchError |
+| App.onLaunch | componentWillMount |
+| Component.created | componentWillMount |
+| attached | componentDidMount |
+| ready | componentDidMount |
+| detached | componentWillUnmount |
+| moved | 保留 |
+
+## 常见问题
+
+### 在小程序 IDE 显示 `_createData` 错误
+
+这个错误通常是由于原始代码的初始 `data` 中没有对应的数据,后来通过 `this.setData` 补充数据造成的。在 Taro 中推荐不管是 `state(data)` 还是 `properties(props)` 都要设置一个默认值。你可以在类构造器或修改原始代码提供一个默认值解决这个问题,这也应该是编写代码的最佳实践。
+
+### 转换 `wxParse` 报错不存在文件
+
+这是由于 `wxParse` 的源码使用了一个[不存在的 `template`](https://github.com/icindy/wxParse/issues/255) 声明造成的。你可以修改 `wxParse` 的源码文件 `wxParse.wxml` 134 行到 207 行:
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+把 `` 的模板内所有 `` 修改为 `` 再运行 `taro convert` 即可。这样修改之后还会取消原来 `wxParse` 只能处理 11 级 HTML 嵌套的问题,理论上内存不爆栈可以处理无限级 HTML 嵌套。
+
+### 不支持 `relations` 和 `Behavior`
+
+目前转换暂只支持转换 `Page`、`Component` 、`App` 三种构造器创造的小程序组件实例。 `relations` 和 `Behavior` 在其他许多小程序端中还没有对应的实现,我们认为实现这两个功能意义不大。
+
+### 转换 wepy 文件不成功
+
+目前只能支持转换使用原生微信小程序开发的应用。
diff --git a/website/versioned_docs/version-2.0.0-beta.5/config-detail.md b/website/versioned_docs/version-2.0.0-beta.5/config-detail.md
new file mode 100644
index 000000000000..c0f93d03092a
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.5/config-detail.md
@@ -0,0 +1,826 @@
+---
+title: 编译配置详情
+id: version-2.0.0-beta.5-config-detail
+original_id: config-detail
+---
+
+## designWidth
+
+`designWidth` 用来设置设计稿尺寸,关于这一部分的配置说明请见[设计稿及尺寸单位](./size.md)这一章节。
+
+## sourceRoot
+
+`sourceRoot` 用来设置源码存放目录,通过 Taro 开发工具初始化后的项目源码目录都是 `src`,你可以通过修改这一配置来重新指定源码目录。
+
+## outputRoot
+
+`outputRoot` 用来设置代码编译后的生产目录,通过 Taro 开发工具初始化后的生产目录都是 `dist`,你可以通过修改这一配置来重新指定生产目录。
+
+## plugins
+
+`plugins` 用来设置编译过程插件,插件机制基于 实现,目前暴露了两个钩子 `beforeBuild` 和 `afterBuild`
+
+其中,`beforeBuild` 将在整体编译前触发,可以获取到编译的相关配置,同时也能进行修改
+
+`afterBuild` 将在 webpack 编译完后执行,可以获取到编译后的结果
+
+具体使用方式如下:
+
+首先定义一个插件
+
+```js
+class BuildPlugin {
+ apply (builder) {
+ builder.hooks.beforeBuild.tap('BuildPlugin', (config) => {
+ console.log(config)
+ })
+
+ builder.hooks.afterBuild.tap('BuildPlugin', (stats) => {
+ console.log(stats)
+ })
+ }
+}
+```
+
+接下来在 `plugins` 字段中进行配置
+
+```js
+{
+ plugins: [
+ new BuildPlugin()
+ ]
+}
+```
+
+## babel
+
+用来配置 `babel`,默认配置如下,可以自行添加自己需要的额外的 `presets` 及 `plugins`。
+
+```jsx
+babel: {
+ sourceMap: true,
+ presets: [
+ 'env'
+ ],
+ plugins: [
+ 'transform-class-properties',
+ 'transform-decorators-legacy',
+ 'transform-object-rest-spread'
+ ]
+}
+```
+
+## uglify
+
+用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
+
+```jsx
+uglify: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/mishoo/UglifyJS2#minify-options
+ }
+}
+```
+
+## csso
+
+用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
+
+```jsx
+csso: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/css/csso#minifysource-options
+ }
+}
+```
+
+## sass
+
+用来配置 `sass` 工具,设置打包过程中的 SCSS 代码编译。
+具体配置可以参考[node-sass](https://www.npmjs.com/package/node-sass)
+当需要全局注入scss文件时,可以添加三个额外参数:`resource` 、 `projectDirectory` (v1.2.25开始支持)、`data`(v1.3.0开始支持),具体配置方式如下:
+
+#### 单文件路径形式
+
+当只有 `resource` 字段时,可以传入 scss 文件的绝对路径。
+
+```js
+sass: {
+ resource: path.resolve(__dirname, '..', 'src/styles/variable.scss')
+}
+```
+
+#### 多文件路径形式
+
+此外,当只有 `resource` 字段时,也可以传入一个路径数组。
+
+```js
+sass: {
+ resource: [
+ path.resolve(__dirname, '..', 'src/styles/variable.scss'),
+ path.resolve(__dirname, '..', 'src/styles/mixins.scss')
+ ]
+}
+```
+
+#### 指定项目根目录路径形式
+
+你可以额外配置 `projectDirectory` 字段,这样你就可以在 `resource` 里写相对路径了。
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..')
+}
+```
+
+#### 传入 scss 变量字符串
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..'),
+ data: '$nav-height: 48px;'
+}
+```
+
+* resource: 如果要引入多个文件,支持数组形式传入
+* projectDirectory: 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
+* data: 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
+
+## env
+
+用来设置一些环境变量如 `process.env.NODE_ENV`,例如我们想设置区分预览、打包来做些不同的操作,可以如下配置:
+
+在 `config/dev.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"development"' // JSON.stringify('development')
+}
+```
+
+在 `config/prod.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"production"' // JSON.stringify('production')
+}
+```
+
+这样就能在代码中通过 `process.env.NODE_ENV === 'development'` 来判断环境。
+
+## defineConstants
+
+用来配置一些全局变量供代码中进行使用,例如:
+
+```js
+defineConstants: {
+ A: '"a"' // JSON.stringify('a')
+}
+```
+
+## alias
+
+> `1.2.0` 开始支持。
+
+用来配置目录别名,从而方便书写代码引用路径。例如,使用相对路径书写文件引用如下:
+
+```js
+import A from '../../componnets/A'
+import Utils from '../../utils'
+import packageJson from '../../package.json'
+import projectConfig from '../../project.config.json'
+```
+
+为了避免书写多级相对路径,我们可以如下配置 `alias`:
+
+```js
+alias: {
+ '@/components': path.resolve(__dirname, '..', 'src/components'),
+ '@/utils': path.resolve(__dirname, '..', 'src/utils'),
+ '@/package': path.resolve(__dirname, '..', 'package.json'),
+ '@/project': path.resolve(__dirname, '..', 'project.config.json'),
+}
+```
+
+通过上述配置,可以将 `src/components` 和 `src/utils` 目录配置成别名,将根目录下的 `package.json` 和 `project.config.json` 文件配置成别名,则代码中的引用改写如下:
+
+```js
+import A from '@/components/A'
+import Utils from '@/utils'
+import packageJson from '@/package'
+import projectConfig from '@/project'
+```
+
+为了让编辑器(VS Code)不报错,并继续使用自动路径补全的功能,需要在项目根目录下的 `jsconfig.json` 或者 `tsconfig.json` 中配置 `paths` 让编辑器认得我们的别名,形式如下:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["./src/components/*"],
+ "@/utils/*": ["./src/utils/*"],
+ "@/package": ["./package.json"],
+ "@/project": ["./project.config.json"],
+ }
+ }
+}
+```
+
+*建议别名使用 `@/` 开头而非仅用 `@` 开头,因为有小概率会与某些 `scoped` 形式的 `npm` 包(行如:[@tarojs/taro](https://npm.im/@tarojs/taro), [@babel/core](https://npm.im/@babel/core))产生命名冲突。*
+
+## copy
+
+文件 copy 配置,包含两个配置项 `patterns` 和 `options`。
+
+### copy.patterns
+
+用来指定需要拷贝的文件或者目录,**数组类型**,每一项都必须包含 `from` 、`to` 的配置,分别代表来源和需要拷贝到的目录,同时可以设置 `ignore` 配置来指定需要忽略的文件, `ignore` 是指定的 [glob](https://github.com/isaacs/node-glob) 类型字符串,或者 glob 字符串数组。
+
+值得注意的是,目前 `from` 必须指定存在的文件或者目录,暂不支持 glob 格式, `from` 和 `to` 直接置顶项目根目录下的文件目录,建议 `from` 以 `src` 目录开头,`to` 以 `dist` 目录开头。
+
+一般有如下的使用形式:
+
+```jsx
+copy: {
+ patterns: [
+ { from: 'src/asset/tt/', to: 'dist/asset/tt/', ignore: '*.js' }, // 指定需要 copy 的目录
+ { from: 'src/asset/tt/sd.jpg', to: 'dist/asset/tt/sd.jpg' } // 指定需要 copy 的文件
+ ]
+},
+```
+
+### copy.options
+
+拷贝配置,目前可以指定全局的 ignore:
+
+```jsx
+copy: {
+ options: {
+ ignore: ['*.js', '*.css'] // 全局的 ignore
+ }
+}
+```
+
+## mini
+
+专属于小程序的配置。
+
+### mini.compile
+
+小程序编译过程的相关配置。
+
+#### mini.compile.compressTemplate
+
+决定小程序打包时是否需要压缩 wxml
+
+#### mini.compile.exclude
+
+配置小程序编译过程中排除不需要经过 Taro 编译的文件,数组类型,写文件路径,文件路径必须以源码所在 `src` 目录开头:
+
+```jsx
+mini: {
+ compile: {
+ exclude: ['src/components/ec-canvas/echarts.js']
+ }
+}
+```
+
+### mini.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 raw-loader 的例子,用于在项目中直接引用 md 文件
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /\.md$/,
+ use: [{
+ loader: 'raw-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### mini.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### mini.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### mini.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### mini.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### mini.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### mini.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### mini.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+}
+```
+
+### mini.postcss
+
+配置 `postcss` 相关插件:
+
+```jsx
+postcss: {
+ // 可以进行 autoprefixer 的配置。配置项参考官方文档 https://github.com/postcss/autoprefixer
+ autoprefixer: {
+ enable: true,
+ config: {
+ // autoprefixer 配置项
+ }
+ },
+ pxtransform: {
+ enable: true,
+ config: {
+ // pxtransform 配置项,参考尺寸章节
+ selectorBlackList: ['body']
+ }
+ },
+ // 小程序端样式引用本地资源内联
+ url: {
+ enable: true,
+ config: {
+ limit: 10240 // 设定转换尺寸上限
+ }
+ },
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
+
+## h5
+
+专属于 H5 的配置。
+
+### h5.devServer
+
+预览服务的配置,可以更改端口等参数。具体配置参考 [webpack-dev-server](https://webpack.js.org/configuration/dev-server)。
+
+```js
+devServer: {
+ port: 10086
+}
+```
+
+默认是 `http` 服务,如果想开启 `https` 服务需要做如下配置。
+
+```js
+devServer: {
+ https: true
+}
+```
+
+### h5.output
+
+输出配置
+
+```js
+output: {
+ filename: 'js/[name].[hash:8].js',
+ chunkFilename: 'js/[name].[chunkhash:8].js'
+}
+```
+
+### h5.publicPath
+
+设置输出解析文件的目录。
+
+### h5.staticDirectory
+
+h5 编译后的静态文件目录。
+
+### h5.chunkDirectory
+
+编译后非 entry 的 js 文件的存放目录,主要影响动态引入的 `pages` 的存放路径。
+
+### h5.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 ts-loader 的例子,但事实上 taro 是默认支持 ts 的,并不需要这样做。
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /.tsx?/,
+ use: [{
+ loader: 'ts-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### h5.router
+
+路由相关的配置,支持路由模式、路由基准路径以及自定义路由的配置。
+
+#### h5.router.mode
+
+路由模式配置。配置值为 `hash`(默认值)或 `browser`,分别对应 hash 路由模式和浏览器 history 路由模式。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ mode: 'hash' // 或者是 'browser'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/pages/index/index`(hash 模式)或者 `http://{{domain}}/pages/index/index`(browser 模式)。
+
+#### h5.router.basename
+
+路由基准路径的配置,配置值为 `string` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ basename: '/myapp'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/myapp/pages/index/index`(hash 模式)或者 `http://{{domain}}/myapp/pages/index/index`(browser 模式)。
+
+#### h5.router.customRoutes
+
+自定义路由的配置,配置值为 `{ [key: string]: string }` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ customRoutes: {
+ '/pages/index/index': '/index'
+ }
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/index`(hash 模式)或者 `http://{{domain}}/myapp/index`(browser 模式)。
+
+### h5.entry
+
+Taro app 的入口,同 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。
+
+```jsx
+{
+ entry: {
+ home: ['./home.js'],
+ about: ['./about.js'],
+ contact: ['./contact.js']
+ }
+}
+```
+
+### h5.enableSourceMap
+
+sourceMap 开关,影响 js、css 的 sourceMap 配置。
+dev 状态默认 **开**,prod 状态默认 **关**。
+
+### h5.sourceMapType
+sourceMap格式, 默认cheap-module-eval-source-map。[具体配置](https://webpack.js.org/configuration/devtool/#devtool)
+
+### h5.enableDll
+
+dll 开关,开启后将使用 `dllPlugin` 把内置的部分依赖库打包为单独的 dll 文件,
+某种程度上可以减少首屏单个文件体积。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.dllWebpackChain
+
+同 `h5.webpackChain`,不过作用于 dll。
+
+### h5.dllEntry
+
+dll编译过程的 `entry` 配置项,决定了 dll 文件的内容,可参考 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。默认值:
+
+```js
+h5: {
+ /* 其他配置 */
+ ...,
+ dllEntry: {
+ lib: ['nervjs', '@tarojs/taro-h5', '@tarojs/router', '@tarojs/components']
+ }
+}
+```
+
+### h5.enableExtract
+
+extract 功能开关,开启后将使用 `mini-css-extract-plugin` 分离 css 文件,
+可通过 `h5.miniCssExtractPluginOption` 对插件进行配置。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.esnextModules
+
+配置需要额外的编译的源码模块,比如 [taro-ui](https://github.com/NervJS/taro-ui):
+
+```javascript
+h5: {
+ // 经过这一配置之后,代码中引入的处于 `node_modules/taro-ui/` 路径下的源码文件均会经过taro的编译处理。
+ esnextModules: ['taro-ui'],
+ ...
+}
+```
+
+### h5.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### h5.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### h5.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### h5.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### h5.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### h5.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### h5.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: 'css/[name].css',
+ chunkFilename: 'css/[id].css'
+ }
+}
+```
+
+### h5.postcss
+
+配置 H5 的 `postcss` 插件。
+
+#### h5.postcss.autoprefixer
+
+可以进行 `autoprefixer` 的配置。配置项参考[官方文档](https://github.com/postcss/autoprefixer),例如:
+
+```jsx
+postcss: {
+ autoprefixer: {
+ enable: true,
+ config: {
+ /* autoprefixer 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.pxtransform
+
+可以进行 `pxtransform` 的配置。配置项参考[官方文档](https://github.com/Pines-Cheng/postcss-pxtransform/),例如:
+
+```jsx
+postcss: {
+ pxtransform: {
+ enable: true,
+ config: {
+ /* pxtransform 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.cssModules
+
+可以进行 H5 端 CSS Modules 配置,配置如下:
+
+```js
+postcss: {
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module',
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
diff --git a/website/versioned_docs/version-2.0.0-beta.9/config-detail.md b/website/versioned_docs/version-2.0.0-beta.9/config-detail.md
new file mode 100644
index 000000000000..b278e91cc166
--- /dev/null
+++ b/website/versioned_docs/version-2.0.0-beta.9/config-detail.md
@@ -0,0 +1,826 @@
+---
+title: 编译配置详情
+id: version-2.0.0-beta.9-config-detail
+original_id: config-detail
+---
+
+## designWidth
+
+`designWidth` 用来设置设计稿尺寸,关于这一部分的配置说明请见[设计稿及尺寸单位](./size.md)这一章节。
+
+## sourceRoot
+
+`sourceRoot` 用来设置源码存放目录,通过 Taro 开发工具初始化后的项目源码目录都是 `src`,你可以通过修改这一配置来重新指定源码目录。
+
+## outputRoot
+
+`outputRoot` 用来设置代码编译后的生产目录,通过 Taro 开发工具初始化后的生产目录都是 `dist`,你可以通过修改这一配置来重新指定生产目录。
+
+## plugins
+
+`plugins` 用来设置编译过程插件,插件机制基于 实现,目前暴露了两个钩子 `beforeBuild` 和 `afterBuild`
+
+其中,`beforeBuild` 将在整体编译前触发,可以获取到编译的相关配置,同时也能进行修改
+
+`afterBuild` 将在 webpack 编译完后执行,可以获取到编译后的结果
+
+具体使用方式如下:
+
+首先定义一个插件
+
+```js
+class BuildPlugin {
+ apply (builder) {
+ builder.hooks.beforeBuild.tap('BuildPlugin', (config) => {
+ console.log(config)
+ })
+
+ builder.hooks.afterBuild.tap('BuildPlugin', (stats) => {
+ console.log(stats)
+ })
+ }
+}
+```
+
+接下来在 `plugins` 字段中进行配置
+
+```js
+{
+ plugins: [
+ new BuildPlugin()
+ ]
+}
+```
+
+## babel
+
+用来配置 `babel`,默认配置如下,可以自行添加自己需要的额外的 `presets` 及 `plugins`。
+
+```jsx
+babel: {
+ sourceMap: true,
+ presets: [
+ 'env'
+ ],
+ plugins: [
+ 'transform-class-properties',
+ 'transform-decorators-legacy',
+ 'transform-object-rest-spread'
+ ]
+}
+```
+
+## uglify
+
+用来配置 `UgligyJS` 工具,设置打包过程中的 JS 代码压缩。可以通过 `uglify.enable` 来设置是否开启压缩,若设置开启,则可以通过 `uglify.config` 来设置 `UgligyJS` 的配置项,具体配置方式如下:
+
+```jsx
+uglify: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/mishoo/UglifyJS2#minify-options
+ }
+}
+```
+
+## csso
+
+用来配置 `csso` 工具,设置打包过程中的 CSS 代码压缩。可以通过 `csso.enable` 来设置是否开启压缩,若设置开启,则可以通过 `csso.config` 来设置 `csso` 的配置项,具体配置方式如下:
+
+```jsx
+csso: {
+ enable: true,
+ config: {
+ // 配置项同 https://github.com/css/csso#minifysource-options
+ }
+}
+```
+
+## sass
+
+用来配置 `sass` 工具,设置打包过程中的 SCSS 代码编译。
+具体配置可以参考[node-sass](https://www.npmjs.com/package/node-sass)
+当需要全局注入scss文件时,可以添加三个额外参数:`resource` 、 `projectDirectory` (v1.2.25开始支持)、`data`(v1.3.0开始支持),具体配置方式如下:
+
+#### 单文件路径形式
+
+当只有 `resource` 字段时,可以传入 scss 文件的绝对路径。
+
+```js
+sass: {
+ resource: path.resolve(__dirname, '..', 'src/styles/variable.scss')
+}
+```
+
+#### 多文件路径形式
+
+此外,当只有 `resource` 字段时,也可以传入一个路径数组。
+
+```js
+sass: {
+ resource: [
+ path.resolve(__dirname, '..', 'src/styles/variable.scss'),
+ path.resolve(__dirname, '..', 'src/styles/mixins.scss')
+ ]
+}
+```
+
+#### 指定项目根目录路径形式
+
+你可以额外配置 `projectDirectory` 字段,这样你就可以在 `resource` 里写相对路径了。
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..')
+}
+```
+
+#### 传入 scss 变量字符串
+
+```js
+sass: {
+ resource: [
+ 'src/styles/variable.scss',
+ 'src/styles/mixins.scss'
+ ],
+ projectDirectory: path.resolve(__dirname, '..'),
+ data: '$nav-height: 48px;'
+}
+```
+
+* resource: 如果要引入多个文件,支持数组形式传入
+* projectDirectory: 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
+* data: 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
+
+## env
+
+用来设置一些环境变量如 `process.env.NODE_ENV`,例如我们想设置区分预览、打包来做些不同的操作,可以如下配置:
+
+在 `config/dev.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"development"' // JSON.stringify('development')
+}
+```
+
+在 `config/prod.js` 中:
+
+```jsx
+env: {
+ NODE_ENV: '"production"' // JSON.stringify('production')
+}
+```
+
+这样就能在代码中通过 `process.env.NODE_ENV === 'development'` 来判断环境。
+
+## defineConstants
+
+用来配置一些全局变量供代码中进行使用,配置方式与 [Webpack DefinePlugin](https://webpack.js.org/plugins/define-plugin/) 类似,例如:
+
+```js
+defineConstants: {
+ A: JSON.stringify('a') // '"a"'
+}
+```
+
+## alias
+
+> `1.2.0` 开始支持。
+
+用来配置目录别名,从而方便书写代码引用路径。例如,使用相对路径书写文件引用如下:
+
+```js
+import A from '../../componnets/A'
+import Utils from '../../utils'
+import packageJson from '../../package.json'
+import projectConfig from '../../project.config.json'
+```
+
+为了避免书写多级相对路径,我们可以如下配置 `alias`:
+
+```js
+alias: {
+ '@/components': path.resolve(__dirname, '..', 'src/components'),
+ '@/utils': path.resolve(__dirname, '..', 'src/utils'),
+ '@/package': path.resolve(__dirname, '..', 'package.json'),
+ '@/project': path.resolve(__dirname, '..', 'project.config.json'),
+}
+```
+
+通过上述配置,可以将 `src/components` 和 `src/utils` 目录配置成别名,将根目录下的 `package.json` 和 `project.config.json` 文件配置成别名,则代码中的引用改写如下:
+
+```js
+import A from '@/components/A'
+import Utils from '@/utils'
+import packageJson from '@/package'
+import projectConfig from '@/project'
+```
+
+为了让编辑器(VS Code)不报错,并继续使用自动路径补全的功能,需要在项目根目录下的 `jsconfig.json` 或者 `tsconfig.json` 中配置 `paths` 让编辑器认得我们的别名,形式如下:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["./src/components/*"],
+ "@/utils/*": ["./src/utils/*"],
+ "@/package": ["./package.json"],
+ "@/project": ["./project.config.json"],
+ }
+ }
+}
+```
+
+*建议别名使用 `@/` 开头而非仅用 `@` 开头,因为有小概率会与某些 `scoped` 形式的 `npm` 包(行如:[@tarojs/taro](https://npm.im/@tarojs/taro), [@babel/core](https://npm.im/@babel/core))产生命名冲突。*
+
+## copy
+
+文件 copy 配置,包含两个配置项 `patterns` 和 `options`。
+
+### copy.patterns
+
+用来指定需要拷贝的文件或者目录,**数组类型**,每一项都必须包含 `from` 、`to` 的配置,分别代表来源和需要拷贝到的目录,同时可以设置 `ignore` 配置来指定需要忽略的文件, `ignore` 是指定的 [glob](https://github.com/isaacs/node-glob) 类型字符串,或者 glob 字符串数组。
+
+值得注意的是,目前 `from` 必须指定存在的文件或者目录,暂不支持 glob 格式, `from` 和 `to` 直接置顶项目根目录下的文件目录,建议 `from` 以 `src` 目录开头,`to` 以 `dist` 目录开头。
+
+一般有如下的使用形式:
+
+```jsx
+copy: {
+ patterns: [
+ { from: 'src/asset/tt/', to: 'dist/asset/tt/', ignore: '*.js' }, // 指定需要 copy 的目录
+ { from: 'src/asset/tt/sd.jpg', to: 'dist/asset/tt/sd.jpg' } // 指定需要 copy 的文件
+ ]
+},
+```
+
+### copy.options
+
+拷贝配置,目前可以指定全局的 ignore:
+
+```jsx
+copy: {
+ options: {
+ ignore: ['*.js', '*.css'] // 全局的 ignore
+ }
+}
+```
+
+## mini
+
+专属于小程序的配置。
+
+### mini.compile
+
+小程序编译过程的相关配置。
+
+#### mini.compile.compressTemplate
+
+决定小程序打包时是否需要压缩 wxml
+
+#### mini.compile.exclude
+
+配置小程序编译过程中排除不需要经过 Taro 编译的文件,数组类型,写文件路径,文件路径必须以源码所在 `src` 目录开头:
+
+```jsx
+mini: {
+ compile: {
+ exclude: ['src/components/ec-canvas/echarts.js']
+ }
+}
+```
+
+### mini.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 raw-loader 的例子,用于在项目中直接引用 md 文件
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /\.md$/,
+ use: [{
+ loader: 'raw-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### mini.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### mini.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### mini.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### mini.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### mini.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### mini.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### mini.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### mini.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: '[name].css',
+ chunkFilename: '[name].css'
+ }
+}
+```
+
+### mini.postcss
+
+配置 `postcss` 相关插件:
+
+```jsx
+postcss: {
+ // 可以进行 autoprefixer 的配置。配置项参考官方文档 https://github.com/postcss/autoprefixer
+ autoprefixer: {
+ enable: true,
+ config: {
+ // autoprefixer 配置项
+ }
+ },
+ pxtransform: {
+ enable: true,
+ config: {
+ // pxtransform 配置项,参考尺寸章节
+ selectorBlackList: ['body']
+ }
+ },
+ // 小程序端样式引用本地资源内联
+ url: {
+ enable: true,
+ config: {
+ limit: 10240 // 设定转换尺寸上限
+ }
+ },
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
+
+## h5
+
+专属于 H5 的配置。
+
+### h5.devServer
+
+预览服务的配置,可以更改端口等参数。具体配置参考 [webpack-dev-server](https://webpack.js.org/configuration/dev-server)。
+
+```js
+devServer: {
+ port: 10086
+}
+```
+
+默认是 `http` 服务,如果想开启 `https` 服务需要做如下配置。
+
+```js
+devServer: {
+ https: true
+}
+```
+
+### h5.output
+
+输出配置
+
+```js
+output: {
+ filename: 'js/[name].[hash:8].js',
+ chunkFilename: 'js/[name].[chunkhash:8].js'
+}
+```
+
+### h5.publicPath
+
+设置输出解析文件的目录。
+
+### h5.staticDirectory
+
+h5 编译后的静态文件目录。
+
+### h5.chunkDirectory
+
+编译后非 entry 的 js 文件的存放目录,主要影响动态引入的 `pages` 的存放路径。
+
+### h5.webpackChain
+
+自定义 Webpack 配置,接受函数形式的配置。
+
+这个函数会收到两个参数,第一个参数是 webpackChain 对象,可参考 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 api 进行修改;第二个参数是 `webpack` 实例。例如:
+
+```jsx
+// 这是一个添加 ts-loader 的例子,但事实上 taro 是默认支持 ts 的,并不需要这样做。
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ module: {
+ rule: {
+ myloader: {
+ test: /.tsx?/,
+ use: [{
+ loader: 'ts-loader',
+ options: {}
+ }]
+ }
+ }
+ }
+ })
+ }
+}
+```
+
+```jsx
+// 这是一个添加插件的例子
+{
+ webpackChain (chain, webpack) {
+ chain.merge({
+ plugin: {
+ install: {
+ plugin: require('npm-install-webpack-plugin'),
+ args: [{
+ // Use --save or --save-dev
+ dev: false,
+ // Install missing peerDependencies
+ peerDependencies: true,
+ // Reduce amount of console logging
+ quiet: false,
+ // npm command used inside company, yarn is not supported yet
+ npm: 'cnpm'
+ }]
+ }
+ }
+ })
+ }
+}
+```
+
+### h5.router
+
+路由相关的配置,支持路由模式、路由基准路径以及自定义路由的配置。
+
+#### h5.router.mode
+
+路由模式配置。配置值为 `hash`(默认值)或 `browser`,分别对应 hash 路由模式和浏览器 history 路由模式。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ mode: 'hash' // 或者是 'browser'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/pages/index/index`(hash 模式)或者 `http://{{domain}}/pages/index/index`(browser 模式)。
+
+#### h5.router.basename
+
+路由基准路径的配置,配置值为 `string` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ basename: '/myapp'
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/myapp/pages/index/index`(hash 模式)或者 `http://{{domain}}/myapp/pages/index/index`(browser 模式)。
+
+#### h5.router.customRoutes
+
+自定义路由的配置,配置值为 `{ [key: string]: string }` 类型。例子:
+
+```js
+h5: {
+ /* 其他配置 */
+ ... ,
+ router: {
+ customRoutes: {
+ '/pages/index/index': '/index'
+ }
+ }
+}
+```
+
+针对上面的配置,调用 `Taro.navigateTo({ url: '/pages/index/index' })` 后,浏览器地址栏将被变为 `http://{{domain}}/#/index`(hash 模式)或者 `http://{{domain}}/myapp/index`(browser 模式)。
+
+### h5.entry
+
+Taro app 的入口,同 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。
+
+```jsx
+{
+ entry: {
+ home: ['./home.js'],
+ about: ['./about.js'],
+ contact: ['./contact.js']
+ }
+}
+```
+
+### h5.enableSourceMap
+
+sourceMap 开关,影响 js、css 的 sourceMap 配置。
+dev 状态默认 **开**,prod 状态默认 **关**。
+
+### h5.sourceMapType
+sourceMap格式, 默认cheap-module-eval-source-map。[具体配置](https://webpack.js.org/configuration/devtool/#devtool)
+
+### h5.enableDll
+
+dll 开关,开启后将使用 `dllPlugin` 把内置的部分依赖库打包为单独的 dll 文件,
+某种程度上可以减少首屏单个文件体积。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.dllWebpackChain
+
+同 `h5.webpackChain`,不过作用于 dll。
+
+### h5.dllEntry
+
+dll编译过程的 `entry` 配置项,决定了 dll 文件的内容,可参考 [webpack.entry](https://webpack.js.org/configuration/entry-context/#entry)。默认值:
+
+```js
+h5: {
+ /* 其他配置 */
+ ...,
+ dllEntry: {
+ lib: ['nervjs', '@tarojs/taro-h5', '@tarojs/router', '@tarojs/components']
+ }
+}
+```
+
+### h5.enableExtract
+
+extract 功能开关,开启后将使用 `mini-css-extract-plugin` 分离 css 文件,
+可通过 `h5.miniCssExtractPluginOption` 对插件进行配置。
+dev 状态默认 **关**,prod 状态默认 **开**。
+
+### h5.esnextModules
+
+配置需要额外的编译的源码模块,比如 [taro-ui](https://github.com/NervJS/taro-ui):
+
+```javascript
+h5: {
+ // 经过这一配置之后,代码中引入的处于 `node_modules/taro-ui/` 路径下的源码文件均会经过taro的编译处理。
+ esnextModules: ['taro-ui'],
+ ...
+}
+```
+
+### h5.cssLoaderOption
+
+css-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/css-loader),例如:
+
+```jsx
+{
+ cssLoaderOption: {
+ localIdentName: '[hash:base64]'
+ }
+}
+```
+
+### h5.styleLoaderOption
+
+style-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/style-loader),例如:
+
+```jsx
+{
+ styleLoaderOption: {
+ insertAt: 'top'
+ }
+}
+```
+
+### h5.sassLoaderOption
+
+sass-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/sass-loader),例如:
+
+```jsx
+{
+ sassLoaderOption: {
+ implementation: require("dart-sass")
+ }
+}
+```
+
+### h5.lessLoaderOption
+
+less-loader 的附加配置。配置项参考[官方文档](https://github.com/webpack-contrib/less-loader),例如:
+
+```jsx
+{
+ lessLoaderOption: {
+ strictMath: true,
+ noIeCompat: true
+ }
+}
+```
+
+### h5.stylusLoaderOption
+
+stylus-loader 的附加配置。配置项参考[官方文档](https://github.com/shama/stylus-loader)。
+
+### h5.mediaUrlLoaderOption
+
+针对 `mp4 | webm | ogg | mp3 | wav | flac | aac` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader),例如:
+
+```jsx
+{
+ mediaUrlLoaderOption: {
+ limit: 8192
+ }
+}
+```
+
+### h5.fontUrlLoaderOption
+
+针对 `woff | woff2 | eot | ttf | otf` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.imageUrlLoaderOption
+
+针对 `png | jpg | jpeg | gif | bpm | svg` 文件的 url-loader 配置。配置项参考[官方文档](https://github.com/webpack-contrib/url-loader)。
+
+### h5.miniCssExtractPluginOption
+
+`mini-css-extract-plugin` 的附加配置,在 `enableExtract` 为 `true` 的情况下生效。
+配置项参考[官方文档](https://github.com/webpack-contrib/mini-css-extract-plugin),例如:
+
+```jsx
+{
+ miniCssExtractPluginOption: {
+ filename: 'css/[name].css',
+ chunkFilename: 'css/[id].css'
+ }
+}
+```
+
+### h5.postcss
+
+配置 H5 的 `postcss` 插件。
+
+#### h5.postcss.autoprefixer
+
+可以进行 `autoprefixer` 的配置。配置项参考[官方文档](https://github.com/postcss/autoprefixer),例如:
+
+```jsx
+postcss: {
+ autoprefixer: {
+ enable: true,
+ config: {
+ /* autoprefixer 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.pxtransform
+
+可以进行 `pxtransform` 的配置。配置项参考[官方文档](https://github.com/Pines-Cheng/postcss-pxtransform/),例如:
+
+```jsx
+postcss: {
+ pxtransform: {
+ enable: true,
+ config: {
+ /* pxtransform 配置项 */
+ }
+ }
+}
+```
+
+#### h5.postcss.cssModules
+
+可以进行 H5 端 CSS Modules 配置,配置如下:
+
+```js
+postcss: {
+ // css modules 功能开关与相关配置
+ cssModules: {
+ enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true
+ config: {
+ namingPattern: 'module',
+ generateScopedName: '[name]__[local]___[hash:base64:5]'
+ }
+ }
+}
+```
diff --git a/website/versioned_sidebars/version-2.0.0-beta.13-sidebars.json b/website/versioned_sidebars/version-2.0.0-beta.13-sidebars.json
new file mode 100644
index 000000000000..40a381f5aaef
--- /dev/null
+++ b/website/versioned_sidebars/version-2.0.0-beta.13-sidebars.json
@@ -0,0 +1,638 @@
+{
+ "version-2.0.0-beta.13-docs": {
+ "关于Taro": [
+ "version-2.0.0-beta.13-README",
+ "version-2.0.0-beta.13-taroize",
+ "version-2.0.0-beta.13-team"
+ ],
+ "快速开始": [
+ "version-2.0.0-beta.13-GETTING-STARTED",
+ "version-2.0.0-beta.13-composition",
+ "version-2.0.0-beta.13-before-dev-remind",
+ "version-2.0.0-beta.13-specials"
+ ],
+ "基础教程": [
+ "version-2.0.0-beta.13-spec-for-taro",
+ "version-2.0.0-beta.13-tutorial",
+ "version-2.0.0-beta.13-project-config",
+ "version-2.0.0-beta.13-best-practice",
+ "version-2.0.0-beta.13-router",
+ "version-2.0.0-beta.13-size",
+ "version-2.0.0-beta.13-static-reference",
+ "version-2.0.0-beta.13-component-style",
+ {
+ "label": "语法特性",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-jsx",
+ "version-2.0.0-beta.13-props",
+ "version-2.0.0-beta.13-state",
+ "version-2.0.0-beta.13-event",
+ "version-2.0.0-beta.13-condition",
+ "version-2.0.0-beta.13-list",
+ "version-2.0.0-beta.13-functional-component",
+ "version-2.0.0-beta.13-context",
+ "version-2.0.0-beta.13-children",
+ "version-2.0.0-beta.13-render-props",
+ "version-2.0.0-beta.13-ref"
+ ]
+ },
+ {
+ "label": "多端开发",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-envs",
+ "version-2.0.0-beta.13-envs-debug",
+ "version-2.0.0-beta.13-relations",
+ "version-2.0.0-beta.13-wxcloud",
+ "version-2.0.0-beta.13-miniprogram-plugin",
+ "version-2.0.0-beta.13-quick-app",
+ "version-2.0.0-beta.13-react-native"
+ ]
+ },
+ "version-2.0.0-beta.13-debug"
+ ],
+ "进阶指南": [
+ "version-2.0.0-beta.13-config",
+ "version-2.0.0-beta.13-config-detail",
+ "version-2.0.0-beta.13-debug-config",
+ "version-2.0.0-beta.13-hooks",
+ "version-2.0.0-beta.13-ui-lib",
+ "version-2.0.0-beta.13-async-await",
+ "version-2.0.0-beta.13-mini-third-party",
+ "version-2.0.0-beta.13-hybrid",
+ "version-2.0.0-beta.13-optimized-practice"
+ ],
+ "社区生态": [
+ "version-2.0.0-beta.13-redux",
+ "version-2.0.0-beta.13-mobx",
+ "version-2.0.0-beta.13-css-modules",
+ "version-2.0.0-beta.13-template",
+ "version-2.0.0-beta.13-report",
+ "version-2.0.0-beta.13-join-in",
+ "version-2.0.0-beta.13-CONTRIBUTING"
+ ]
+ },
+ "version-2.0.0-beta.13-components": {
+ "关于组件库": [
+ "version-2.0.0-beta.13-components-desc"
+ ],
+ "视图容器": [
+ "version-2.0.0-beta.13-components/viewContainer/view",
+ "version-2.0.0-beta.13-components/viewContainer/scroll-view",
+ "version-2.0.0-beta.13-components/viewContainer/swiper",
+ "version-2.0.0-beta.13-components/viewContainer/movable-view",
+ "version-2.0.0-beta.13-components/viewContainer/cover-view"
+ ],
+ "基础内容": [
+ "version-2.0.0-beta.13-components/base/icon",
+ "version-2.0.0-beta.13-components/base/text",
+ "version-2.0.0-beta.13-components/base/progress",
+ "version-2.0.0-beta.13-components/base/rich-text"
+ ],
+ "表单组件": [
+ "version-2.0.0-beta.13-components/forms/button",
+ "version-2.0.0-beta.13-components/forms/checkbox",
+ "version-2.0.0-beta.13-components/forms/form",
+ "version-2.0.0-beta.13-components/forms/input",
+ "version-2.0.0-beta.13-components/forms/label",
+ "version-2.0.0-beta.13-components/forms/picker",
+ "version-2.0.0-beta.13-components/forms/picker-view",
+ "version-2.0.0-beta.13-components/forms/radio",
+ "version-2.0.0-beta.13-components/forms/slider",
+ "version-2.0.0-beta.13-components/forms/switch",
+ "version-2.0.0-beta.13-components/forms/textarea"
+ ],
+ "导航": [
+ "version-2.0.0-beta.13-components/navig/navigator"
+ ],
+ "媒体组件": [
+ "version-2.0.0-beta.13-components/media/audio",
+ "version-2.0.0-beta.13-components/media/image",
+ "version-2.0.0-beta.13-components/media/video",
+ "version-2.0.0-beta.13-components/media/camera"
+ ],
+ "地图": [
+ "version-2.0.0-beta.13-components/maps/map"
+ ],
+ "画布": [
+ "version-2.0.0-beta.13-components/canvas/canvas"
+ ],
+ "开放能力": [
+ "version-2.0.0-beta.13-components/open/ad",
+ "version-2.0.0-beta.13-components/open/official-account",
+ "version-2.0.0-beta.13-components/open/open-data",
+ "version-2.0.0-beta.13-components/open/web-view",
+ "version-2.0.0-beta.13-components/open/others"
+ ]
+ },
+ "version-2.0.0-beta.13-API": {
+ "关于API": [
+ "version-2.0.0-beta.13-apis/about/desc",
+ "version-2.0.0-beta.13-apis/about/tarocomponent",
+ "version-2.0.0-beta.13-apis/about/env",
+ "version-2.0.0-beta.13-apis/about/events"
+ ],
+ "设备": [
+ {
+ "label": "加速度计",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/accelerometer/startAccelerometer",
+ "version-2.0.0-beta.13-apis/device/accelerometer/stopAccelerometer",
+ "version-2.0.0-beta.13-apis/device/accelerometer/onAccelerometerChange"
+ ]
+ },
+ {
+ "label": "设备方向",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/deviceMotion/startDeviceMotionListening",
+ "version-2.0.0-beta.13-apis/device/deviceMotion/stopDeviceMotionListening",
+ "version-2.0.0-beta.13-apis/device/deviceMotion/onDeviceMotionChange"
+ ]
+ },
+ {
+ "label": "蓝牙",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/bluetooth/closeBluetoothAdapter",
+ "version-2.0.0-beta.13-apis/device/bluetooth/getBluetoothAdapterState",
+ "version-2.0.0-beta.13-apis/device/bluetooth/getBluetoothDevices",
+ "version-2.0.0-beta.13-apis/device/bluetooth/getConnectedBluetoothDevices",
+ "version-2.0.0-beta.13-apis/device/bluetooth/onBluetoothAdapterStateChange",
+ "version-2.0.0-beta.13-apis/device/bluetooth/onBluetoothDeviceFound",
+ "version-2.0.0-beta.13-apis/device/bluetooth/openBluetoothAdapter",
+ "version-2.0.0-beta.13-apis/device/bluetooth/startBluetoothDevicesDiscovery",
+ "version-2.0.0-beta.13-apis/device/bluetooth/stopBluetoothDevicesDiscovery"
+ ]
+ },
+ {
+ "label": "低功耗蓝牙",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/ble/closeBLEConnection",
+ "version-2.0.0-beta.13-apis/device/ble/createBLEConnection",
+ "version-2.0.0-beta.13-apis/device/ble/getBLEDeviceCharacteristics",
+ "version-2.0.0-beta.13-apis/device/ble/getBLEDeviceServices",
+ "version-2.0.0-beta.13-apis/device/ble/notifyBLECharacteristicValueChange",
+ "version-2.0.0-beta.13-apis/device/ble/onBLECharacteristicValueChange",
+ "version-2.0.0-beta.13-apis/device/ble/onBLEConnectionStateChange",
+ "version-2.0.0-beta.13-apis/device/ble/readBLECharacteristicValue",
+ "version-2.0.0-beta.13-apis/device/ble/writeBLECharacteristicValue"
+ ]
+ },
+ {
+ "label": "亮度",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/brightness/getScreenBrightness",
+ "version-2.0.0-beta.13-apis/device/brightness/setKeepScreenOn",
+ "version-2.0.0-beta.13-apis/device/brightness/setScreenBrightness"
+ ]
+ },
+ {
+ "label": "剪贴板",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/clipboard/getClipboardData",
+ "version-2.0.0-beta.13-apis/device/clipboard/setClipboardData"
+ ]
+ },
+ {
+ "label": "罗盘",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/compass/onCompassChange",
+ "version-2.0.0-beta.13-apis/device/compass/startCompass",
+ "version-2.0.0-beta.13-apis/device/compass/stopCompass"
+ ]
+ },
+ {
+ "label": "联系人",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/contacts/addPhoneContact"
+ ]
+ },
+ {
+ "label": "iBeacon",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/ibeacon/getBeacons",
+ "version-2.0.0-beta.13-apis/device/ibeacon/onBeaconServiceChange",
+ "version-2.0.0-beta.13-apis/device/ibeacon/onBeaconUpdate",
+ "version-2.0.0-beta.13-apis/device/ibeacon/startBeaconDiscovery",
+ "version-2.0.0-beta.13-apis/device/ibeacon/stopBeaconDiscovery"
+ ]
+ },
+ {
+ "label": "网络",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/netstat/getNetworkType",
+ "version-2.0.0-beta.13-apis/device/netstat/onNetworkStatusChange"
+ ]
+ },
+ {
+ "label": "NFC",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/nfc/getHCEState",
+ "version-2.0.0-beta.13-apis/device/nfc/onHCEMessage",
+ "version-2.0.0-beta.13-apis/device/nfc/sendHCEMessage",
+ "version-2.0.0-beta.13-apis/device/nfc/startHCE",
+ "version-2.0.0-beta.13-apis/device/nfc/stopHCE"
+ ]
+ },
+ {
+ "label": "电话",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/phone/makePhoneCall"
+ ]
+ },
+ {
+ "label": "扫码",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/scancode/scancode"
+ ]
+ },
+ {
+ "label": "屏幕",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/screenshot/onUserCaptureScreen"
+ ]
+ },
+ {
+ "label": "振动",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/vibrate/vibrateLong",
+ "version-2.0.0-beta.13-apis/device/vibrate/vibrateShort"
+ ]
+ },
+ {
+ "label": "系统信息",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/systeminfo/canIUse",
+ "version-2.0.0-beta.13-apis/device/systeminfo/getSystemInfo",
+ "version-2.0.0-beta.13-apis/device/systeminfo/getSystemInfoSync"
+ ]
+ },
+ {
+ "label": "Wi-Fi",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/device/wifi/connectWifi",
+ "version-2.0.0-beta.13-apis/device/wifi/getConnectedWifi",
+ "version-2.0.0-beta.13-apis/device/wifi/getWifiList",
+ "version-2.0.0-beta.13-apis/device/wifi/onGetWifiList",
+ "version-2.0.0-beta.13-apis/device/wifi/offGetWifiList",
+ "version-2.0.0-beta.13-apis/device/wifi/onWifiConnected",
+ "version-2.0.0-beta.13-apis/device/wifi/offWifiConnected",
+ "version-2.0.0-beta.13-apis/device/wifi/setWifiList",
+ "version-2.0.0-beta.13-apis/device/wifi/startWifi",
+ "version-2.0.0-beta.13-apis/device/wifi/stopWifi"
+ ]
+ }
+ ],
+ "扩展API": [
+ "version-2.0.0-beta.13-apis/extend-apis/arrayBufferToBase64",
+ "version-2.0.0-beta.13-apis/extend-apis/base64ToArrayBuffer"
+ ],
+ "文件": [
+ "version-2.0.0-beta.13-apis/files/getFileInfo",
+ "version-2.0.0-beta.13-apis/files/getSavedFileInfo",
+ "version-2.0.0-beta.13-apis/files/getSavedFileList",
+ "version-2.0.0-beta.13-apis/files/openDocument",
+ "version-2.0.0-beta.13-apis/files/removeSavedFile",
+ "version-2.0.0-beta.13-apis/files/saveFile"
+ ],
+ "界面": [
+ {
+ "label": "动画",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/animation/createAnimation"
+ ]
+ },
+ {
+ "label": "画布",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/canvas/createCanvasContext",
+ "version-2.0.0-beta.13-apis/interface/canvas/canvasGetImageData",
+ "version-2.0.0-beta.13-apis/interface/canvas/canvasPutImageData",
+ "version-2.0.0-beta.13-apis/interface/canvas/canvasToTempFilePath",
+ "version-2.0.0-beta.13-apis/interface/canvas/createContext",
+ "version-2.0.0-beta.13-apis/interface/canvas/drawCanvas"
+ ]
+ },
+ {
+ "label": "交互",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/interactives/showToast",
+ "version-2.0.0-beta.13-apis/interface/interactives/showLoading",
+ "version-2.0.0-beta.13-apis/interface/interactives/hideToast",
+ "version-2.0.0-beta.13-apis/interface/interactives/hideLoading",
+ "version-2.0.0-beta.13-apis/interface/interactives/showModal",
+ "version-2.0.0-beta.13-apis/interface/interactives/showActionSheet"
+ ]
+ },
+ {
+ "label": "导航",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/navigation/navigateTo",
+ "version-2.0.0-beta.13-apis/interface/navigation/redirectTo",
+ "version-2.0.0-beta.13-apis/interface/navigation/switchTab",
+ "version-2.0.0-beta.13-apis/interface/navigation/navigateBack",
+ "version-2.0.0-beta.13-apis/interface/navigation/reLaunch",
+ "version-2.0.0-beta.13-apis/interface/navigation/getCurrentPages"
+ ]
+ },
+ {
+ "label": "导航栏",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/navigationbar/setNavigationBarTitle",
+ "version-2.0.0-beta.13-apis/interface/navigationbar/showNavigationBarLoading",
+ "version-2.0.0-beta.13-apis/interface/navigationbar/hideNavigationBarLoading",
+ "version-2.0.0-beta.13-apis/interface/navigationbar/setNavigationBarColor"
+ ]
+ },
+ {
+ "label": "滚动",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/pagescroll/pageScrollTo"
+ ]
+ },
+ {
+ "label": "下拉刷新",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/pulldownrefresh/startPullDownRefresh",
+ "version-2.0.0-beta.13-apis/interface/pulldownrefresh/stopPullDownRefresh"
+ ]
+ },
+ {
+ "label": "tabbar",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/tabbar/setTabBarBadge",
+ "version-2.0.0-beta.13-apis/interface/tabbar/removeTabBarBadge",
+ "version-2.0.0-beta.13-apis/interface/tabbar/showTabBarRedDot",
+ "version-2.0.0-beta.13-apis/interface/tabbar/hideTabBarRedDot",
+ "version-2.0.0-beta.13-apis/interface/tabbar/setTabBarStyle",
+ "version-2.0.0-beta.13-apis/interface/tabbar/setTabBarItem",
+ "version-2.0.0-beta.13-apis/interface/tabbar/showTabBar",
+ "version-2.0.0-beta.13-apis/interface/tabbar/hideTabBar"
+ ]
+ },
+ {
+ "label": "顶栏",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/topbar/setTopBarText"
+ ]
+ },
+ {
+ "label": "窗口",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/window/onWindowResize",
+ "version-2.0.0-beta.13-apis/interface/window/offWindowResize"
+ ]
+ },
+ {
+ "label": "wxml",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/interface/wxml/createSelectorQuery",
+ "version-2.0.0-beta.13-apis/interface/wxml/selectorQuery_in",
+ "version-2.0.0-beta.13-apis/interface/wxml/selectorQuery_select",
+ "version-2.0.0-beta.13-apis/interface/wxml/selectorQuery_selectAll",
+ "version-2.0.0-beta.13-apis/interface/wxml/selectorQuery_selectViewport",
+ "version-2.0.0-beta.13-apis/interface/wxml/nodesRef_boundingClientRect",
+ "version-2.0.0-beta.13-apis/interface/wxml/nodesRef_scrollOffset",
+ "version-2.0.0-beta.13-apis/interface/wxml/nodesRef_fields",
+ "version-2.0.0-beta.13-apis/interface/wxml/selectorQuery_exec"
+ ]
+ }
+ ],
+ "位置": [
+ "version-2.0.0-beta.13-apis/location/getLocation",
+ "version-2.0.0-beta.13-apis/location/openLocation",
+ "version-2.0.0-beta.13-apis/location/chooseLocation"
+ ],
+ "媒体": [
+ {
+ "label": "音频",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/audio/playVoice",
+ "version-2.0.0-beta.13-apis/multimedia/audio/pauseVoice",
+ "version-2.0.0-beta.13-apis/multimedia/audio/stopVoice",
+ "version-2.0.0-beta.13-apis/multimedia/audio/createAudioContext",
+ "version-2.0.0-beta.13-apis/multimedia/audio/createInnerAudioContext"
+ ]
+ },
+ {
+ "label": "背景音频",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/getBackgroundAudioManager",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/getBackgroundAudioPlayerState",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/playBackgroundAudio",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/pauseBackgroundAudio",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/seekBackgroundAudio",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/stopBackgroundAudio",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/onBackgroundAudioPlay",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/onBackgroundAudioPause",
+ "version-2.0.0-beta.13-apis/multimedia/backgroundaudio/onBackgroundAudioStop"
+ ]
+ },
+ {
+ "label": "相机",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/camera/createCameraContext"
+ ]
+ },
+ {
+ "label": "图片",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/images/chooseImage",
+ "version-2.0.0-beta.13-apis/multimedia/images/previewImage",
+ "version-2.0.0-beta.13-apis/multimedia/images/getImageInfo",
+ "version-2.0.0-beta.13-apis/multimedia/images/saveImageToPhotosAlbum"
+ ]
+ },
+ {
+ "label": "地图",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/map/createMapContext"
+ ]
+ },
+ {
+ "label": "录音",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/recording/startRecord",
+ "version-2.0.0-beta.13-apis/multimedia/recording/stopRecord"
+ ]
+ },
+ {
+ "label": "视频",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/multimedia/video/chooseVideo",
+ "version-2.0.0-beta.13-apis/multimedia/video/saveVideoToPhotosAlbum",
+ "version-2.0.0-beta.13-apis/multimedia/video/createVideoContext"
+ ]
+ }
+ ],
+ "网络": [
+ {
+ "label": "文件上传/下载",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/network/fileTransfer/uploadFile",
+ "version-2.0.0-beta.13-apis/network/fileTransfer/downloadFile"
+ ]
+ },
+ {
+ "label": "请求",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/network/request/request",
+ "version-2.0.0-beta.13-apis/network/request/addInterceptor"
+ ]
+ },
+ {
+ "label": "WebSocket",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/network/socket/connectSocket",
+ "version-2.0.0-beta.13-apis/network/socket/sendSocketMessage",
+ "version-2.0.0-beta.13-apis/network/socket/closeSocket",
+ "version-2.0.0-beta.13-apis/network/socket/onSocketOpen",
+ "version-2.0.0-beta.13-apis/network/socket/onSocketMessage",
+ "version-2.0.0-beta.13-apis/network/socket/onSocketClose",
+ "version-2.0.0-beta.13-apis/network/socket/onSocketError",
+ "version-2.0.0-beta.13-apis/network/socket/SocketTask"
+ ]
+ }
+ ],
+ "开放接口": [
+ {
+ "label": "地址",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/address/chooseAddress"
+ ]
+ },
+ {
+ "label": "认证",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/auth/authorize"
+ ]
+ },
+ {
+ "label": "生物认证",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/bioauth/checkIsSoterEnrolledInDevice",
+ "version-2.0.0-beta.13-apis/open-api/bioauth/checkIsSupportSoterAuthentication",
+ "version-2.0.0-beta.13-apis/open-api/bioauth/startSoterAuthentication"
+ ]
+ },
+ {
+ "label": "卡券",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/card/addCard",
+ "version-2.0.0-beta.13-apis/open-api/card/openCard"
+ ]
+ },
+ {
+ "label": "发票",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/invoice/chooseInvoice",
+ "version-2.0.0-beta.13-apis/open-api/invoice/chooseInvoiceTitle"
+ ]
+ },
+ {
+ "label": "登录",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/login/login",
+ "version-2.0.0-beta.13-apis/open-api/login/checkSession"
+ ]
+ },
+ {
+ "label": "支付",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/payment/faceVerifyForPay",
+ "version-2.0.0-beta.13-apis/open-api/payment/requestPayment"
+ ]
+ },
+ {
+ "label": "跳转小程序",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/redirect/navigateBackMiniProgram",
+ "version-2.0.0-beta.13-apis/open-api/redirect/navigateToMiniProgram"
+ ]
+ },
+ {
+ "label": "设置",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/settings/getSetting",
+ "version-2.0.0-beta.13-apis/open-api/settings/openSetting"
+ ]
+ },
+ {
+ "label": "用户信息",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/userinfo/getUserInfo"
+ ]
+ },
+ {
+ "label": "微信运动",
+ "type": "subcategory",
+ "ids": [
+ "version-2.0.0-beta.13-apis/open-api/werun/getWeRunData"
+ ]
+ }
+ ],
+ "数据缓存": [
+ "version-2.0.0-beta.13-apis/storage/setStorage",
+ "version-2.0.0-beta.13-apis/storage/setStorageSync",
+ "version-2.0.0-beta.13-apis/storage/getStorage",
+ "version-2.0.0-beta.13-apis/storage/getStorageSync",
+ "version-2.0.0-beta.13-apis/storage/getStorageInfo",
+ "version-2.0.0-beta.13-apis/storage/getStorageInfoSync",
+ "version-2.0.0-beta.13-apis/storage/removeStorage",
+ "version-2.0.0-beta.13-apis/storage/removeStorageSync",
+ "version-2.0.0-beta.13-apis/storage/clearStorage",
+ "version-2.0.0-beta.13-apis/storage/clearStorageSync"
+ ],
+ "更新": [
+ "version-2.0.0-beta.13-apis/updates/getUpdateManager"
+ ]
+ }
+}
diff --git a/website/versions.json b/website/versions.json
index 4a1cdd6cef67..7524bec994a9 100644
--- a/website/versions.json
+++ b/website/versions.json
@@ -1,4 +1,15 @@
[
+ "2.0.0-beta.13",
+ "2.0.0-beta.12",
+ "2.0.0-beta.11",
+ "2.0.0-beta.10",
+ "2.0.0-beta.9",
+ "2.0.0-beta.8",
+ "2.0.0-beta.6",
+ "2.0.0-beta.5",
+ "2.0.0-beta.3",
+ "2.0.0-beta.4",
+ "2.0.0-beta.2",
"1.3.34",
"1.3.33",
"1.3.32",
diff --git a/yarn.lock b/yarn.lock
index 1781806af3e5..2d7256f4051b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,25 +2,48 @@
# yarn lockfile v1
-"@babel/code-frame@7.5.5", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
+"@babel/code-frame@7.5.5", "@babel/code-frame@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
- integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.0.0-beta.42", "@babel/core@^7.6.4":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff"
- integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==
+"@babel/code-frame@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
+ dependencies:
+ "@babel/highlight" "^7.0.0"
+
+"@babel/core@^7.0.0-beta.42":
+ version "7.1.6"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz#3733cbee4317429bc87c62b29cf8587dba7baeb3"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.1.6"
+ "@babel/helpers" "^7.1.5"
+ "@babel/parser" "^7.1.6"
+ "@babel/template" "^7.1.2"
+ "@babel/traverse" "^7.1.6"
+ "@babel/types" "^7.1.6"
+ convert-source-map "^1.1.0"
+ debug "^4.1.0"
+ json5 "^2.1.0"
+ lodash "^4.17.10"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+"@babel/core@^7.5.5":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.6.0.tgz#9b00f73554edd67bebc86df8303ef678be3d7b48"
dependencies:
"@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.4"
- "@babel/helpers" "^7.6.2"
- "@babel/parser" "^7.6.4"
+ "@babel/generator" "^7.6.0"
+ "@babel/helpers" "^7.6.0"
+ "@babel/parser" "^7.6.0"
"@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.3"
- "@babel/types" "^7.6.3"
+ "@babel/traverse" "^7.6.0"
+ "@babel/types" "^7.6.0"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
@@ -29,10 +52,29 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.6.3", "@babel/generator@^7.6.4":
+"@babel/generator@^7.1.6":
+ version "7.1.6"
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz#001303cf87a5b9d093494a4bf251d7b5d03d3999"
+ dependencies:
+ "@babel/types" "^7.1.6"
+ jsesc "^2.5.1"
+ lodash "^4.17.10"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
+"@babel/generator@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56"
+ dependencies:
+ "@babel/types" "^7.6.0"
+ jsesc "^2.5.1"
+ lodash "^4.17.13"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
+"@babel/generator@^7.6.3":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671"
- integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==
dependencies:
"@babel/types" "^7.6.3"
jsesc "^2.5.1"
@@ -69,8 +111,7 @@
"@babel/helper-call-delegate@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
- integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
+ resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
dependencies:
"@babel/helper-hoist-variables" "^7.4.4"
"@babel/traverse" "^7.4.4"
@@ -78,8 +119,7 @@
"@babel/helper-create-class-features-plugin@^7.5.5":
version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f"
- integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==
+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f"
dependencies:
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-member-expression-to-functions" "^7.5.5"
@@ -98,8 +138,7 @@
"@babel/helper-define-map@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
- integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==
+ resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
dependencies:
"@babel/helper-function-name" "^7.1.0"
"@babel/types" "^7.5.5"
@@ -134,8 +173,7 @@
"@babel/helper-hoist-variables@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
- integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
+ resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
dependencies:
"@babel/types" "^7.4.4"
@@ -147,8 +185,7 @@
"@babel/helper-member-expression-to-functions@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
- integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
dependencies:
"@babel/types" "^7.5.5"
@@ -171,8 +208,7 @@
"@babel/helper-module-transforms@^7.4.4":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
- integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
@@ -199,8 +235,7 @@
"@babel/helper-regex@^7.4.4":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
- integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==
+ resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
dependencies:
lodash "^4.17.13"
@@ -225,8 +260,7 @@
"@babel/helper-replace-supers@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
- integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
dependencies:
"@babel/helper-member-expression-to-functions" "^7.5.5"
"@babel/helper-optimise-call-expression" "^7.0.0"
@@ -248,8 +282,7 @@
"@babel/helper-split-export-declaration@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+ resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
dependencies:
"@babel/types" "^7.4.4"
@@ -262,15 +295,22 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helpers@^7.6.2":
+"@babel/helpers@^7.1.5":
version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
- integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153"
dependencies:
"@babel/template" "^7.6.0"
"@babel/traverse" "^7.6.2"
"@babel/types" "^7.6.0"
+"@babel/helpers@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.0.tgz#21961d16c6a3c3ab597325c34c465c0887d31c6e"
+ dependencies:
+ "@babel/template" "^7.6.0"
+ "@babel/traverse" "^7.6.0"
+ "@babel/types" "^7.6.0"
+
"@babel/highlight@^7.0.0":
version "7.0.0"
resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
@@ -279,10 +319,13 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4":
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.6", "@babel/parser@^7.6.3":
version "7.6.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81"
- integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==
+
+"@babel/parser@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b"
"@babel/plugin-proposal-async-generator-functions@^7.1.0":
version "7.1.0"
@@ -294,8 +337,7 @@
"@babel/plugin-proposal-async-generator-functions@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
- integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-remap-async-to-generator" "^7.1.0"
@@ -314,16 +356,14 @@
"@babel/plugin-proposal-class-properties@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
- integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
dependencies:
"@babel/helper-create-class-features-plugin" "^7.5.5"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-dynamic-import@^7.5.0":
version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506"
- integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-dynamic-import" "^7.2.0"
@@ -337,8 +377,7 @@
"@babel/plugin-proposal-json-strings@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
- integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
@@ -350,10 +389,9 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.0.0"
-"@babel/plugin-proposal-object-rest-spread@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
- integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==
+"@babel/plugin-proposal-object-rest-spread@^7.5.5":
+ version "7.5.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -367,8 +405,7 @@
"@babel/plugin-proposal-optional-catch-binding@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
- integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
@@ -381,14 +418,13 @@
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.2.0"
-"@babel/plugin-proposal-unicode-property-regex@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802"
- integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.6.0"
+ regexpu-core "^4.5.4"
"@babel/plugin-syntax-async-generators@^7.0.0":
version "7.0.0"
@@ -398,8 +434,7 @@
"@babel/plugin-syntax-async-generators@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
- integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -417,8 +452,7 @@
"@babel/plugin-syntax-dynamic-import@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
- integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -430,8 +464,7 @@
"@babel/plugin-syntax-json-strings@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
- integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -449,8 +482,7 @@
"@babel/plugin-syntax-object-rest-spread@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -462,8 +494,7 @@
"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
- integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -475,8 +506,7 @@
"@babel/plugin-transform-arrow-functions@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
- integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -490,8 +520,7 @@
"@babel/plugin-transform-async-to-generator@^7.5.0":
version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
- integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -505,8 +534,7 @@
"@babel/plugin-transform-block-scoped-functions@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
- integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -517,10 +545,9 @@
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.10"
-"@babel/plugin-transform-block-scoping@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a"
- integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==
+"@babel/plugin-transform-block-scoping@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.13"
@@ -540,8 +567,7 @@
"@babel/plugin-transform-classes@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
- integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-define-map" "^7.5.5"
@@ -560,8 +586,7 @@
"@babel/plugin-transform-computed-properties@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
- integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -573,8 +598,7 @@
"@babel/plugin-transform-destructuring@^7.6.0":
version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
- integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -586,14 +610,13 @@
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.1.3"
-"@babel/plugin-transform-dotall-regex@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9"
- integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==
+"@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.6.0"
+ regexpu-core "^4.5.4"
"@babel/plugin-transform-duplicate-keys@^7.0.0":
version "7.0.0"
@@ -603,8 +626,7 @@
"@babel/plugin-transform-duplicate-keys@^7.5.0":
version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853"
- integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -617,8 +639,7 @@
"@babel/plugin-transform-exponentiation-operator@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
- integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
dependencies:
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -631,8 +652,7 @@
"@babel/plugin-transform-for-of@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
- integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -645,8 +665,7 @@
"@babel/plugin-transform-function-name@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
- integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
dependencies:
"@babel/helper-function-name" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -659,15 +678,13 @@
"@babel/plugin-transform-literals@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
- integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-member-expression-literals@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
- integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -680,8 +697,7 @@
"@babel/plugin-transform-modules-amd@^7.5.0":
version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91"
- integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91"
dependencies:
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -697,8 +713,7 @@
"@babel/plugin-transform-modules-commonjs@^7.6.0":
version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
- integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486"
dependencies:
"@babel/helper-module-transforms" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -714,8 +729,7 @@
"@babel/plugin-transform-modules-systemjs@^7.5.0":
version "7.5.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249"
- integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249"
dependencies:
"@babel/helper-hoist-variables" "^7.4.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -730,18 +744,16 @@
"@babel/plugin-transform-modules-umd@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
- integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
dependencies:
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz#aaa6e409dd4fb2e50b6e2a91f7e3a3149dbce0cf"
- integrity sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1"
dependencies:
- regexpu-core "^4.6.0"
+ regexp-tree "^0.1.13"
"@babel/plugin-transform-new-target@^7.0.0":
version "7.0.0"
@@ -751,8 +763,7 @@
"@babel/plugin-transform-new-target@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
- integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -765,8 +776,7 @@
"@babel/plugin-transform-object-super@^7.5.5":
version "7.5.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
- integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.5.5"
@@ -781,8 +791,7 @@
"@babel/plugin-transform-parameters@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
- integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
dependencies:
"@babel/helper-call-delegate" "^7.4.4"
"@babel/helper-get-function-arity" "^7.0.0"
@@ -790,8 +799,7 @@
"@babel/plugin-transform-property-literals@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
- integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -831,15 +839,13 @@
"@babel/plugin-transform-regenerator@^7.4.5":
version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
- integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
dependencies:
regenerator-transform "^0.14.0"
"@babel/plugin-transform-reserved-words@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634"
- integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -851,8 +857,7 @@
"@babel/plugin-transform-shorthand-properties@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
- integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -862,10 +867,9 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-spread@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd"
- integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==
+"@babel/plugin-transform-spread@^7.2.0":
+ version "7.2.2"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -878,8 +882,7 @@
"@babel/plugin-transform-sticky-regex@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
- integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
@@ -893,8 +896,7 @@
"@babel/plugin-transform-template-literals@^7.4.4":
version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
- integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -907,8 +909,7 @@
"@babel/plugin-transform-typeof-symbol@^7.2.0":
version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
- integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
@@ -920,19 +921,17 @@
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.1.3"
-"@babel/plugin-transform-unicode-regex@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698"
- integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==
+"@babel/plugin-transform-unicode-regex@^7.4.4":
+ version "7.4.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.6.0"
+ regexpu-core "^4.5.4"
-"@babel/polyfill@^7.6.0":
+"@babel/polyfill@^7.4.4":
version "7.6.0"
- resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.6.0.tgz#6d89203f8b6cd323e8d946e47774ea35dc0619cc"
- integrity sha512-q5BZJI0n/B10VaQQvln1IlDK3BTBJFbADx7tv+oXDPIDZuTo37H5Adb9jhlXm/fEN4Y7/64qD9mnrJJG7rmaTw==
+ resolved "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.6.0.tgz#6d89203f8b6cd323e8d946e47774ea35dc0619cc"
dependencies:
core-js "^2.6.5"
regenerator-runtime "^0.13.2"
@@ -983,19 +982,18 @@
js-levenshtein "^1.1.3"
semver "^5.3.0"
-"@babel/preset-env@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.3.tgz#9e1bf05a2e2d687036d24c40e4639dc46cef2271"
- integrity sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==
+"@babel/preset-env@^7.5.5":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50"
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-async-generator-functions" "^7.2.0"
"@babel/plugin-proposal-dynamic-import" "^7.5.0"
"@babel/plugin-proposal-json-strings" "^7.2.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.6.2"
+ "@babel/plugin-proposal-object-rest-spread" "^7.5.5"
"@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.6.2"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
"@babel/plugin-syntax-async-generators" "^7.2.0"
"@babel/plugin-syntax-dynamic-import" "^7.2.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
@@ -1004,11 +1002,11 @@
"@babel/plugin-transform-arrow-functions" "^7.2.0"
"@babel/plugin-transform-async-to-generator" "^7.5.0"
"@babel/plugin-transform-block-scoped-functions" "^7.2.0"
- "@babel/plugin-transform-block-scoping" "^7.6.3"
+ "@babel/plugin-transform-block-scoping" "^7.6.0"
"@babel/plugin-transform-classes" "^7.5.5"
"@babel/plugin-transform-computed-properties" "^7.2.0"
"@babel/plugin-transform-destructuring" "^7.6.0"
- "@babel/plugin-transform-dotall-regex" "^7.6.2"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/plugin-transform-duplicate-keys" "^7.5.0"
"@babel/plugin-transform-exponentiation-operator" "^7.2.0"
"@babel/plugin-transform-for-of" "^7.4.4"
@@ -1019,7 +1017,7 @@
"@babel/plugin-transform-modules-commonjs" "^7.6.0"
"@babel/plugin-transform-modules-systemjs" "^7.5.0"
"@babel/plugin-transform-modules-umd" "^7.2.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.3"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0"
"@babel/plugin-transform-new-target" "^7.4.4"
"@babel/plugin-transform-object-super" "^7.5.5"
"@babel/plugin-transform-parameters" "^7.4.4"
@@ -1027,12 +1025,12 @@
"@babel/plugin-transform-regenerator" "^7.4.5"
"@babel/plugin-transform-reserved-words" "^7.2.0"
"@babel/plugin-transform-shorthand-properties" "^7.2.0"
- "@babel/plugin-transform-spread" "^7.6.2"
+ "@babel/plugin-transform-spread" "^7.2.0"
"@babel/plugin-transform-sticky-regex" "^7.2.0"
"@babel/plugin-transform-template-literals" "^7.4.4"
"@babel/plugin-transform-typeof-symbol" "^7.2.0"
- "@babel/plugin-transform-unicode-regex" "^7.6.2"
- "@babel/types" "^7.6.3"
+ "@babel/plugin-transform-unicode-regex" "^7.4.4"
+ "@babel/types" "^7.6.0"
browserslist "^4.6.0"
core-js-compat "^3.1.1"
invariant "^2.2.2"
@@ -1049,21 +1047,9 @@
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
-"@babel/preset-react@^7.6.3":
- version "7.6.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.6.3.tgz#d5242c828322520205ae4eda5d4f4f618964e2f6"
- integrity sha512-07yQhmkZmRAfwREYIQgW0HEwMY9GBJVuPY4Q12UC72AbfaawuupVWa8zQs2tlL+yun45Nv/1KreII/0PLfEsgA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
-
-"@babel/register@^7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.6.2.tgz#25765a922202cb06f8bdac5a3b1e70cd6bf3dd45"
- integrity sha512-xgZk2LRZvt6i2SAUWxc7ellk4+OYRgS3Zpsnr13nMS1Qo25w21Uu8o6vTOAqNaxiqrnv30KTYzh9YWY2k21CeQ==
+"@babel/register@^7.5.5":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/register/-/register-7.6.0.tgz#76b6f466714680f4becafd45beeb2a7b87431abf"
dependencies:
find-cache-dir "^2.0.0"
lodash "^4.17.13"
@@ -1071,19 +1057,45 @@
pirates "^4.0.0"
source-map-support "^0.5.9"
-"@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
+"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.4.4", "@babel/template@^7.6.0":
version "7.6.0"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6"
- integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/parser" "^7.6.0"
"@babel/types" "^7.6.0"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3":
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6":
+ version "7.1.6"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.1.6"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-split-export-declaration" "^7.0.0"
+ "@babel/parser" "^7.1.6"
+ "@babel/types" "^7.1.6"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.10"
+
+"@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0":
+ version "7.6.0"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516"
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ "@babel/generator" "^7.6.0"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/parser" "^7.6.0"
+ "@babel/types" "^7.6.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.13"
+
+"@babel/traverse@^7.6.2":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9"
- integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/generator" "^7.6.3"
@@ -1095,10 +1107,25 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
+"@babel/types@^7.0.0", "@babel/types@^7.1.6":
+ version "7.1.6"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz#0adb330c3a281348a190263aceb540e10f04bcce"
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.10"
+ to-fast-properties "^2.0.0"
+
+"@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0":
+ version "7.6.1"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648"
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+"@babel/types@^7.6.3":
version "7.6.3"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
- integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==
dependencies:
esutils "^2.0.2"
lodash "^4.17.13"
@@ -1269,7 +1296,6 @@
"@sindresorhus/is@^0.7.0":
version "0.7.0"
resolved "https://registry.npm.taobao.org/@sindresorhus/is/download/@sindresorhus/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
- integrity sha1-mgb08TfuhNffBGDB/bETX/psUP0=
"@types/acorn@^4.0.3":
version "4.0.3"
@@ -1297,7 +1323,6 @@
"@types/q@^1.5.1":
version "1.5.2"
resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
- integrity sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=
JSONStream@^1.0.4:
version "1.3.5"
@@ -1319,8 +1344,7 @@ accepts@~1.3.4, accepts@~1.3.5:
accepts@~1.3.7:
version "1.3.7"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
- integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
dependencies:
mime-types "~2.1.24"
negotiator "0.6.2"
@@ -1374,10 +1398,9 @@ add-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa"
-address@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
- integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+address@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709"
address@^1.0.1:
version "1.0.3"
@@ -1443,8 +1466,7 @@ ansi-escapes@^3.0.0:
ansi-escapes@^3.2.0:
version "3.2.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
- integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
ansi-html@0.0.7:
version "0.0.7"
@@ -1466,8 +1488,7 @@ ansi-regex@^3.0.0:
ansi-regex@^4.1.0:
version "4.1.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
- integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
ansi-styles@^2.2.1:
version "2.2.1"
@@ -1498,10 +1519,9 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-anymatch@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
- integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+anymatch@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.0.tgz#e609350e50a9313b472789b2f14ef35808ee14d6"
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
@@ -1513,12 +1533,10 @@ aproba@^1.0.3:
arch@^2.1.0:
version "2.1.1"
resolved "https://registry.npm.taobao.org/arch/download/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
- integrity sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=
archive-type@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/archive-type/download/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70"
- integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=
dependencies:
file-type "^4.2.0"
@@ -1610,7 +1628,6 @@ array-uniq@^1.0.1:
array-uniq@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/array-uniq/download/array-uniq-2.1.0.tgz#46603d5e28e79bfd02b046fcc1d77c6820bd8e98"
- integrity sha1-RmA9Xijnm/0CsEb8wdd8aCC9jpg=
array-unique@^0.2.1:
version "0.2.1"
@@ -1666,14 +1683,13 @@ async-each@^1.0.0:
async-each@^1.0.1:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
- integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+ resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
async-foreach@^0.1.3:
version "0.1.3"
resolved "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
-async@2.6.1, async@^2.0.0, async@^2.1.2, async@^2.5.0:
+async@2.6.1, async@^2.0.0, async@^2.1.2:
version "2.6.1"
resolved "https://registry.npmjs.org/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
dependencies:
@@ -1683,13 +1699,6 @@ async@^1.5.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.6.2:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
- integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
- dependencies:
- lodash "^4.17.14"
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1701,7 +1710,6 @@ atob@^2.1.1:
autolinker@~0.28.0:
version "0.28.1"
resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
- integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
dependencies:
gulp-header "^1.7.1"
@@ -1716,18 +1724,17 @@ autoprefixer@^6.3.1:
postcss "^5.2.16"
postcss-value-parser "^3.2.3"
-autoprefixer@^9.6.1:
- version "9.7.0"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.0.tgz#905ec19e50f04545fe9ff131182cc9ab25246901"
- integrity sha512-j2IRvaCfrUxIiZun9ba4mhJ2omhw4OY88/yVzLO+lHhGBumAAK72PgM6gkbSN8iregPOn1ZlxGkmZh2CQ7X4AQ==
+autoprefixer@^9.6.0:
+ version "9.6.1"
+ resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47"
dependencies:
- browserslist "^4.7.2"
- caniuse-lite "^1.0.30001004"
+ browserslist "^4.6.3"
+ caniuse-lite "^1.0.30000980"
chalk "^2.4.2"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
- postcss "^7.0.19"
- postcss-value-parser "^4.0.2"
+ postcss "^7.0.17"
+ postcss-value-parser "^4.0.0"
aws-sign2@~0.7.0:
version "0.7.0"
@@ -1934,8 +1941,7 @@ babel-plugin-check-es2015-constants@^6.22.0:
babel-plugin-dynamic-import-node@^2.3.0:
version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
- integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
+ resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
dependencies:
object.assign "^4.1.0"
@@ -2363,7 +2369,6 @@ balanced-match@^0.4.2:
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
- integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-js@^1.0.2:
version "1.3.0"
@@ -2397,13 +2402,11 @@ big.js@^3.1.3:
big.js@^5.2.2:
version "5.2.2"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
- integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+ resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
bin-build@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/bin-build/download/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861"
- integrity sha1-xXgKJaip+WbYJEIX5sH1CCoUOGE=
dependencies:
decompress "^4.0.0"
download "^6.2.2"
@@ -2414,7 +2417,6 @@ bin-build@^3.0.0:
bin-check@^4.1.0:
version "4.1.0"
resolved "https://registry.npm.taobao.org/bin-check/download/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49"
- integrity sha1-/ElZcL3Ii7HVo1/BfmXEoUn8Skk=
dependencies:
execa "^0.7.0"
executable "^4.1.0"
@@ -2422,7 +2424,6 @@ bin-check@^4.1.0:
bin-version-check@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/bin-version-check/download/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71"
- integrity sha1-fYGcYklpkfgNiT5uAqMDI2Fgj3E=
dependencies:
bin-version "^3.0.0"
semver "^5.6.0"
@@ -2431,7 +2432,6 @@ bin-version-check@^4.0.0:
bin-version@^3.0.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/bin-version/download/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839"
- integrity sha1-WwnrKAdSsb0o8MnbP5by9DtsCDk=
dependencies:
execa "^1.0.0"
find-versions "^3.0.0"
@@ -2439,7 +2439,6 @@ bin-version@^3.0.0:
bin-wrapper@^4.0.0:
version "4.1.0"
resolved "https://registry.npm.taobao.org/bin-wrapper/download/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605"
- integrity sha1-mTSPLPhQMePvfvzn5TAK6q6WBgU=
dependencies:
bin-check "^4.1.0"
bin-version-check "^4.0.0"
@@ -2454,8 +2453,7 @@ binary-extensions@^1.0.0:
binary-extensions@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
- integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
binaryextensions@^2.1.2:
version "2.1.2"
@@ -2495,8 +2493,7 @@ body-parser@1.18.3:
body-parser@1.19.0:
version "1.19.0"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
- integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+ resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
dependencies:
bytes "3.1.0"
content-type "~1.0.4"
@@ -2536,7 +2533,6 @@ boolbase@^1.0.0, boolbase@~1.0.0:
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -2564,10 +2560,9 @@ braces@^2.3.0, braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@~3.0.2:
+braces@^3.0.2:
version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
dependencies:
fill-range "^7.0.1"
@@ -2628,14 +2623,13 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17"
- integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==
+browserslist@4.6.6:
+ version "4.6.6"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453"
dependencies:
- caniuse-lite "^1.0.30000989"
- electron-to-chromium "^1.3.247"
- node-releases "^1.1.29"
+ caniuse-lite "^1.0.30000984"
+ electron-to-chromium "^1.3.191"
+ node-releases "^1.1.25"
browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
version "1.7.7"
@@ -2644,14 +2638,13 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
caniuse-db "^1.0.30000639"
electron-to-chromium "^1.2.7"
-browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.7.1, browserslist@^4.7.2:
- version "4.7.2"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348"
- integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==
+browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.6:
+ version "4.7.0"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17"
dependencies:
- caniuse-lite "^1.0.30001004"
- electron-to-chromium "^1.3.295"
- node-releases "^1.1.38"
+ caniuse-lite "^1.0.30000989"
+ electron-to-chromium "^1.3.247"
+ node-releases "^1.1.29"
browserslist@^4.1.0:
version "4.3.4"
@@ -2717,7 +2710,6 @@ buffer@^4.3.0:
buffer@^5.2.1:
version "5.2.1"
resolved "https://registry.npm.taobao.org/buffer/download/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
- integrity sha1-3Vf6DxCaxZxgJHkETcp7iz0LcdY=
dependencies:
base64-js "^1.0.2"
ieee754 "^1.1.4"
@@ -2748,8 +2740,7 @@ bytes@3.0.0:
bytes@3.1.0:
version "3.1.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
- integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
cache-base@^1.0.1:
version "1.0.1"
@@ -2768,7 +2759,6 @@ cache-base@^1.0.1:
cacheable-request@^2.1.1:
version "2.1.4"
resolved "https://registry.npm.taobao.org/cacheable-request/download/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d"
- integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=
dependencies:
clone-response "1.0.2"
get-stream "3.0.0"
@@ -2861,8 +2851,7 @@ caniuse-api@^1.5.2:
caniuse-api@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
- integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+ resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
dependencies:
browserslist "^4.0.0"
caniuse-lite "^1.0.0"
@@ -2873,10 +2862,9 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000910"
resolved "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000910.tgz#58cca84780223291c28e92d97a9b1512260a9a8e"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001004:
- version "1.0.30001004"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001004.tgz#d879b73981b255488316da946c39327d8c00a586"
- integrity sha512-3nfOR4O8Wa2RWoYfJkMtwRVOsK96TQ+eq57wd0iKaEWl8dwG4hKZ/g0MVBfCvysFvMLi9fQGR/DvozMdkEPl3g==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000984, caniuse-lite@^1.0.30000989:
+ version "1.0.30000989"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9"
caniuse-lite@^1.0.30000899:
version "1.0.30000910"
@@ -2893,7 +2881,6 @@ caseless@~0.12.0:
caw@^2.0.0, caw@^2.0.1:
version "2.0.1"
resolved "https://registry.npm.taobao.org/caw/download/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
- integrity sha1-bDygcfwZRyCIPC3F2psHS/x+npU=
dependencies:
get-proxy "^2.0.0"
isurl "^1.0.0-alpha5"
@@ -2915,10 +2902,9 @@ chalk@2.3.1:
escape-string-regexp "^1.0.5"
supports-color "^5.2.0"
-chalk@2.4.2, chalk@^2.4.2:
+chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
@@ -2934,14 +2920,6 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1:
- version "2.4.1"
- resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
chalk@~0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
@@ -3000,8 +2978,7 @@ chokidar@^2.0.0, chokidar@^2.0.2:
chokidar@^2.0.4:
version "2.1.8"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
- integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
dependencies:
anymatch "^2.0.0"
async-each "^1.0.1"
@@ -3018,19 +2995,18 @@ chokidar@^2.0.4:
fsevents "^1.2.7"
chokidar@^3.0.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.2.2.tgz#a433973350021e09f2b853a2287781022c0dc935"
- integrity sha512-bw3pm7kZ2Wa6+jQWYP/c7bAZy3i4GwiIiMO2EeRjrE48l8vBqC/WvFhSF0xyM8fQiPEGvwMY/5bqDG7sSEOuhg==
- dependencies:
- anymatch "~3.1.1"
- braces "~3.0.2"
- glob-parent "~5.1.0"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.2.0"
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.1.0.tgz#ff23d077682a90eadd209bfa76eb10ed6d359668"
+ dependencies:
+ anymatch "^3.1.0"
+ braces "^3.0.2"
+ glob-parent "^5.0.0"
+ is-binary-path "^2.1.0"
+ is-glob "^4.0.1"
+ normalize-path "^3.0.0"
+ readdirp "^3.1.1"
optionalDependencies:
- fsevents "~2.1.1"
+ fsevents "^2.0.6"
chownr@^1.1.1:
version "1.1.1"
@@ -3169,7 +3145,6 @@ clone-deep@^2.0.1:
clone-response@1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/clone-response/download/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
- integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
dependencies:
mimic-response "^1.0.0"
@@ -3211,7 +3186,6 @@ co@^4.6.0:
coa@^2.0.2:
version "2.0.2"
resolved "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=
dependencies:
"@types/q" "^1.5.1"
chalk "^2.4.1"
@@ -3282,8 +3256,7 @@ color@^2.0.1:
color@^3.0.0:
version "3.1.2"
- resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
- integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
+ resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
dependencies:
color-convert "^1.9.1"
color-string "^1.5.2"
@@ -3338,6 +3311,10 @@ commander@^2.14.1, commander@^2.15.1, commander@^2.9.0:
resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
commander@^2.20.0:
+ version "2.20.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
+
+commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -3384,7 +3361,6 @@ compression@^1.5.2:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream@^1.6.0:
version "1.6.2"
@@ -3398,14 +3374,12 @@ concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.2, concat-stream
concat-with-sourcemaps@*, concat-with-sourcemaps@^1.0.5:
version "1.1.0"
resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
- integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
dependencies:
source-map "^0.6.1"
config-chain@^1.1.11:
version "1.1.12"
resolved "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
- integrity sha1-D96NCRIA616AjK8l/mGMAvSOTvo=
dependencies:
ini "^1.3.4"
proto-list "~1.2.1"
@@ -3443,7 +3417,6 @@ content-disposition@0.5.2:
content-disposition@0.5.3, content-disposition@^0.5.2:
version "0.5.3"
resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
- integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=
dependencies:
safe-buffer "5.1.2"
@@ -3752,19 +3725,17 @@ cookie@0.3.1:
cookie@0.4.0:
version "0.4.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
- integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
core-js-compat@^3.1.1:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.3.3.tgz#82642808cf484a35292b2f8e83ef9376884e760f"
- integrity sha512-GNZkENsx5pMnS7Inwv7ZO/s3B68a9WU5kIjxqrD/tkNR8mtfXJRk8fAKRlbvWZSGPc59/TkiOBDYl5Cb65pTVA==
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150"
dependencies:
- browserslist "^4.7.1"
+ browserslist "^4.6.6"
semver "^6.3.0"
core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
@@ -3772,14 +3743,12 @@ core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
resolved "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
core-js@^2.6.5:
- version "2.6.10"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f"
- integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cosmiconfig@5.0.6:
version "5.0.6"
@@ -3789,18 +3758,6 @@ cosmiconfig@5.0.6:
js-yaml "^3.9.0"
parse-json "^4.0.0"
-cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
- version "2.2.2"
- resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892"
- dependencies:
- is-directory "^0.3.1"
- js-yaml "^3.4.3"
- minimist "^1.2.0"
- object-assign "^4.1.0"
- os-homedir "^1.0.1"
- parse-json "^2.2.0"
- require-from-string "^1.1.0"
-
cosmiconfig@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
@@ -3812,8 +3769,7 @@ cosmiconfig@^4.0.0:
cosmiconfig@^5.0.0:
version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+ resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
dependencies:
import-fresh "^2.0.0"
is-directory "^0.3.1"
@@ -3918,8 +3874,7 @@ css-color-names@0.0.4, css-color-names@^0.0.4:
css-declaration-sorter@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
- integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
+ resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
dependencies:
postcss "^7.0.1"
timsort "^0.3.0"
@@ -3957,7 +3912,6 @@ css-modules-loader-core@^1.1.0:
css-select-base-adapter@^0.1.1:
version "0.1.1"
resolved "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
- integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=
css-select@^1.1.0, css-select@~1.2.0:
version "1.2.0"
@@ -4001,16 +3955,14 @@ css-tree@1.0.0-alpha.29:
css-tree@1.0.0-alpha.33:
version "1.0.0-alpha.33"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e"
- integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e"
dependencies:
mdn-data "2.0.4"
source-map "^0.5.3"
css-unit-converter@^1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
- integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
+ resolved "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
css-url-regex@^1.1.0:
version "1.1.0"
@@ -4035,13 +3987,11 @@ cssesc@^0.1.0:
cssesc@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
- integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+ resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
cssnano-preset-default@^4.0.7:
version "4.0.7"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
- integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
+ resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
dependencies:
css-declaration-sorter "^4.0.1"
cssnano-util-raw-cache "^4.0.1"
@@ -4076,25 +4026,21 @@ cssnano-preset-default@^4.0.7:
cssnano-util-get-arguments@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
- integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+ resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
cssnano-util-get-match@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
- integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
+ resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
cssnano-util-raw-cache@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
- integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+ resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
dependencies:
postcss "^7.0.0"
cssnano-util-same-parent@^4.0.0:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
- integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+ resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
cssnano@^3.10.0:
version "3.10.0"
@@ -4133,10 +4079,9 @@ cssnano@^3.10.0:
postcss-value-parser "^3.2.3"
postcss-zindex "^2.0.1"
-cssnano@^4.1.10:
+cssnano@^4.1.0, cssnano@^4.1.8:
version "4.1.10"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
- integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
+ resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
dependencies:
cosmiconfig "^5.0.0"
cssnano-preset-default "^4.0.7"
@@ -4146,7 +4091,6 @@ cssnano@^4.1.10:
csso@^3.5.1:
version "3.5.1"
resolved "https://registry.npm.taobao.org/csso/download/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
- integrity sha1-e564vmFiiXPBsmHhadLwJACOdYs=
dependencies:
css-tree "1.0.0-alpha.29"
@@ -4225,7 +4169,7 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-debug@^3.1.0, debug@^3.1.1, debug@^3.2.5:
+debug@^3.1.0, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
dependencies:
@@ -4261,7 +4205,6 @@ decompress-response@^3.2.0, decompress-response@^3.3.0:
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
version "4.1.1"
resolved "https://registry.npm.taobao.org/decompress-tar/download/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
- integrity sha1-cYy9P8sWIJcW5womuE57pFkuWvE=
dependencies:
file-type "^5.2.0"
is-stream "^1.1.0"
@@ -4270,7 +4213,6 @@ decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
decompress-tarbz2@^4.0.0:
version "4.1.1"
resolved "https://registry.npm.taobao.org/decompress-tarbz2/download/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
- integrity sha1-MIKluIDqQEOBY0nzeLVsUWvho5s=
dependencies:
decompress-tar "^4.1.0"
file-type "^6.1.0"
@@ -4281,7 +4223,6 @@ decompress-tarbz2@^4.0.0:
decompress-targz@^4.0.0:
version "4.1.1"
resolved "https://registry.npm.taobao.org/decompress-targz/download/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
- integrity sha1-wJvDXE0R894J8tLaU+neI+fOHu4=
dependencies:
decompress-tar "^4.1.1"
file-type "^5.2.0"
@@ -4290,7 +4231,6 @@ decompress-targz@^4.0.0:
decompress-unzip@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/decompress-unzip/download/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
- integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k=
dependencies:
file-type "^3.8.0"
get-stream "^2.2.0"
@@ -4300,7 +4240,6 @@ decompress-unzip@^4.0.1:
decompress@^4.0.0, decompress@^4.2.0:
version "4.2.0"
resolved "https://registry.npm.taobao.org/decompress/download/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
- integrity sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=
dependencies:
decompress-tar "^4.0.0"
decompress-tarbz2 "^4.0.0"
@@ -4330,7 +4269,6 @@ deep-extend@^0.6.0:
deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
- integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
default-gateway@^2.6.0:
version "2.7.2"
@@ -4504,20 +4442,19 @@ doctrine@^2.1.0:
esutils "^2.0.2"
docusaurus@^2.0.0-alpha.23:
- version "2.0.0-alpha.30"
- resolved "https://registry.yarnpkg.com/docusaurus/-/docusaurus-2.0.0-alpha.30.tgz#88c1763c5106f29dae1b1783b5c89b03ab4d236e"
- integrity sha512-iSGSeZ8YnsUfU/sW7FlyTHT+9yRvRlkxWv61fS1li8Qng6ftovdCHYe0z8/R3nz0MsGw41Nx5T6GpmIRWc033Q==
+ version "2.0.0-alpha.24"
+ resolved "https://registry.npmjs.org/docusaurus/-/docusaurus-2.0.0-alpha.24.tgz#cf3d29bfefec178fbf385471566aa7587432bc12"
dependencies:
- "@babel/core" "^7.6.4"
+ "@babel/core" "^7.5.5"
"@babel/plugin-proposal-class-properties" "^7.5.5"
- "@babel/plugin-proposal-object-rest-spread" "^7.6.2"
- "@babel/polyfill" "^7.6.0"
- "@babel/preset-env" "^7.6.3"
- "@babel/preset-react" "^7.6.3"
- "@babel/register" "^7.6.2"
- "@babel/traverse" "^7.6.3"
- "@babel/types" "^7.6.3"
- autoprefixer "^9.6.1"
+ "@babel/plugin-proposal-object-rest-spread" "^7.5.5"
+ "@babel/polyfill" "^7.4.4"
+ "@babel/preset-env" "^7.5.5"
+ "@babel/preset-react" "^7.0.0"
+ "@babel/register" "^7.5.5"
+ "@babel/traverse" "^7.5.5"
+ "@babel/types" "^7.5.5"
+ autoprefixer "^9.6.0"
babylon "^6.18.0"
chalk "^2.4.2"
chokidar "^3.0.2"
@@ -4526,7 +4463,7 @@ docusaurus@^2.0.0-alpha.23:
commander "^2.20.0"
cross-spawn "^6.0.5"
crowdin-cli "^0.3.0"
- cssnano "^4.1.10"
+ cssnano "^4.1.0"
escape-string-regexp "^2.0.0"
express "^4.17.1"
feed "^1.1.0"
@@ -4539,24 +4476,23 @@ docusaurus@^2.0.0-alpha.23:
imagemin-jpegtran "^6.0.0"
imagemin-optipng "^6.0.0"
imagemin-svgo "^7.0.0"
- lodash "^4.17.15"
+ lodash "^4.17.14"
markdown-toc "^1.2.0"
mkdirp "^0.5.1"
portfinder "^1.0.21"
postcss "^7.0.17"
- prismjs "^1.17.1"
+ prismjs "^1.16.0"
react "^16.8.4"
react-dev-utils "^9.0.1"
react-dom "^16.8.4"
- remarkable "^1.7.4"
+ remarkable "^1.7.1"
request "^2.88.0"
shelljs "^0.8.3"
sitemap "^3.2.2"
- striptags "^3.1.1"
tcp-port-used "^1.0.1"
tiny-lr "^1.1.1"
tree-node-cli "^1.2.5"
- truncate-html "^1.0.2"
+ truncate-html "^1.0.1"
dom-converter@~0.2:
version "0.2.0"
@@ -4627,15 +4563,13 @@ dot-prop@^3.0.0:
dot-prop@^4.1.1:
version "4.2.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
- integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
+ resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
dependencies:
is-obj "^1.0.0"
download@^6.2.2:
version "6.2.5"
resolved "https://registry.npm.taobao.org/download/download/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714"
- integrity sha1-rNalQuTNC7Qspwz8mMnkOwcDlxQ=
dependencies:
caw "^2.0.0"
content-disposition "^0.5.2"
@@ -4652,7 +4586,6 @@ download@^6.2.2:
download@^7.1.0:
version "7.1.0"
resolved "https://registry.npm.taobao.org/download/download/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233"
- integrity sha1-kFmqnXC1A+52oTKJe+beyOVYcjM=
dependencies:
archive-type "^4.0.0"
caw "^2.0.1"
@@ -4705,10 +4638,9 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.82:
version "1.3.84"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz#2e55df59e818f150a9f61b53471ebf4f0feecc65"
-electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.295:
- version "1.3.296"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz#a1d4322d742317945285d3ba88966561b67f3ac8"
- integrity sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ==
+electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.247:
+ version "1.3.261"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.261.tgz#51b35a3126fb09b6852f24e907a6d3bd01c67724"
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -4781,7 +4713,6 @@ error@^7.0.0, error@^7.0.2:
es-abstract@^1.12.0:
version "1.13.0"
resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
- integrity sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=
dependencies:
es-to-primitive "^1.2.0"
function-bind "^1.1.1"
@@ -4871,8 +4802,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
escape-string-regexp@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
escope@^3.6.0:
version "3.6.0"
@@ -5170,7 +5100,6 @@ execa@^1.0.0:
executable@^4.1.0:
version "4.1.1"
resolved "https://registry.npm.taobao.org/executable/download/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c"
- integrity sha1-QVMr/zYdPlevTXY7cFgtsY9dEzw=
dependencies:
pify "^2.2.0"
@@ -5245,8 +5174,7 @@ express@^4.16.2:
express@^4.17.1:
version "4.17.1"
- resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
- integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+ resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
dependencies:
accepts "~1.3.7"
array-flatten "1.1.1"
@@ -5282,14 +5210,12 @@ express@^4.17.1:
ext-list@^2.0.0:
version "2.2.2"
resolved "https://registry.npm.taobao.org/ext-list/download/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
- integrity sha1-C5jmTtgvWs8PKTG6v2khLvUt3Tc=
dependencies:
mime-db "^1.28.0"
ext-name@^5.0.0:
version "5.0.0"
resolved "https://registry.npm.taobao.org/ext-name/download/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6"
- integrity sha1-cHgZgdGD7hXROZPIgiBFxQbI8KY=
dependencies:
ext-list "^2.0.0"
sort-keys-length "^1.0.0"
@@ -5337,8 +5263,7 @@ external-editor@^3.0.0:
external-editor@^3.0.3:
version "3.1.0"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
- integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
dependencies:
chardet "^0.7.0"
iconv-lite "^0.4.24"
@@ -5449,32 +5374,26 @@ file-entry-cache@^2.0.0:
file-type@5.2.0, file-type@^5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
- integrity sha1-LdvqfHP/42No365J3DOMBYwritY=
file-type@^10.4.0, file-type@^10.7.0:
version "10.11.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890"
- integrity sha1-KWHQnkZ1ufuaPua2npzSP0P9GJA=
file-type@^3.8.0:
version "3.9.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
- integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
file-type@^4.2.0:
version "4.4.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5"
- integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU=
file-type@^6.1.0:
version "6.2.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
- integrity sha1-5QzXXTVv/tTjBtxPW89Sp5kDqRk=
file-type@^8.1.0:
version "8.1.0"
resolved "https://registry.npm.taobao.org/file-type/download/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c"
- integrity sha1-JE87fvZBu+DMoZbHJ25LMyOZ9ow=
filename-regex@^2.0.0:
version "2.0.1"
@@ -5487,7 +5406,6 @@ filename-reserved-regex@^1.0.0:
filename-reserved-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/filename-reserved-regex/download/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
- integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik=
filenamify-url@^1.0.0:
version "1.0.0"
@@ -5507,7 +5425,6 @@ filenamify@^1.0.0:
filenamify@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/filenamify/download/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9"
- integrity sha1-iPr0lfsbR6v9YSMAACoWIoxnfuk=
dependencies:
filename-reserved-regex "^2.0.0"
strip-outer "^1.0.0"
@@ -5515,8 +5432,7 @@ filenamify@^2.0.0:
filesize@3.6.1:
version "3.6.1"
- resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
- integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
+ resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
fill-range@^2.1.0:
version "2.2.4"
@@ -5539,8 +5455,7 @@ fill-range@^4.0.0:
fill-range@^7.0.1:
version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
dependencies:
to-regex-range "^5.0.1"
@@ -5558,8 +5473,7 @@ finalhandler@1.1.1:
finalhandler@~1.1.2:
version "1.1.2"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
- integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
@@ -5587,8 +5501,7 @@ find-cache-dir@^1.0.0:
find-cache-dir@^2.0.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
- integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
dependencies:
commondir "^1.0.1"
make-dir "^2.0.0"
@@ -5620,7 +5533,6 @@ find-up@^2.0.0, find-up@^2.1.0:
find-versions@^3.0.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/find-versions/download/find-versions-3.1.0.tgz#10161f29cf3eb4350dec10a29bdde75bff0df32d"
- integrity sha1-EBYfKc8+tDUN7BCim93nW/8N8y0=
dependencies:
array-uniq "^2.1.0"
semver-regex "^2.0.0"
@@ -5661,7 +5573,6 @@ for-in@^0.1.3:
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^0.1.4:
version "0.1.5"
@@ -5681,8 +5592,7 @@ forever-agent@~0.6.1:
fork-ts-checker-webpack-plugin@1.5.0:
version "1.5.0"
- resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c"
- integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==
+ resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c"
dependencies:
babel-code-frame "^6.22.0"
chalk "^2.4.1"
@@ -5718,7 +5628,6 @@ fresh@0.5.2:
from2@^2.1.1:
version "2.3.0"
resolved "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
- integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
dependencies:
inherits "^2.0.1"
readable-stream "^2.0.0"
@@ -5751,8 +5660,7 @@ fs-extra@^5.0.0:
fs-extra@^8.1.0:
version "8.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
- integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
dependencies:
graceful-fs "^4.2.0"
jsonfile "^4.0.0"
@@ -5767,7 +5675,6 @@ fs-minipass@^1.2.5:
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.2:
version "1.2.4"
@@ -5778,21 +5685,18 @@ fsevents@^1.2.2:
fsevents@^1.2.7:
version "1.2.9"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
dependencies:
nan "^2.12.1"
node-pre-gyp "^0.12.0"
-fsevents@~2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.1.tgz#74c64e21df71721845d0c44fe54b7f56b82995a9"
- integrity sha512-4FRPXWETxtigtJW/gxzEDsX1LVbPAM93VleB83kZB+ellqbHMkyt2aJfuzNLRvFPnGi6bcE5SvfxgbXPeKteJw==
+fsevents@^2.0.6:
+ version "2.0.7"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a"
fstream@^1.0.0, fstream@^1.0.2:
version "1.0.12"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
- integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==
dependencies:
graceful-fs "^4.1.2"
inherits "~2.0.0"
@@ -5831,7 +5735,6 @@ gauge@~2.7.3:
gaze@^1.0.0, gaze@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
- integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
dependencies:
globule "^1.0.0"
@@ -5866,7 +5769,6 @@ get-port@^3.2.0:
get-proxy@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/get-proxy/download/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
- integrity sha1-NJ8rTZHUTE1NTpy6KtkBQ/rF75M=
dependencies:
npm-conf "^1.1.0"
@@ -5889,7 +5791,6 @@ get-stream@3.0.0, get-stream@^3.0.0:
get-stream@^2.2.0:
version "2.3.1"
resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
- integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=
dependencies:
object-assign "^4.0.1"
pinkie-promise "^2.0.0"
@@ -5932,7 +5833,6 @@ gh-pages@^1.1.0:
gifsicle@^4.0.0:
version "4.0.1"
resolved "https://registry.npm.taobao.org/gifsicle/download/gifsicle-4.0.1.tgz#30e1e61e3ee4884ef702641b2e98a15c2127b2e2"
- integrity sha1-MOHmHj7kiE73AmQbLpihXCEnsuI=
dependencies:
bin-build "^3.0.0"
bin-wrapper "^4.0.0"
@@ -6012,10 +5912,9 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob-parent@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
- integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
+glob-parent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954"
dependencies:
is-glob "^4.0.1"
@@ -6047,7 +5946,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
glob@^7.1.3:
version "7.1.5"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0"
- integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -6064,8 +5962,7 @@ global-dirs@^0.1.0:
global-modules@2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
- integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
+ resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
dependencies:
global-prefix "^3.0.0"
@@ -6089,8 +5986,7 @@ global-prefix@^1.0.1:
global-prefix@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
- integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+ resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
dependencies:
ini "^1.3.5"
kind-of "^6.0.2"
@@ -6106,8 +6002,7 @@ globals@^9.18.0:
globby@8.0.2:
version "8.0.2"
- resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
- integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==
+ resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
dependencies:
array-union "^1.0.1"
dir-glob "2.0.0"
@@ -6202,7 +6097,6 @@ got@^7.0.0, got@^7.1.0:
got@^8.3.1:
version "8.3.2"
resolved "https://registry.npm.taobao.org/got/download/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
- integrity sha1-HSP2Q5Dpf3dsrFLluTbl9RTS6Tc=
dependencies:
"@sindresorhus/is" "^0.7.0"
cacheable-request "^2.1.1"
@@ -6226,10 +6120,13 @@ graceful-fs@4.1.11:
version "4.1.11"
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+
+graceful-fs@^4.2.0:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
"graceful-readlink@>= 1.0.0":
version "1.0.1"
@@ -6254,7 +6151,6 @@ grouped-queue@^0.3.0, grouped-queue@^0.3.3:
gulp-header@^1.7.1:
version "1.8.12"
resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
- integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
dependencies:
concat-with-sourcemaps "*"
lodash.template "^4.4.0"
@@ -6262,8 +6158,7 @@ gulp-header@^1.7.1:
gzip-size@5.1.1:
version "5.1.1"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
- integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
+ resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
dependencies:
duplexer "^0.1.1"
pify "^4.0.1"
@@ -6273,10 +6168,11 @@ handle-thing@^2.0.0:
resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
handlebars@^4.0.2:
- version "4.0.12"
- resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
- async "^2.5.0"
+ neo-async "^2.6.0"
optimist "^0.6.1"
source-map "^0.6.1"
optionalDependencies:
@@ -6386,13 +6282,11 @@ he@1.2.x:
hex-color-regex@^1.1.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
- integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+ resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
highlight.js@^9.15.8:
version "9.15.10"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2"
- integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==
+ resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2"
hmac-drbg@^1.0.0:
version "1.0.1"
@@ -6430,13 +6324,11 @@ hpack.js@^2.1.6:
hsl-regex@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
- integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+ resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
hsla-regex@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
- integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+ resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
html-comment-regex@^1.1.0:
version "1.1.2"
@@ -6493,7 +6385,6 @@ htmlparser2@~3.3.0:
http-cache-semantics@3.8.1:
version "3.8.1"
resolved "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
- integrity sha1-ObDhat2bYFvwqe89nar0hDtMrNI=
http-deceiver@^1.2.7:
version "1.2.7"
@@ -6510,8 +6401,7 @@ http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
http-errors@1.7.2:
version "1.7.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
- integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
dependencies:
depd "~1.1.2"
inherits "2.0.3"
@@ -6521,8 +6411,7 @@ http-errors@1.7.2:
http-errors@~1.7.2:
version "1.7.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
- integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
dependencies:
depd "~1.1.2"
inherits "2.0.4"
@@ -6594,7 +6483,6 @@ iconv-lite@0.4.23:
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
@@ -6625,7 +6513,6 @@ ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6:
imagemin-gifsicle@^6.0.1:
version "6.0.1"
resolved "https://registry.npm.taobao.org/imagemin-gifsicle/download/imagemin-gifsicle-6.0.1.tgz#6abad4e95566d52e5a104aba1c24b4f3b48581b3"
- integrity sha1-arrU6VVm1S5aEEq6HCS087SFgbM=
dependencies:
exec-buffer "^3.0.0"
gifsicle "^4.0.0"
@@ -6634,7 +6521,6 @@ imagemin-gifsicle@^6.0.1:
imagemin-jpegtran@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/imagemin-jpegtran/download/imagemin-jpegtran-6.0.0.tgz#c8d3bcfb6ec9c561c20a987142854be70d90b04f"
- integrity sha1-yNO8+27JxWHCCphxQoVL5w2QsE8=
dependencies:
exec-buffer "^3.0.0"
is-jpg "^2.0.0"
@@ -6643,7 +6529,6 @@ imagemin-jpegtran@^6.0.0:
imagemin-optipng@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/imagemin-optipng/download/imagemin-optipng-6.0.0.tgz#a6bfc7b542fc08fc687e83dfb131249179a51a68"
- integrity sha1-pr/HtUL8CPxofoPfsTEkkXmlGmg=
dependencies:
exec-buffer "^3.0.0"
is-png "^1.0.0"
@@ -6652,7 +6537,6 @@ imagemin-optipng@^6.0.0:
imagemin-svgo@^7.0.0:
version "7.0.0"
resolved "https://registry.npm.taobao.org/imagemin-svgo/download/imagemin-svgo-7.0.0.tgz#a22d0a5917a0d0f37e436932c30f5e000fa91b1c"
- integrity sha1-oi0KWReg0PN+Q2kyww9eAA+pGxw=
dependencies:
is-svg "^3.0.0"
svgo "^1.0.5"
@@ -6660,7 +6544,6 @@ imagemin-svgo@^7.0.0:
imagemin@^6.0.0:
version "6.1.0"
resolved "https://registry.npm.taobao.org/imagemin/download/imagemin-6.1.0.tgz#62508b465728fea36c03cdc07d915fe2d8cf9e13"
- integrity sha1-YlCLRlco/qNsA83AfZFf4tjPnhM=
dependencies:
file-type "^10.7.0"
globby "^8.0.1"
@@ -6671,10 +6554,9 @@ imagemin@^6.0.0:
immer@1.10.0:
version "1.10.0"
- resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d"
- integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==
+ resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d"
-import-cwd@^2.1.0:
+import-cwd@^2.0.0, import-cwd@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
dependencies:
@@ -6696,7 +6578,6 @@ import-from@^2.1.0:
import-lazy@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/import-lazy/download/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc"
- integrity sha1-iRJ5ICyKIoD9vWZ029jaGh38Z8w=
import-local@^2.0.0:
version "2.0.0"
@@ -6734,7 +6615,6 @@ indexof@0.0.1:
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
@@ -6742,7 +6622,6 @@ inflight@^1.0.4:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
inherits@2.0.1:
version "2.0.1"
@@ -6758,8 +6637,7 @@ ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
inquirer@6.5.0:
version "6.5.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42"
- integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42"
dependencies:
ansi-escapes "^3.2.0"
chalk "^2.4.2"
@@ -6845,7 +6723,6 @@ interpret@^1.0.0, interpret@^1.0.4:
into-stream@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/into-stream/download/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
- integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=
dependencies:
from2 "^2.1.1"
p-is-promise "^1.1.0"
@@ -6878,8 +6755,7 @@ ipaddr.js@1.8.0:
ipaddr.js@1.9.0:
version "1.9.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
- integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
+ resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
ipaddr.js@^1.5.2:
version "1.8.1"
@@ -6915,10 +6791,9 @@ is-binary-path@^1.0.0:
dependencies:
binary-extensions "^1.0.0"
-is-binary-path@~2.1.0:
+is-binary-path@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
- integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
dependencies:
binary-extensions "^2.0.0"
@@ -6944,8 +6819,7 @@ is-ci@^1.0.10, is-ci@^1.2.1:
is-color-stop@^1.0.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
- integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+ resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
dependencies:
css-color-names "^0.0.4"
hex-color-regex "^1.1.0"
@@ -7007,7 +6881,6 @@ is-extendable@^0.1.0, is-extendable@^0.1.1:
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
- integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
@@ -7038,7 +6911,6 @@ is-fullwidth-code-point@^2.0.0:
is-gif@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/is-gif/download/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1"
- integrity sha1-xL5gsmowHWlbuDOyDZtdZsbPg7E=
dependencies:
file-type "^10.4.0"
@@ -7060,17 +6932,15 @@ is-glob@^4.0.0:
dependencies:
is-extglob "^2.1.1"
-is-glob@^4.0.1, is-glob@~4.0.1:
+is-glob@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
- integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
dependencies:
is-extglob "^2.1.1"
is-jpg@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/is-jpg/download/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97"
- integrity sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=
is-module@^1.0.0:
version "1.0.0"
@@ -7079,7 +6949,6 @@ is-module@^1.0.0:
is-natural-number@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/is-natural-number/download/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
- integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=
is-number@^2.1.0:
version "2.1.0"
@@ -7099,8 +6968,7 @@ is-number@^4.0.0:
is-number@^7.0.0:
version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
@@ -7139,7 +7007,6 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
@@ -7189,8 +7056,7 @@ is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
is-root@2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
- integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
+ resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
is-scoped@^1.0.0:
version "1.0.0"
@@ -7215,7 +7081,6 @@ is-svg@^2.0.0:
is-svg@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
- integrity sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=
dependencies:
html-comment-regex "^1.1.0"
@@ -7237,8 +7102,7 @@ is-typedarray@~1.0.0:
is-url@^1.2.2:
version "1.2.4"
- resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
- integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
+ resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
is-utf8@^0.2.0:
version "0.2.1"
@@ -7254,8 +7118,7 @@ is-wsl@^1.1.0:
is2@2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a"
- integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==
+ resolved "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a"
dependencies:
deep-is "^0.1.3"
ip-regex "^2.1.0"
@@ -7268,7 +7131,6 @@ isarray@0.0.1:
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
isexe@^2.0.0:
version "2.0.0"
@@ -7283,7 +7145,6 @@ isobject@^2.0.0:
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
isstream@~0.1.2:
version "0.1.2"
@@ -7348,7 +7209,6 @@ jest-validate@^23.5.0:
jpegtran-bin@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/jpegtran-bin/download/jpegtran-bin-4.0.0.tgz#d00aed809fba7aa6f30817e59eee4ddf198f8f10"
- integrity sha1-0ArtgJ+6eqbzCBflnu5N3xmPjxA=
dependencies:
bin-build "^3.0.0"
bin-wrapper "^4.0.0"
@@ -7370,7 +7230,7 @@ js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.8.1, js-yaml@^3.9.0, js-yaml@^3.9.1:
+js-yaml@^3.10.0, js-yaml@^3.8.1, js-yaml@^3.9.0, js-yaml@^3.9.1:
version "3.12.0"
resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
dependencies:
@@ -7380,7 +7240,6 @@ js-yaml@^3.10.0, js-yaml@^3.4.3, js-yaml@^3.8.1, js-yaml@^3.9.0, js-yaml@^3.9.1:
js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
- integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -7431,7 +7290,6 @@ jsesc@~0.5.0:
json-buffer@3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
- integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
json-loader@^0.5.4:
version "0.5.7"
@@ -7471,8 +7329,7 @@ json5@^0.5.0, json5@^0.5.1:
json5@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
- integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
dependencies:
minimist "^1.2.0"
@@ -7514,7 +7371,6 @@ jsx-ast-utils@^2.0.1:
keyv@3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/keyv/download/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
- integrity sha1-RJI7o55osSp87H32wyaMAx8u83M=
dependencies:
json-buffer "3.0.0"
@@ -7786,8 +7642,7 @@ loader-runner@^2.3.0:
loader-utils@1.2.3:
version "1.2.3"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
- integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
dependencies:
big.js "^5.2.2"
emojis-list "^2.0.0"
@@ -7831,7 +7686,6 @@ locate-path@^3.0.0:
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash.assignin@^4.0.9:
version "4.2.0"
@@ -7847,8 +7701,7 @@ lodash.camelcase@4.3.0, lodash.camelcase@^4.3.0:
lodash.chunk@^4.2.0:
version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
- integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=
+ resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
lodash.debounce@^4.0.8:
version "4.0.8"
@@ -7896,8 +7749,7 @@ lodash.omit@4.5.0:
lodash.padstart@^4.6.1:
version "4.6.1"
- resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
- integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=
+ resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
lodash.pick@4.4.0, lodash.pick@^4.2.1:
version "4.4.0"
@@ -7921,8 +7773,7 @@ lodash.some@^4.4.0:
lodash.sortby@^4.7.0:
version "4.7.0"
- resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
- integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+ resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
lodash.startcase@4.4.0:
version "4.4.0"
@@ -7935,7 +7786,6 @@ lodash.tail@^4.1.1:
lodash.template@^4.0.2, lodash.template@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
- integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.templatesettings "^4.0.0"
@@ -7943,7 +7793,6 @@ lodash.template@^4.0.2, lodash.template@^4.4.0:
lodash.templatesettings@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
- integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
dependencies:
lodash._reinterpolate "^3.0.0"
@@ -7959,10 +7808,13 @@ lodash.upperfirst@4.3.1:
version "4.3.1"
resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce"
-lodash@^4.0.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10:
+lodash@^4.0.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10:
+ version "4.17.11"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+
+lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
log-symbols@^1.0.1, log-symbols@^1.0.2:
version "1.0.2"
@@ -8026,7 +7878,6 @@ lower-case@^1.1.1:
lowercase-keys@1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
- integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=
lowercase-keys@^1.0.0:
version "1.0.1"
@@ -8069,8 +7920,7 @@ make-dir@^1.0.0, make-dir@^1.2.0:
make-dir@^2.0.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
- integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
dependencies:
pify "^4.0.1"
semver "^5.6.0"
@@ -8149,8 +7999,7 @@ md5.js@^1.3.4:
mdn-data@2.0.4:
version "2.0.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
- integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+ resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
mdn-data@~1.1.0:
version "1.1.4"
@@ -8265,8 +8114,7 @@ methods@~1.1.2:
microevent.ts@~0.1.1:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
- integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==
+ resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
micromatch@^2.3.11, micromatch@^2.3.7:
version "2.3.11"
@@ -8314,7 +8162,6 @@ miller-rabin@^4.0.0:
mime-db@1.40.0, mime-db@^1.28.0:
version "1.40.0"
resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
- integrity sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=
"mime-db@>= 1.36.0 < 2", mime-db@~1.37.0:
version "1.37.0"
@@ -8328,8 +8175,7 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19:
mime-types@~2.1.24:
version "2.1.24"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
- integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
dependencies:
mime-db "1.40.0"
@@ -8339,8 +8185,7 @@ mime@1.4.1:
mime@1.6.0:
version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
mime@^2.3.1:
version "2.4.0"
@@ -8365,7 +8210,6 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
@@ -8379,7 +8223,6 @@ minimist-options@^3.0.1:
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^0.1.0:
version "0.1.0"
@@ -8391,7 +8234,8 @@ minimist@^1.1.3, minimist@^1.2.0:
minimist@~0.0.1:
version "0.0.10"
- resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.4:
version "2.3.5"
@@ -8409,7 +8253,6 @@ minizlib@^1.1.1:
mixin-deep@^1.1.3, mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
@@ -8473,8 +8316,7 @@ mute-stream@0.0.7:
nan@^2.12.1, nan@^2.13.2:
version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
nan@^2.9.2:
version "2.11.1"
@@ -8514,12 +8356,12 @@ negotiator@0.6.1:
negotiator@0.6.2:
version "0.6.2"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
- integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
-neo-async@^2.5.0:
- version "2.6.0"
- resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
+neo-async@^2.5.0, neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
nerv-markdown-loader@0.0.1:
version "0.0.1"
@@ -8619,8 +8461,7 @@ node-pre-gyp@^0.10.0:
node-pre-gyp@^0.12.0:
version "0.12.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
+ resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
dependencies:
detect-libc "^1.0.2"
mkdirp "^0.5.1"
@@ -8645,17 +8486,15 @@ node-releases@^1.0.1:
dependencies:
semver "^5.3.0"
-node-releases@^1.1.29, node-releases@^1.1.38:
- version "1.1.39"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d"
- integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==
+node-releases@^1.1.25, node-releases@^1.1.29:
+ version "1.1.32"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz#485b35c1bf9b4d8baa105d782f8ca731e518276e"
dependencies:
- semver "^6.3.0"
+ semver "^5.3.0"
node-sass@^4.12.0:
version "4.13.0"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066"
- integrity sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
@@ -8710,10 +8549,9 @@ normalize-path@^2.0.1, normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
-normalize-path@^3.0.0, normalize-path@~3.0.0:
+normalize-path@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
normalize-range@^0.1.2:
version "0.1.2"
@@ -8722,7 +8560,6 @@ normalize-range@^0.1.2:
normalize-url@2.0.1:
version "2.0.1"
resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
- integrity sha1-g1qdoVUfom9w6SMpBpojqmV01+Y=
dependencies:
prepend-http "^2.0.0"
query-string "^5.0.1"
@@ -8739,8 +8576,7 @@ normalize-url@^1.0.0, normalize-url@^1.4.0:
normalize-url@^3.0.0:
version "3.3.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
- integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+ resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
npm-bundled@^1.0.1:
version "1.0.5"
@@ -8749,7 +8585,6 @@ npm-bundled@^1.0.1:
npm-conf@^1.1.0:
version "1.1.3"
resolved "https://registry.npm.taobao.org/npm-conf/download/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
- integrity sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k=
dependencies:
config-chain "^1.1.11"
pify "^3.0.0"
@@ -8840,8 +8675,7 @@ object-hash@^1.1.4:
object-keys@^1.0.11:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+ resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
object-keys@^1.0.12:
version "1.0.12"
@@ -8855,8 +8689,7 @@ object-visit@^1.0.0:
object.assign@^4.1.0:
version "4.1.0"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
- integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
dependencies:
define-properties "^1.1.2"
function-bind "^1.1.1"
@@ -8886,7 +8719,6 @@ object.pick@^1.2.0, object.pick@^1.3.0:
object.values@^1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
- integrity sha1-v2gQ712j5TJXkOqqK+IT6oRiTak=
dependencies:
define-properties "^1.1.3"
es-abstract "^1.12.0"
@@ -8910,7 +8742,6 @@ on-headers@~1.0.1:
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
@@ -8926,8 +8757,7 @@ onetime@^2.0.0:
open@^6.3.0:
version "6.4.0"
- resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
- integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==
+ resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
dependencies:
is-wsl "^1.1.0"
@@ -8939,7 +8769,8 @@ opn@^5.1.0:
optimist@^0.6.1:
version "0.6.1"
- resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
@@ -8958,7 +8789,6 @@ optionator@^0.8.2:
optipng-bin@^5.0.0:
version "5.1.0"
resolved "https://registry.npm.taobao.org/optipng-bin/download/optipng-bin-5.1.0.tgz#a7c7ab600a3ab5a177dae2f94c2d800aa386b5a9"
- integrity sha1-p8erYAo6taF32uL5TC2ACqOGtak=
dependencies:
bin-build "^3.0.0"
bin-wrapper "^4.0.0"
@@ -8997,11 +8827,10 @@ os-browserify@^0.3.0:
os-filter-obj@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/os-filter-obj/download/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16"
- integrity sha1-HAti1fOiRCdJotE55t3e5ugdjRY=
dependencies:
arch "^2.1.0"
-os-homedir@^1.0.0, os-homedir@^1.0.1:
+os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
@@ -9054,7 +8883,6 @@ p-cancelable@^0.3.0:
p-cancelable@^0.4.0:
version "0.4.1"
resolved "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0"
- integrity sha1-NfNj1n1SCByNlYXje8zrfgu8sqA=
p-defer@^1.0.0:
version "1.0.0"
@@ -9069,14 +8897,12 @@ p-each-series@^1.0.0:
p-event@^1.0.0:
version "1.3.0"
resolved "https://registry.npm.taobao.org/p-event/download/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085"
- integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=
dependencies:
p-timeout "^1.1.1"
p-event@^2.1.0:
version "2.3.1"
resolved "https://registry.npm.taobao.org/p-event/download/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6"
- integrity sha1-WWJ57xaassPgyuiMHPuwgHmZPvY=
dependencies:
p-timeout "^2.0.1"
@@ -9119,7 +8945,6 @@ p-locate@^3.0.0:
p-map-series@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/p-map-series/download/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca"
- integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=
dependencies:
p-reduce "^1.0.0"
@@ -9152,7 +8977,6 @@ p-timeout@^1.1.1:
p-timeout@^2.0.1:
version "2.0.1"
resolved "https://registry.npm.taobao.org/p-timeout/download/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
- integrity sha1-2N0ZeVldLcATnh/ka4tkbLPN8Dg=
dependencies:
p-finally "^1.0.0"
@@ -9233,8 +9057,7 @@ parseurl@~1.3.2:
parseurl@~1.3.3:
version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
pascalcase@^0.1.1:
version "0.1.1"
@@ -9261,7 +9084,6 @@ path-exists@^3.0.0:
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
@@ -9319,8 +9141,7 @@ performance-now@^2.1.0:
picomatch@^2.0.4:
version "2.0.7"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
- integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
pidtree@^0.3.0:
version "0.3.0"
@@ -9337,7 +9158,6 @@ pify@^3.0.0:
pify@^4.0.1:
version "4.0.1"
resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
- integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=
pinkie-promise@^2.0.0:
version "2.0.1"
@@ -9375,8 +9195,7 @@ pkg-dir@^3.0.0:
pkg-up@2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
- integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
+ resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
dependencies:
find-up "^2.1.0"
@@ -9391,13 +9210,12 @@ pluralize@^7.0.0:
resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
portfinder@^1.0.21:
- version "1.0.25"
- resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca"
- integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==
+ version "1.0.24"
+ resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa"
dependencies:
- async "^2.6.2"
- debug "^3.1.1"
- mkdirp "^0.5.1"
+ async "^1.5.2"
+ debug "^2.2.0"
+ mkdirp "0.5.x"
portfinder@^1.0.9:
version "1.0.19"
@@ -9421,8 +9239,7 @@ postcss-calc@^5.2.0:
postcss-calc@^7.0.1:
version "7.0.1"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
- integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
+ resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
dependencies:
css-unit-converter "^1.1.1"
postcss "^7.0.5"
@@ -9439,8 +9256,7 @@ postcss-colormin@^2.1.8:
postcss-colormin@^4.0.3:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
- integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+ resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
dependencies:
browserslist "^4.0.0"
color "^3.0.0"
@@ -9457,8 +9273,7 @@ postcss-convert-values@^2.3.4:
postcss-convert-values@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
- integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+ resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
dependencies:
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
@@ -9471,8 +9286,7 @@ postcss-discard-comments@^2.0.4:
postcss-discard-comments@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
- integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
+ resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
dependencies:
postcss "^7.0.0"
@@ -9484,8 +9298,7 @@ postcss-discard-duplicates@^2.0.1:
postcss-discard-duplicates@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
- integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
+ resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
dependencies:
postcss "^7.0.0"
@@ -9497,8 +9310,7 @@ postcss-discard-empty@^2.0.1:
postcss-discard-empty@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
- integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
+ resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
dependencies:
postcss "^7.0.0"
@@ -9510,8 +9322,7 @@ postcss-discard-overridden@^0.1.1:
postcss-discard-overridden@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
- integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
+ resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
dependencies:
postcss "^7.0.0"
@@ -9528,28 +9339,13 @@ postcss-filter-plugins@^2.0.0:
dependencies:
postcss "^5.0.4"
-postcss-load-config@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a"
- dependencies:
- cosmiconfig "^2.1.0"
- object-assign "^4.1.0"
- postcss-load-options "^1.2.0"
- postcss-load-plugins "^2.3.0"
-
-postcss-load-options@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c"
- dependencies:
- cosmiconfig "^2.1.0"
- object-assign "^4.1.0"
-
-postcss-load-plugins@^2.3.0:
- version "2.3.0"
- resolved "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92"
+postcss-load-config@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
+ integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
dependencies:
- cosmiconfig "^2.1.1"
- object-assign "^4.1.0"
+ cosmiconfig "^5.0.0"
+ import-cwd "^2.0.0"
postcss-merge-idents@^2.1.5:
version "2.1.7"
@@ -9567,8 +9363,7 @@ postcss-merge-longhand@^2.0.1:
postcss-merge-longhand@^4.0.11:
version "4.0.11"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
- integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+ resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
dependencies:
css-color-names "0.0.4"
postcss "^7.0.0"
@@ -9587,8 +9382,7 @@ postcss-merge-rules@^2.0.3:
postcss-merge-rules@^4.0.3:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
- integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+ resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
dependencies:
browserslist "^4.0.0"
caniuse-api "^3.0.0"
@@ -9611,8 +9405,7 @@ postcss-minify-font-values@^1.0.2:
postcss-minify-font-values@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
- integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+ resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
dependencies:
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
@@ -9626,8 +9419,7 @@ postcss-minify-gradients@^1.0.1:
postcss-minify-gradients@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
- integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+ resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
dependencies:
cssnano-util-get-arguments "^4.0.0"
is-color-stop "^1.0.0"
@@ -9645,8 +9437,7 @@ postcss-minify-params@^1.0.4:
postcss-minify-params@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
- integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+ resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
dependencies:
alphanum-sort "^1.0.0"
browserslist "^4.0.0"
@@ -9666,8 +9457,7 @@ postcss-minify-selectors@^2.0.4:
postcss-minify-selectors@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
- integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+ resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
dependencies:
alphanum-sort "^1.0.0"
has "^1.0.0"
@@ -9707,9 +9497,10 @@ postcss-modules-values@1.3.0, postcss-modules-values@^1.3.0:
icss-replace-symbols "^1.1.0"
postcss "^6.0.1"
-postcss-modules@^1.1.0:
+postcss-modules@^1.4.1:
version "1.4.1"
- resolved "https://registry.npmjs.org/postcss-modules/-/postcss-modules-1.4.1.tgz#8aa35bd3461db67e27377a7ce770d77b654a84ef"
+ resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-1.4.1.tgz#8aa35bd3461db67e27377a7ce770d77b654a84ef"
+ integrity sha512-btTrbK+Xc3NBuYF8TPBjCMRSp5h6NoQ1iVZ6WiDQENIze6KIYCSf0+UFQuV3yJ7gRHA+4AAtF8i2jRvUpbBMMg==
dependencies:
css-modules-loader-core "^1.1.0"
generic-names "^1.0.3"
@@ -9725,15 +9516,13 @@ postcss-normalize-charset@^1.1.0:
postcss-normalize-charset@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
- integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
+ resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
dependencies:
postcss "^7.0.0"
postcss-normalize-display-values@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
- integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+ resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
dependencies:
cssnano-util-get-match "^4.0.0"
postcss "^7.0.0"
@@ -9741,8 +9530,7 @@ postcss-normalize-display-values@^4.0.2:
postcss-normalize-positions@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
- integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+ resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
dependencies:
cssnano-util-get-arguments "^4.0.0"
has "^1.0.0"
@@ -9751,8 +9539,7 @@ postcss-normalize-positions@^4.0.2:
postcss-normalize-repeat-style@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
- integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+ resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
dependencies:
cssnano-util-get-arguments "^4.0.0"
cssnano-util-get-match "^4.0.0"
@@ -9761,8 +9548,7 @@ postcss-normalize-repeat-style@^4.0.2:
postcss-normalize-string@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
- integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+ resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
dependencies:
has "^1.0.0"
postcss "^7.0.0"
@@ -9770,8 +9556,7 @@ postcss-normalize-string@^4.0.2:
postcss-normalize-timing-functions@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
- integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+ resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
dependencies:
cssnano-util-get-match "^4.0.0"
postcss "^7.0.0"
@@ -9779,8 +9564,7 @@ postcss-normalize-timing-functions@^4.0.2:
postcss-normalize-unicode@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
- integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+ resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
dependencies:
browserslist "^4.0.0"
postcss "^7.0.0"
@@ -9797,8 +9581,7 @@ postcss-normalize-url@^3.0.7:
postcss-normalize-url@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
- integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+ resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
dependencies:
is-absolute-url "^2.0.0"
normalize-url "^3.0.0"
@@ -9807,8 +9590,7 @@ postcss-normalize-url@^4.0.1:
postcss-normalize-whitespace@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
- integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+ resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
dependencies:
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
@@ -9822,8 +9604,7 @@ postcss-ordered-values@^2.1.0:
postcss-ordered-values@^4.1.2:
version "4.1.2"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
- integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+ resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
dependencies:
cssnano-util-get-arguments "^4.0.0"
postcss "^7.0.0"
@@ -9844,8 +9625,7 @@ postcss-reduce-initial@^1.0.0:
postcss-reduce-initial@^4.0.3:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
- integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+ resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
dependencies:
browserslist "^4.0.0"
caniuse-api "^3.0.0"
@@ -9862,8 +9642,7 @@ postcss-reduce-transforms@^1.0.3:
postcss-reduce-transforms@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
- integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+ resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
dependencies:
cssnano-util-get-match "^4.0.0"
has "^1.0.0"
@@ -9880,8 +9659,7 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
postcss-selector-parser@^3.0.0:
version "3.1.1"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
- integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
dependencies:
dot-prop "^4.1.1"
indexes-of "^1.0.1"
@@ -9889,8 +9667,7 @@ postcss-selector-parser@^3.0.0:
postcss-selector-parser@^5.0.0-rc.4:
version "5.0.0"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
- integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
dependencies:
cssesc "^2.0.0"
indexes-of "^1.0.1"
@@ -9907,8 +9684,7 @@ postcss-svgo@^2.1.1:
postcss-svgo@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
- integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
+ resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
dependencies:
is-svg "^3.0.0"
postcss "^7.0.0"
@@ -9925,8 +9701,7 @@ postcss-unique-selectors@^2.0.2:
postcss-unique-selectors@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
- integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+ resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
dependencies:
alphanum-sort "^1.0.0"
postcss "^7.0.0"
@@ -9936,10 +9711,9 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.0.1, postcss-value-parser@^
version "3.3.1"
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
-postcss-value-parser@^4.0.2:
+postcss-value-parser@^4.0.0:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
- integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
postcss-zindex@^2.0.1:
version "2.2.0"
@@ -9966,7 +9740,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^6.0.1, postcss@^6.0.21:
+postcss@^6.0.1:
version "6.0.23"
resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
dependencies:
@@ -9974,23 +9748,15 @@ postcss@^6.0.1, postcss@^6.0.21:
source-map "^0.6.1"
supports-color "^5.4.0"
-postcss@^7.0.0, postcss@^7.0.17, postcss@^7.0.19:
- version "7.0.20"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.20.tgz#a107b68ef1ad1c5e6e214ebb3c5ede2799322837"
- integrity sha512-VOdO3a5nHVftPSEbG1zaG320b4mH5KAflH+pIeVAF5/hlw6YumELSgHZQBekjg29Oj4qw7XAyp9tIEBpeNWcyg==
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.5:
+ version "7.0.25"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e"
+ integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
supports-color "^6.1.0"
-postcss@^7.0.1, postcss@^7.0.5:
- version "7.0.6"
- resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz#6dcaa1e999cdd4a255dcd7d4d9547f4ca010cdc2"
- dependencies:
- chalk "^2.4.1"
- source-map "^0.6.1"
- supports-color "^5.5.0"
-
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -10002,7 +9768,6 @@ prepend-http@^1.0.0, prepend-http@^1.0.1:
prepend-http@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
- integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
preserve@^0.2.0:
version "0.2.0"
@@ -10043,10 +9808,9 @@ pretty-ms@^3.1.0:
dependencies:
parse-ms "^1.0.0"
-prismjs@^1.17.1:
+prismjs@^1.16.0:
version "1.17.1"
- resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be"
- integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==
+ resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be"
optionalDependencies:
clipboard "^2.0.0"
@@ -10067,7 +9831,6 @@ process-nextick-args@^2.0.0:
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
process@^0.11.10:
version "0.11.10"
@@ -10091,7 +9854,6 @@ prop-types@^15.6.2:
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
- integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
proxy-addr@~2.0.4:
version "2.0.4"
@@ -10102,8 +9864,7 @@ proxy-addr@~2.0.4:
proxy-addr@~2.0.5:
version "2.0.5"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
- integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==
+ resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
dependencies:
forwarded "~0.1.2"
ipaddr.js "1.9.0"
@@ -10160,8 +9921,7 @@ qs@6.5.2, qs@~6.5.2:
qs@6.7.0:
version "6.7.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
- integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+ resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
qs@^6.4.0:
version "6.6.0"
@@ -10177,7 +9937,6 @@ query-string@^4.1.0:
query-string@^5.0.1:
version "5.1.1"
resolved "https://registry.npm.taobao.org/query-string/download/query-string-5.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
- integrity sha1-p4wBK3HBfgXy4/ojGd0zBoLvs8s=
dependencies:
decode-uri-component "^0.2.0"
object-assign "^4.1.0"
@@ -10226,8 +9985,7 @@ range-parser@^1.0.3, range-parser@~1.2.0:
range-parser@~1.2.1:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
raw-body@2.3.3:
version "2.3.3"
@@ -10240,8 +9998,7 @@ raw-body@2.3.3:
raw-body@2.4.0:
version "2.4.0"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
- integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
dependencies:
bytes "3.1.0"
http-errors "1.7.2"
@@ -10265,13 +10022,12 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
strip-json-comments "~2.0.1"
react-dev-utils@^9.0.1:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81"
- integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==
+ version "9.0.3"
+ resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.0.3.tgz#7607455587abb84599451460eb37cef0b684131a"
dependencies:
"@babel/code-frame" "7.5.5"
- address "1.1.2"
- browserslist "4.7.0"
+ address "1.1.0"
+ browserslist "4.6.6"
chalk "2.4.2"
cross-spawn "6.0.5"
detect-port-alt "1.1.6"
@@ -10288,32 +10044,29 @@ react-dev-utils@^9.0.1:
loader-utils "1.2.3"
open "^6.3.0"
pkg-up "2.0.0"
- react-error-overlay "^6.0.3"
+ react-error-overlay "^6.0.1"
recursive-readdir "2.2.2"
- shell-quote "1.7.2"
- sockjs-client "1.4.0"
+ shell-quote "1.6.1"
+ sockjs-client "1.3.0"
strip-ansi "5.2.0"
text-table "0.2.0"
react-dom@^16.8.4:
- version "16.11.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.11.0.tgz#7e7c4a5a85a569d565c2462f5d345da2dd849af5"
- integrity sha512-nrRyIUE1e7j8PaXSPtyRKtz+2y9ubW/ghNgqKFHHAHaeP0fpF5uXR+sq8IMRHC+ZUxw7W9NyCDTBtwWxvkb0iA==
+ version "16.9.0"
+ resolved "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.17.0"
+ scheduler "^0.15.0"
-react-error-overlay@^6.0.3:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.3.tgz#c378c4b0a21e88b2e159a3e62b2f531fd63bf60d"
- integrity sha512-bOUvMWFQVk5oz8Ded9Xb7WVdEi3QGLC8tH7HmYP0Fdp4Bn3qw0tRFmr5TW6mvahzvmrK4a6bqWGfCevBflP+Xw==
+react-error-overlay@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.1.tgz#b8d3cf9bb991c02883225c48044cb3ee20413e0f"
react@^16.8.4:
- version "16.11.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz#d294545fe62299ccee83363599bf904e4a07fdbb"
- integrity sha512-M5Y8yITaLmU0ynd0r1Yvfq98Rmll6q8AxaEe88c8e7LxO8fZ2cNgmFt0aGAS9wzf1Ao32NKXtCl+/tVVtkxq6g==
+ version "16.9.0"
+ resolved "https://registry.npmjs.org/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -10397,7 +10150,6 @@ readable-stream@1.0:
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -10418,16 +10170,14 @@ readable-stream@^3.0.6:
readdirp@^2.0.0, readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
- integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
dependencies:
graceful-fs "^4.1.11"
micromatch "^3.1.10"
readable-stream "^2.0.2"
-readdirp@~3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839"
- integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==
+readdirp@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.1.2.tgz#fa85d2d14d4289920e4671dead96431add2ee78a"
dependencies:
picomatch "^2.0.4"
@@ -10458,8 +10208,7 @@ rechoir@^0.6.2:
recursive-readdir@2.2.2:
version "2.2.2"
- resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
- integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==
+ resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
dependencies:
minimatch "3.0.4"
@@ -10499,8 +10248,7 @@ regenerate-unicode-properties@^7.0.0:
regenerate-unicode-properties@^8.1.0:
version "8.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
- integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
dependencies:
regenerate "^1.4.0"
@@ -10518,8 +10266,7 @@ regenerator-runtime@^0.11.0:
regenerator-runtime@^0.13.2:
version "0.13.3"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
- integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
regenerator-transform@^0.10.0:
version "0.10.1"
@@ -10537,8 +10284,7 @@ regenerator-transform@^0.13.3:
regenerator-transform@^0.14.0:
version "0.14.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
- integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==
+ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
dependencies:
private "^0.1.6"
@@ -10555,6 +10301,10 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexp-tree@^0.1.13:
+ version "0.1.13"
+ resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f"
+
regexpp@^1.0.1:
version "1.1.0"
resolved "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
@@ -10586,10 +10336,9 @@ regexpu-core@^4.1.3, regexpu-core@^4.2.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.0.2"
-regexpu-core@^4.5.4, regexpu-core@^4.6.0:
+regexpu-core@^4.5.4:
version "4.6.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
- integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
+ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
dependencies:
regenerate "^1.4.0"
regenerate-unicode-properties "^8.1.0"
@@ -10620,9 +10369,8 @@ regjsgen@^0.4.0:
resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561"
regjsgen@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
- integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
regjsparser@^0.1.4:
version "0.1.5"
@@ -10638,8 +10386,7 @@ regjsparser@^0.3.0:
regjsparser@^0.6.0:
version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
dependencies:
jsesc "~0.5.0"
@@ -10647,10 +10394,9 @@ relateurl@0.2.x:
version "0.2.7"
resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-remarkable@^1.7.1, remarkable@^1.7.4:
+remarkable@^1.7.1:
version "1.7.4"
resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
- integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
dependencies:
argparse "^1.0.10"
autolinker "~0.28.0"
@@ -10720,10 +10466,6 @@ require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-require-from-string@^1.1.0:
- version "1.2.1"
- resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
-
require-from-string@^2.0.1:
version "2.0.2"
resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
@@ -10795,7 +10537,6 @@ resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0, resolve@^1.6.0,
responselike@1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
- integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
dependencies:
lowercase-keys "^1.0.0"
@@ -10819,13 +10560,11 @@ ret@~0.1.10:
rgb-regex@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
- integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
+ resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
rgba-regex@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
- integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+ resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
right-align@^0.1.1:
version "0.1.3"
@@ -10836,7 +10575,6 @@ right-align@^0.1.1:
rimraf@2, rimraf@^2.2.0, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
@@ -10895,20 +10633,20 @@ rollup-plugin-node-resolve@^3.3.0:
is-module "^1.0.0"
resolve "^1.1.6"
-rollup-plugin-postcss@^1.6.1:
- version "1.6.3"
- resolved "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-1.6.3.tgz#18256ba66f29ecd9d42a68f4ef136b92b939ddb8"
+rollup-plugin-postcss@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-2.0.3.tgz#1fd5b7e1fc7545cb0084d9c99d11b259e41a05e6"
+ integrity sha512-d12oKl6za/GGXmlytzVPzzTdPCKgti/Kq2kNhtfm5vv9hkNbyrTvizMBm6zZ5rRWX/sIWl3znjIJ8xy6Hofoeg==
dependencies:
- chalk "^2.0.0"
+ chalk "^2.4.2"
concat-with-sourcemaps "^1.0.5"
- cssnano "^3.10.0"
- fs-extra "^5.0.0"
+ cssnano "^4.1.8"
import-cwd "^2.1.0"
p-queue "^2.4.2"
pify "^3.0.0"
- postcss "^6.0.21"
- postcss-load-config "^1.2.0"
- postcss-modules "^1.1.0"
+ postcss "^7.0.14"
+ postcss-load-config "^2.0.0"
+ postcss-modules "^1.4.1"
promise.series "^0.2.0"
reserved-words "^0.1.2"
resolve "^1.5.0"
@@ -10976,15 +10714,13 @@ rxjs@^6.1.0, rxjs@^6.3.3:
rxjs@^6.4.0:
version "6.5.3"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
- integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
dependencies:
tslib "^1.9.0"
safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-json-parse@~1.0.1:
version "1.0.1"
@@ -11023,10 +10759,9 @@ sax@^1.2.4, sax@~1.2.1, sax@~1.2.4:
version "1.2.4"
resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-scheduler@^0.17.0:
- version "0.17.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
- integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==
+scheduler@^0.15.0:
+ version "0.15.0"
+ resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e"
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -11060,7 +10795,6 @@ scss-tokenizer@^0.2.3:
seek-bzip@^1.0.5:
version "1.0.5"
resolved "https://registry.npm.taobao.org/seek-bzip/download/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
- integrity sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=
dependencies:
commander "~2.8.1"
@@ -11085,12 +10819,10 @@ semver-compare@^1.0.0:
semver-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/semver-regex/download/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
- integrity sha1-qTwsWERTmncCMzeRB7OMe0rJ0zg=
semver-truncate@^1.1.2:
version "1.1.2"
resolved "https://registry.npm.taobao.org/semver-truncate/download/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8"
- integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=
dependencies:
semver "^5.3.0"
@@ -11100,8 +10832,7 @@ semver-truncate@^1.1.2:
semver@^6.3.0:
version "6.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
semver@~5.3.0:
version "5.3.0"
@@ -11127,8 +10858,7 @@ send@0.16.2:
send@0.17.1:
version "0.17.1"
- resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
- integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+ resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
dependencies:
debug "2.6.9"
depd "~1.1.2"
@@ -11167,8 +10897,7 @@ serve-static@1.13.2:
serve-static@1.14.1:
version "1.14.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
- integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
@@ -11213,8 +10942,7 @@ setprototypeof@1.1.0:
setprototypeof@1.1.1:
version "1.1.1"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
- integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.11"
@@ -11241,12 +10969,7 @@ shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-shell-quote@1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
- integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
-
-shell-quote@^1.6.1:
+shell-quote@1.6.1, shell-quote@^1.6.1:
version "1.6.1"
resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
dependencies:
@@ -11266,7 +10989,6 @@ shelljs@^0.7.0:
shelljs@^0.8.1, shelljs@^0.8.3:
version "0.8.3"
resolved "https://registry.npm.taobao.org/shelljs/download/shelljs-0.8.3.tgz#a7f3319520ebf09ee81275b2368adb286659b097"
- integrity sha1-p/MxlSDr8J7oEnWyNorbKGZZsJc=
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
@@ -11290,8 +11012,7 @@ simple-swizzle@^0.2.2:
sitemap@^3.2.2:
version "3.2.2"
- resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b"
- integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==
+ resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b"
dependencies:
lodash.chunk "^4.2.0"
lodash.padstart "^4.6.1"
@@ -11358,18 +11079,6 @@ sockjs-client@1.3.0:
json3 "^3.3.2"
url-parse "^1.4.3"
-sockjs-client@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5"
- integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==
- dependencies:
- debug "^3.2.5"
- eventsource "^1.0.7"
- faye-websocket "~0.11.1"
- inherits "^2.0.3"
- json3 "^3.3.2"
- url-parse "^1.4.3"
-
sockjs@0.3.19:
version "0.3.19"
resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
@@ -11380,7 +11089,6 @@ sockjs@0.3.19:
sort-keys-length@^1.0.0:
version "1.0.1"
resolved "https://registry.npm.taobao.org/sort-keys-length/download/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188"
- integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=
dependencies:
sort-keys "^1.0.0"
@@ -11530,7 +11238,6 @@ split@^1.0.0:
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
squeak@^1.0.0:
version "1.3.0"
@@ -11557,7 +11264,6 @@ sshpk@^1.7.0:
stable@^0.1.8:
version "0.1.8"
resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=
staged-git-files@1.1.2:
version "1.1.2"
@@ -11573,7 +11279,6 @@ static-extend@^0.1.1:
"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
statuses@~1.4.0:
version "1.4.0"
@@ -11652,7 +11357,6 @@ string_decoder@0.10, string_decoder@~0.10.x:
string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
@@ -11666,8 +11370,7 @@ stringify-object@^3.2.2:
strip-ansi@5.2.0, strip-ansi@^5.1.0:
version "5.2.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
dependencies:
ansi-regex "^4.1.0"
@@ -11711,7 +11414,6 @@ strip-color@^0.1.0:
strip-dirs@^2.0.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/strip-dirs/download/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
- integrity sha1-SYdzYmT8NEzyD2w0rKnRPR1O1sU=
dependencies:
is-natural-number "^4.0.1"
@@ -11743,11 +11445,6 @@ strip-url-auth@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz#22b0fa3a41385b33be3f331551bbb837fa0cd7ae"
-striptags@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.1.1.tgz#c8c3e7fdd6fb4bb3a32a3b752e5b5e3e38093ebd"
- integrity sha1-yMPn/db7S7OjKjt1LltePjgJPr0=
-
strong-log-transformer@^1.0.6:
version "1.0.6"
resolved "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz#f7fb93758a69a571140181277eea0c2eb1301fa3"
@@ -11771,8 +11468,7 @@ style-loader@^0.20.3:
stylehacks@^4.0.0:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
- integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+ resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
dependencies:
browserslist "^4.0.0"
postcss "^7.0.0"
@@ -11794,7 +11490,7 @@ supports-color@^4.2.1, supports-color@^4.4.0:
dependencies:
has-flag "^2.0.0"
-supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
+supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0:
version "5.5.0"
resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
dependencies:
@@ -11802,8 +11498,7 @@ supports-color@^5.1.0, supports-color@^5.2.0, supports-color@^5.3.0, supports-co
supports-color@^6.1.0:
version "6.1.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
- integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
dependencies:
has-flag "^3.0.0"
@@ -11821,8 +11516,7 @@ svgo@^0.7.0:
svgo@^1.0.0:
version "1.3.0"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313"
- integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==
+ resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313"
dependencies:
chalk "^2.4.1"
coa "^2.0.2"
@@ -11841,7 +11535,6 @@ svgo@^1.0.0:
svgo@^1.0.5:
version "1.2.2"
resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316"
- integrity sha1-AlPTTszyrtStTyg+Ee51GY+dcxY=
dependencies:
chalk "^2.4.1"
coa "^2.0.2"
@@ -11888,7 +11581,6 @@ tapable@^1.0.0:
tar-stream@^1.5.2:
version "1.6.2"
resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
- integrity sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=
dependencies:
bl "^1.0.0"
buffer-alloc "^1.2.0"
@@ -11920,8 +11612,7 @@ tar@^4:
tcp-port-used@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70"
- integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==
+ resolved "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70"
dependencies:
debug "4.1.0"
is2 "2.0.1"
@@ -11977,7 +11668,6 @@ textextensions@^2.4.0:
through2@^2.0.0, through2@^2.0.2:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
dependencies:
readable-stream "~2.3.6"
xtend "~4.0.1"
@@ -12006,8 +11696,7 @@ timers-browserify@^2.0.4:
timsort@^0.3.0:
version "0.3.0"
- resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
- integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+ resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
tiny-emitter@^2.0.0:
version "2.0.2"
@@ -12067,8 +11756,7 @@ to-regex-range@^2.1.0:
to-regex-range@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
dependencies:
is-number "^7.0.0"
@@ -12083,8 +11771,7 @@ to-regex@^3.0.1, to-regex@^3.0.2:
toidentifier@1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
- integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
toml@^2.3.2:
version "2.3.3"
@@ -12103,8 +11790,7 @@ tough-cookie@~2.4.3:
tr46@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
- integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+ resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
dependencies:
punycode "^2.1.0"
@@ -12142,7 +11828,7 @@ trim-right@^1.0.1:
dependencies:
glob "^7.1.2"
-truncate-html@^1.0.2:
+truncate-html@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/truncate-html/-/truncate-html-1.0.3.tgz#0166dfc7890626130c2e4174c6b73d4d63993e5f"
integrity sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ==
@@ -12194,8 +11880,7 @@ type-is@~1.6.16:
type-is@~1.6.17, type-is@~1.6.18:
version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
dependencies:
media-typer "0.3.0"
mime-types "~2.1.24"
@@ -12209,7 +11894,7 @@ typescript@^3.6.4:
resolved "https://r.cnpmjs.org/typescript/download/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb"
integrity sha1-J+SJuV+lkJRF6f717kjYFpetGPs=
-uglify-js@3.4.x, uglify-js@^3.1.4:
+uglify-js@3.4.x:
version "3.4.9"
resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
dependencies:
@@ -12225,6 +11910,14 @@ uglify-js@^2.8.29:
optionalDependencies:
uglify-to-browserify "~1.0.0"
+uglify-js@^3.1.4:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
+ integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
+ dependencies:
+ commander "~2.20.3"
+ source-map "~0.6.1"
+
uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
@@ -12240,7 +11933,6 @@ uglifyjs-webpack-plugin@^0.4.6:
unbzip2-stream@^1.0.9:
version "1.3.3"
resolved "https://registry.npm.taobao.org/unbzip2-stream/download/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
- integrity sha1-0VbSBeZw2NjDk+HALr1QZCKHP2o=
dependencies:
buffer "^5.2.1"
through "^2.3.8"
@@ -12266,8 +11958,7 @@ unicode-match-property-value-ecmascript@^1.0.2:
unicode-match-property-value-ecmascript@^1.1.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
- integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
unicode-property-aliases-ecmascript@^1.0.4:
version "1.0.4"
@@ -12329,8 +12020,7 @@ upath@^1.0.5:
upath@^1.1.1:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
- integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+ resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
upper-case@^1.1.1:
version "1.1.3"
@@ -12355,7 +12045,6 @@ url-parse-lax@^1.0.0:
url-parse-lax@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
- integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
dependencies:
prepend-http "^2.0.0"
@@ -12384,7 +12073,6 @@ use@^3.1.0:
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
version "1.0.0"
@@ -12502,8 +12190,7 @@ wcwidth@^1.0.0, wcwidth@^1.0.1:
webidl-conversions@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
- integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
webpack-addons@^1.1.4:
version "1.1.5"
@@ -12641,9 +12328,8 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
whatwg-url@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
- integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
@@ -12683,7 +12369,8 @@ wordwrap@0.0.2:
wordwrap@~0.0.2:
version "0.0.3"
- resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"
@@ -12691,8 +12378,7 @@ wordwrap@~1.0.0:
worker-rpc@^0.1.0:
version "0.1.1"
- resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"
- integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==
+ resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5"
dependencies:
microevent.ts "~0.1.1"
@@ -12713,7 +12399,6 @@ wrap-ansi@^3.0.1:
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write-file-atomic@^1.2.0:
version "1.3.4"
@@ -12761,8 +12446,7 @@ xml@^1.0.1:
xmlbuilder@^13.0.0:
version "13.0.2"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
- integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==
+ resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7"
xregexp@4.0.0:
version "4.0.0"
@@ -12775,7 +12459,6 @@ xtend@^4.0.0, xtend@~4.0.0:
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^3.2.1:
version "3.2.1"
@@ -12903,7 +12586,6 @@ yargs@~3.10.0:
yauzl@^2.4.2:
version "2.10.0"
resolved "https://registry.npm.taobao.org/yauzl/download/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
- integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
dependencies:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"