diff --git a/.eslintrc b/.eslintrc new file mode 100755 index 0000000000..78d122d954 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,5 @@ +{ + "globals": { + "AMap": true + } +} diff --git a/.gitignore b/.gitignore index a5542c8ad0..c5dea2def4 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,92 @@ jspm_packages/ lib/ .DS_Store +public +.cache/redirects.json +.cache/redux.state +.cache/caches/gatsby-transformer-remark/diskstore-0b12f383a1ce9a8cdbb2a4f52cf8af84.json +.cache/caches/gatsby-transformer-remark/diskstore-1ea0cd3c8f491f1774b8edd1ce38b1f9.json +.cache/caches/gatsby-transformer-remark/diskstore-2b8cd1df4f8a6941bff4108301b5d6a9.json +.cache/caches/gatsby-transformer-remark/diskstore-2c713f7ba9a30ac45cbadf6d86d5d544.json +.cache/caches/gatsby-transformer-remark/diskstore-2e9a5d11bfbd9e331e877b0e013a0ab8.json +.cache/caches/gatsby-transformer-remark/diskstore-03f70e3c5a52291e52b331e3d35900a4.json +.cache/caches/gatsby-transformer-remark/diskstore-5a894e6dcf41aaf38dcfe7c4ef24bb6c.json +.cache/caches/gatsby-transformer-remark/diskstore-5aa0c32748bae2a74e08828fed4fd3a6.json +.cache/caches/gatsby-transformer-remark/diskstore-5be2deb5db771c62d6348aacc8798213.json +.cache/caches/gatsby-transformer-remark/diskstore-5ce457da6f1384d2d0a1c8d65aa7035f.json +.cache/caches/gatsby-transformer-remark/diskstore-5e29728bfdb977a2a740b90f7e81c026.json +.cache/caches/gatsby-transformer-remark/diskstore-6e44d9bde57e425196c802f385c59145.json +.cache/caches/gatsby-transformer-remark/diskstore-7c691ebc8b681ec76a0dd2b62e2186ba.json +.cache/caches/gatsby-transformer-remark/diskstore-8a657829abac5ed5e9e205e519d6ded0.json +.cache/caches/gatsby-transformer-remark/diskstore-8c6f6648e48a1e25d0879cba52c6f15c.json +.cache/caches/gatsby-transformer-remark/diskstore-9a6db7a621d98f2e40fca942ffec8d7f.json +.cache/caches/gatsby-transformer-remark/diskstore-09be3cfc8fb53b393e594e000fb9c3c4.json +.cache/caches/gatsby-transformer-remark/diskstore-9ea0254de64dbc01eafc57f7dafb6400.json +.cache/caches/gatsby-transformer-remark/diskstore-9fb8c242123b7f40762c92122bacea8e.json +.cache/caches/gatsby-transformer-remark/diskstore-31a80985ee546abb7aa91ce454986fb1.json +.cache/caches/gatsby-transformer-remark/diskstore-34caa57442541fb555e65adf766c9dbf.json +.cache/caches/gatsby-transformer-remark/diskstore-35f1e3ed2504889557819cd85f730da3.json +.cache/caches/gatsby-transformer-remark/diskstore-51d0f3b693c1d063f395570395293fb4.json +.cache/caches/gatsby-transformer-remark/diskstore-60ffaa0253ce67428f5a7e31a4a0bad1.json +.cache/caches/gatsby-transformer-remark/diskstore-61c1d71d82d9e8cb724bc675e994ee07.json +.cache/caches/gatsby-transformer-remark/diskstore-62ff8f6ebb8d87c110d712e03f9a98e9.json +.cache/caches/gatsby-transformer-remark/diskstore-63f86e913288c0406ba43ec83f25684f.json +.cache/caches/gatsby-transformer-remark/diskstore-97cfab1e1ad583ea0fa987b5c84f159c.json +.cache/caches/gatsby-transformer-remark/diskstore-314bc0cb54aa930a49cfb58df8b50ffa.json +.cache/caches/gatsby-transformer-remark/diskstore-335fc52df6558698584a4c58a93133dc.json +.cache/caches/gatsby-transformer-remark/diskstore-468b5bae8ef758f28811323986a026ca.json +.cache/caches/gatsby-transformer-remark/diskstore-479f7412bfaf2ad395f176418584631a.json +.cache/caches/gatsby-transformer-remark/diskstore-509da604a7cd9c41a31392dd15cfd143.json +.cache/caches/gatsby-transformer-remark/diskstore-833c6a9868536cc7f0ee995069745bd6.json +.cache/caches/gatsby-transformer-remark/diskstore-3240b72791cdbb0de473bd7b0fc3f4a3.json +.cache/caches/gatsby-transformer-remark/diskstore-4959c881d2fccc57dea5cba657223041.json +.cache/caches/gatsby-transformer-remark/diskstore-6195db1b342fb1235a247e18694e1cc8.json +.cache/caches/gatsby-transformer-remark/diskstore-8152d0a6832522eb79f34eecc5e89cd4.json +.cache/caches/gatsby-transformer-remark/diskstore-9429c44d730cc08b4b28804d3d7d5a2c.json +.cache/caches/gatsby-transformer-remark/diskstore-19012e1f6f28c599baa0778f3e002c21.json +.cache/caches/gatsby-transformer-remark/diskstore-20649dc8fd4cdde49b1d9ea0c26371b2.json +.cache/caches/gatsby-transformer-remark/diskstore-96374eabb69d89610d3ad583e7ef7bfc.json +.cache/caches/gatsby-transformer-remark/diskstore-164252f91872bc33e77d29eb616fafa1.json +.cache/caches/gatsby-transformer-remark/diskstore-419766453a3a10f392d412948ad4520a.json +.cache/caches/gatsby-transformer-remark/diskstore-2763556052b3406bbcf4532fe8fa5d4e.json +.cache/caches/gatsby-transformer-remark/diskstore-a9a7598872d374acd56469ecbe4a84da.json +.cache/caches/gatsby-transformer-remark/diskstore-a7725b15bd64a40f9d4d5eb35340b314.json +.cache/caches/gatsby-transformer-remark/diskstore-aae05a37d5dbc73377131a3df8a830bd.json +.cache/caches/gatsby-transformer-remark/diskstore-b0407a444ef8acb3f4819a2fd00c5ae3.json +.cache/caches/gatsby-transformer-remark/diskstore-b923ecb39dc7dd6f4752bf9bbf5c94da.json +.cache/caches/gatsby-transformer-remark/diskstore-b089023713dde4294665d832c48ccd63.json +.cache/caches/gatsby-transformer-remark/diskstore-bbdcb1122dc2a86aef4134f4c5c42dc1.json +.cache/caches/gatsby-transformer-remark/diskstore-bd3cd1387f798ad20e18475f0929f324.json +.cache/caches/gatsby-transformer-remark/diskstore-be4a0f00b712d152c6b7536968d29cef.json +.cache/caches/gatsby-transformer-remark/diskstore-bea1dfafb379b4e5e4393814eff70f54.json +.cache/caches/gatsby-transformer-remark/diskstore-bee012580db1a2e5f57e03421caf971f.json +.cache/caches/gatsby-transformer-remark/diskstore-bf54f7f5282b043f03b2a3733bdac4f3.json +.cache/caches/gatsby-transformer-remark/diskstore-bf0995ffe3e44d36b50e8f808495c563.json +.cache/caches/gatsby-transformer-remark/diskstore-bf3648bcc8f9d552a4439069ae408fad.json +.cache/caches/gatsby-transformer-remark/diskstore-c32f0608dadae224d91a44d7bb4b66db.json +.cache/caches/gatsby-transformer-remark/diskstore-c320ffacf9b8eef3d92229d6a1a70d96.json +.cache/caches/gatsby-transformer-remark/diskstore-ca2fb97dfd9c7f243ca223efc08ffba5.json +.cache/caches/gatsby-transformer-remark/diskstore-ca3867e16d821cfd8579d7b29582e0b8.json +.cache/caches/gatsby-transformer-remark/diskstore-cbe5331f7cf63c058404726cdea224c2.json +.cache/caches/gatsby-transformer-remark/diskstore-cc83f0f387424948934f22053503ed85.json +.cache/caches/gatsby-transformer-remark/diskstore-d0b48925fc35a486d2edcefd379a8067.json +.cache/caches/gatsby-transformer-remark/diskstore-d2b3f82b0a8e66040aa810a8958afe0d.json +.cache/caches/gatsby-transformer-remark/diskstore-d4b28ce0015b79c52ff804a21a129aa0.json +.cache/caches/gatsby-transformer-remark/diskstore-d41ece99b0e508f70b31a8152b25f8a5.json +.cache/caches/gatsby-transformer-remark/diskstore-db5d13902d2d007ceff5537b4ca04b11.json +.cache/caches/gatsby-transformer-remark/diskstore-dc1901f7f1baf243df1556f52717b2ba.json +.cache/caches/gatsby-transformer-remark/diskstore-ddc1db31dfe2bcb6d2040bce323f5828.json +.cache/caches/gatsby-transformer-remark/diskstore-df75817e83ad0a2f79b98ce42e6056a8.json +.cache/caches/gatsby-transformer-remark/diskstore-e49d5822f90847d686ab7ed05c412e0b.json +.cache/caches/gatsby-transformer-remark/diskstore-e2145ab61e30e98413fb69c2f3d5098f.json +.cache/caches/gatsby-transformer-remark/diskstore-e8067f3515dcae00ea981c2733ca40cb.json +.cache/caches/gatsby-transformer-remark/diskstore-e72135977ad05cc3007997a59f58e7ed.json +.cache/caches/gatsby-transformer-remark/diskstore-ec259f9adac459854ebecf9375d97a8d.json +.cache/caches/gatsby-transformer-remark/diskstore-ee0df53bccbd3ad6e6ad1b28c1331ca4.json +.cache/caches/gatsby-transformer-remark/diskstore-f5cfa5aac1b0651a071bc0b0f90efa3c.json +.cache/caches/gatsby-transformer-remark/diskstore-f9c2ec20398ba84a7058c3475b4845c3.json +.cache/caches/gatsby-transformer-remark/diskstore-f250d30e0f7c9f0380924fbf1033efc3.json +.cache/caches/gatsby-transformer-remark/diskstore-fb18e835921f3dc32ae5b74bdfb36220.json +.cache/caches/gatsby-transformer-remark/diskstore-fbddf0de549e59cfa8bf242898a85984.json +.cache/caches/gatsby-transformer-remark/diskstore-feb74fcce830febf6919bf3857a7765f.json +.cache/caches/gatsby-transformer-remark/diskstore-fffb15ec8285c18963c880046e7fccce.json diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..c9a6c1bda8 --- /dev/null +++ b/.npmrc @@ -0,0 +1,4 @@ +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/ +registry=https://registry.npm.taobao.org diff --git a/.storybook/addons.ts b/.storybook/addons.ts index b5cbcc0466..06915d6e12 100644 --- a/.storybook/addons.ts +++ b/.storybook/addons.ts @@ -1,3 +1,3 @@ import '@storybook/addon-actions/register'; import '@storybook/addon-notes/register'; -import '@storybook/addon-storysource/register'; \ No newline at end of file +import '@storybook/addon-storysource/register'; diff --git a/README.md b/README.md index 5a1c9b9362..a034d6c866 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,13 @@ yarn storybook yarn commit ``` +## view doc example + +```bash + npm start +``` +visit http://localhost:8000/ + ## Add Package 创建一个新的 package: @@ -43,4 +50,4 @@ yarn workspaces run add lodash 将 typescript 设置为 root 的开发依赖 ```bash yarn add -W -D typescript jest -``` \ No newline at end of file +``` diff --git a/babel.config.js b/babel.config.js index 0c7267bf38..b4f13b79e8 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,7 +1,21 @@ // @see https://babeljs.io/docs/en/next/config-files#project-wide-configuration module.exports = (api) => { - api.cache(true); - + api.cache(() => process.env.NODE_ENV); + if(api.env("site")) { // + return { + "presets": [ + [ + "@babel/preset-env", + { + "loose": true, + "modules": false + } + ], + '@babel/preset-react', + "babel-preset-gatsby" + ] + }; + } return { presets: [ [ diff --git a/dev-docs/TAA.md b/dev-docs/TAA.md index 466f16660d..d0ceb98bd5 100644 --- a/dev-docs/TAA.md +++ b/dev-docs/TAA.md @@ -71,7 +71,7 @@ this.cameraService.jitterProjectionMatrix( useFramebuffer(this.outputRenderTarget, () => { this.blendModel.draw({ uniforms: { - u_Opacity: layerStyleOptions.opacity || 1, + u_opacity: layerStyleOptions.opacity || 1, u_MixRatio: this.frame === 0 ? 1 : 0.9, u_Diffuse1: this.sampleRenderTarget, u_Diffuse2: @@ -115,4 +115,4 @@ layer.multiPassRenderer.getPostProcessor().render(layer); * 「Three.js - TAA example」[🔗](https://threejs.org/examples/#webgl_postprocessing_taa) * 「Paper - Amortized Supersampling」[🔗](http://hhoppe.com/supersample.pdf) * 「GDC - Temporal Reprojection Anti-Aliasing in INSIDE」[🔗](http://twvideo01.ubm-us.net/o1/vault/gdc2016/Presentations/Pedersen_LasseJonFuglsang_TemporalReprojectionAntiAliasing.pdf) -* 「知乎 - 低差异序列(一)- 常见序列的定义及性质」[🔗](https://zhuanlan.zhihu.com/p/20197323) \ No newline at end of file +* 「知乎 - 低差异序列(一)- 常见序列的定义及性质」[🔗](https://zhuanlan.zhihu.com/p/20197323) diff --git a/docs/API/L7.md b/docs/API/L7.md new file mode 100644 index 0000000000..ee73dd9e10 --- /dev/null +++ b/docs/API/L7.md @@ -0,0 +1,6 @@ +--- +title: 简介 +order: 0 +redirect_from: + - /zh/docs/API +--- diff --git a/docs/API/Scene.md b/docs/API/Scene.md new file mode 100644 index 0000000000..345f9e5dc7 --- /dev/null +++ b/docs/API/Scene.md @@ -0,0 +1,321 @@ +--- +title: Scene +order: 1 +--- + +## 简介 +`Scene `基础的地图类,提供地图创建,图层创建,管理等功能 + +示例代码 + +```javascript +import {Scene} from '@l7/scene'; +const scene =new L7.Scene({ + id:'map', + mapStyle:'dark', + center:[ 110.770672, 34.159869 ], + pitch:45 +}) +``` + + +### 构造函数 + +**Scene**
支持两种实例化方式 + +- 独立实例化 内部根据id自动穿件地图实例 +- 传入地图实例 + + + + + +#### 独立实例化 Scene + +```javascript +const scene = new L7.Scene({ + id: 'map', + mapStyle: 'dark', + center: [ 120.19382669582967, 30.258134 ], + pitch: 0, + zoom: 12, + maxZoom:20, + minZoom:0, +}); +``` + + +#### 根据map 实例创建Sence + +_L7 基于高德地图3D模式开发的,因此传入Map实例 __viewModes需要设置成3d_
_ +```javascript +var mapinstance = new AMap.Map('map',{ + center: [ 120.19382669582967, 30.258134 ], + viewMode: '3D', + pitch: 0, + zoom: 12, + maxZoom:20, + minZoom:0, + }); + +const scene = new L7.Scene({ + mapStyle: 'dark', + map:mapinstance +}); +``` + + +## map +L7 在scene 下保留了高德地图实例,可以通过scene.map 调用高德地图的map方法。
map 实例方法见[高德地图文档](https://lbs.amap.com/api/javascript-api/reference/map) + +```javascript +scene.map +``` + + +## 构造类 + +### PointLayer +新建点图层 + +### PolylineLayer +新建线图层 + +### PolygonLayer +新建面图层 + +### ImageLayer +新建图片图层 + + +## 配置项 + +### id +需传入 dom 容器或者容器 id  {domObject || string} [必选] + + +### zoom +地图初始显示级别 {number} (0-22) + +### center +地图初始中心经纬度 {Lnglat} + +### pitch +地图初始俯仰角度 {number}  default 0 + +### mapSyle +地图样式 {style} 目前仅支持高德地图。 default 'dark'
L7 内置三种种默认地图样式 dark | light|blank 空地图 + +设置地图的显示样式,目前支持两种地图样式:
第一种:自定义地图样式,如`"amap://styles/d6bf8c1d69cea9f5c696185ad4ac4c86"`
可前往[地图自定义平台](https://lbs.amap.com/dev/mapstyle/index)定制自己的个性地图样式;
第二种:官方样式模版,如`"amap://styles/grey"`。
其他模版样式及自定义地图的使用说明见[开发指南](https://lbs.amap.com/api/javascript-api/guide/create-map/mapstye/) + + +### minZoom +地图最小缩放等级 {number}  default 0 (0-22) + +### maxZoom +地图最大缩放等级 {number}  default 22 (0-22) + +### rotateEnable +地图是否可旋转 {Boolean} default true + + + + +## 方法 + +### getZoom +获取当前缩放等级 + +```javascript +scene.getZoom(); +``` + +return {float}  当前缩放等级 + +### getLayers() +获取所有的地图图层 +```javascript +scene.getLayers(); +``` + +return 图层数组 {Array} + + +### getCenter() +获取地图中心点 +```javascript +scene.getCenter() +``` + +return {Lnglat} :地图中心点 + +### getSize() +获取地图容器大小 +```javascript +scene.getSize() +``` +return { Object } 地图容器的 width,height + +### getPitch() +获取地图俯仰角 +```javascript +scene.getPitch(); +``` + +return {number} pitch + +### setCenter() +设置地图中心点坐标 + +```javascript +scene.setCenter([lng,lat]) +``` + +参数:`center` {LngLat} 地图中心点 + + +### setZoomAndCenter +设置地图等级和中心 +```javascript +scene.setZoomAndCenter(zoom,center) +``` + +参数:zoom {number}
center {LngLat} + + +### setRotation +设置地图顺时针旋转角度,旋转原点为地图容器中心点,取值范围 [0-360] +```javascript +scene.setRotation(rotation) +``` + +参数: `rotation` {number} + +### zoomIn +地图放大一级 +```javascript +scene.zoomIn() +``` + +### zoomOut +地图缩小一级 +```javascript +scene.ZoomOUt() +``` + +### panTo +地图平移到指定的位置 +```javascript +scene.panTo(LngLat) +``` + +参数:`center` LngLat 中心位置坐标 + +### panBy +以像素为单位沿X方向和Y方向移动地图 +```javascript +scene.panBy(x,y) +``` +参数:
`x` {number} 水平方向移动像素 向右为正方向
      `y` {number} 垂直方向移动像素 向下为正方向 + + +### setPitch +设置地图仰俯角度 +```javascript +scene.setPitch(pitch) +``` + +参数 :
   `pitch` {number} + +### + +### setStatus +设置当前地图显示状态,包括是否可鼠标拖拽移动地图、地图是否可缩放、地图是否可旋转(rotateEnable)、是否可双击放大地图、是否可以通过键盘控制地图旋转(keyboardEnable)等    + +```javascript + scene.setStatus({ + dragEnable: true, + keyboardEnable: true, + doubleClickZoom: true, + zoomEnable: true, + rotateEnable: true + }); +``` + + +### fitBounds +地图缩放到某个范围内
参数 :
  `extent` { array} 经纬度范围 [minlng,minlat,maxlng,maxlat] + +```javascript +scene.fitBounds([112,32,114,35]); +``` + + + +### removeLayer +移除layer + +```javascript +scene.removeLayer(layer) +``` + +参数
`layer` {Layer} + +### getLayers + 获取所有的layer + +```javascript +scene.getLayers() +``` + +return layers  {array} + +## 事件 + + +### on +事件监听 + +#### 参数 +`eventName` {string} 事件名
`hander` {function } 事件回调函数 + + +### off +移除事件监听
`eventName` {string} 事件名
`hander` {function } 事件回调函数 + + +### 地图事件 +```javascript +scene.on('loaded',()=>{})  //地图加载完成触发 +scene.on('mapmove',()=>{}) // 地图平移时触发事件 +scene.on('movestart',()=>{}) // 地图平移开始时触发 +scene.on('moveend',()=>{}) // 地图移动结束后触发,包括平移,以及中心点变化的缩放。如地图有拖拽缓动效果,则在缓动结束后触发 +scene.on('zoomchange',()=>{}) // 地图缩放级别更改后触发 +scene.on('zoomstart',()=>{}) // 缩放开始时触发 +scene.on('zoomend',()=>{}) // 缩放停止时触发 +``` + + +### 鼠标事件 + +```javascript +scene.on('click', (ev)=>{}); // 鼠标左键点击事件 +scene.on('dblclick', (ev)=>{}); // 鼠标左键双击事件 +scene.on('mousemove', (ev)=>{}); // 鼠标在地图上移动时触发 +scene.on('mousewheel', (ev)=>{}); // 鼠标滚轮开始缩放地图时触发 +scene.on('mouseover', (ev)=>{}); // 鼠标移入地图容器内时触发 +scene.on('mouseout', (ev)=>{}); // 鼠标移出地图容器时触发 +scene.on('mouseup', (ev)=>{}); // 鼠标在地图上单击抬起时触发 +scene.on('mousedown', (ev)=>{}); // 鼠标在地图上单击按下时触发 +scene.on('rightclick', (ev)=>{}); // 鼠标右键单击事件 +scene.on('dragstart', (ev)=>{}); //开始拖拽地图时触发 +scene.on('dragging', (ev)=>{}); // 拖拽地图过程中触发 +scene.on('dragend', (ev)=>{}); //停止拖拽地图时触发。如地图有拖拽缓动效果,则在拽停止,缓动开始前触发 +``` + +### 其它事件 +```javascript +scene.on('resize',()=>{}) // 地图容器大小改变事件 +``` + + diff --git a/docs/API/component/control.md b/docs/API/component/control.md new file mode 100644 index 0000000000..e5884f012e --- /dev/null +++ b/docs/API/component/control.md @@ -0,0 +1,137 @@ +--- +title: 地图组件 +order: 1 +--- +# control + +地图组件 用于控制地图的状态如果平移,缩放,或者展示地图一些的辅助信息如图例,比例尺 + + +## 构造函数 + +```javascript +const baseControl = new L7.Control.Base(option); +``` + + +#### option + position: `string` 控件位置支持是个方位 `bottomright, topright, bottomleft, topleft` + + +#### scene 内置地图组件 +zoom 地图放大缩小  默认添加
Scale 地图比例尺   默认添加
attribution 地图数据属性  默认添加
layer 图层列表 + +**scene配置项设置控件添加状态** + +```javascript +scene = new L7.scene({ + zoomControl: true, + scaleControl: true, + attributionControl: true +}) +``` + +#### + +#### Zoom +放大缩小组件 默认 左上角 + +```javascript + new L7.Control.Zoom({ + position: 'topleft' + }).addTo(scene); +``` + + +#### Scale +比例尺组件默认左下角 + +```javascript + new L7.Control.Scale({ + position: 'bottomleft' + }).addTo(scene); +``` + + +#### attribution +默认右下角 + +```javascript +new L7.Control.Attribution({ + position: 'bottomleft' + }).addTo(scene); +``` + + +#### layer +图层列表目前只支持可视化overlayers 图层控制 + +```javascript + var overlayers = { + "围栏填充": layer, + "围栏边界": layer2 + }; +new L7.Control.Layers({ + overlayers: overlayers +}).addTo(scene); +``` + + +## 方法 + +#### onAdd +组件添加到地图Scene时调用,自定义组件时需要实现此方法 + + +#### addTo +添加到地图scene + +```javascript +control.addTo(scene); +``` + + +#### setPosition +设置组件位置 + +```javascript +control.setPosition('bottomright'); +``` + + +#### remove +移除地图组件 + +```javascript +control.remove(); +``` + + + +## 示例代码 + + +#### 自定义图例控件 +[源码](https://antv.alipay.com/zh-cn/l7/1.x/demo/component/extendControl.html) + +```javascript +var legend = new L7.Control.Base({ + position: 'bottomright' + }); + legend.onAdd = function() { + var el = document.createElement('div'); + el.className = 'infolegend legend'; + var grades = [0, 8, 15, 30, 65, 120]; + for (var i = 0; i < grades.length; i++) { + el.innerHTML += ' ' + grades[i] + (grades[i + 1] ? '–' + grades[i + 1] + '
' : '+'); + } + return el; + }; + legend.addTo(scene); + +``` + +## + +## FAQ + diff --git a/docs/API/component/marker.md b/docs/API/component/marker.md new file mode 100644 index 0000000000..23758ac090 --- /dev/null +++ b/docs/API/component/marker.md @@ -0,0 +1,83 @@ +--- +title: 地图标注 +order: 0 +--- + +Marker 地图标注 目前只支持2D dom标注 + + +## 构造函数 +Marker
`const Marker = new L7.Marker(option)` + + +#### option + +- color        `string `   ![map-marker.png](https://cdn.nlark.com/yuque/0/2019/png/104251/1566814628445-4f3152c8-71d1-4908-a651-246c17e507b5.png#align=left&display=inline&height=32&name=map-marker.png&originHeight=32&originWidth=32&size=635&status=done&width=32) 设置默认marker的颜色 +- element    `Dom|string`    自定义marker Dom节点,可以是dom实例,也可以是dom id +- anchor     `string`  锚点位置  支持 center, top, top-left, top-right, bottom, bottom-left,bottom-                        right,left, right +- offset    `Array`  偏移量 [ 0, 0 ] 分别表示 X, Y 的偏移量 + + +## 方法 + +#### setLnglat +设置marker经纬度位置 + +#### addTo +将marker添加到地图Scene + +#### remove +移除marker + +#### getElement +获取marker dom Element + +#### getLngLat +获取marker经纬度坐标 + +#### togglePopup +开启或者关闭marker弹出框 + +#### setPopup +为marker设置popup + +#### getPopup +获取marker弹出框 + + +## 示例代码 + +#### 默认Marker +**
` const marker = new L7.Marker({color:'blue'})` + + +#### 自定义Marker + +```javascript +var el = document.createElement('label'); + el.className = 'lableclass'; + el.textContent = data[i].v; + el.style.background = getColor(data[i].v); + new L7.Marker({ + element: el + }) + .setLnglat([data[i].x * 1, data[i].y]) + .addTo(scene); +``` + + +#### 设置 popup + +```javascript + var popup = new L7.Popup({ + anchor: 'left' + }).setText(item.name); + +new L7.Marker({ + element: el +}).setLnglat(item.coordinates) + .setPopup(popup) + .addTo(scene); +``` + + diff --git a/docs/API/component/popup.md b/docs/API/component/popup.md new file mode 100644 index 0000000000..3d2c0cf7a3 --- /dev/null +++ b/docs/API/component/popup.md @@ -0,0 +1,92 @@ +--- +title: 地图信息框 +order: 0 +--- +# popup + +地图标注信息窗口,用于展示地图要素的属性信息 + + +## 构造函数 +Popup + +```javascript +const popup = new L7.Popup(option) +``` + + +#### option + +- closeButton +- closeOnClick +- maxWidth +- anchor + + +## 方法 + +#### setLnglat +设置popup的经纬度位置
**参数**:lnglat 经纬度数组 [112,32] + +```javascript +popup.setLnglat([112, 32]); +``` + + +#### addTo +**参数**:scene 地图scene实例 + +将popup添加到地图scene显示 + +```javascript +popup.addTo(scene); +``` + + +#### setHtml +**参数**:html 字符串 + +设置popup html 内容 + +```javascript +var html = '

\u7701\u4EFD\uFF1A' + feature.s + '

\n

\u5730\u533A\uFF1A' + feature.m + '

\n

\u6E29\u5EA6\uFF1A' + feature.t + '

\n '; +popup.setHtml(html); + +``` + + +#### setText +设置 popup 显示文本内容 + +```javascript +popup.setText('hello world'); +``` + + +#### remove +移除popup + +```javascript +popup.remove() +``` + + +## 事件 + +#### close + +```javascript +popup.on('close',()=>{}) +``` + + +## 示例代码 + +#### 添加popup + +``` + var html = '

'+feature.m+'

'; + const new L7.Popup().setLnglat([112, 32]).setHTML(html).addTo(scene); +``` + +### FAQ diff --git a/docs/manual/tutorial/data.md b/docs/manual/tutorial/data.md new file mode 100644 index 0000000000..01c98b4fc2 --- /dev/null +++ b/docs/manual/tutorial/data.md @@ -0,0 +1,65 @@ +--- +title: 数据 +order: 1 +--- + +## 数据 + +目前L7支持的数据格式有GeoJson,CSV,JSon Image + +GeoJSON 支持点、线、面,等所有的空间数据格式。
CSV 支持,点,线段,弧线的支持。
JSON 支持简单的点、线,面,不支持多点,多线的,多面数据格式。 + + +## GeoJSON + +> GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。 + + + +```json +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 110.478515625, + 32.76880048488168 + ], + [ + 117.68554687499999, + 32.76880048488168 + ], + [ + 117.68554687499999, + 37.64903402157866 + ], + [ + 110.478515625, + 37.64903402157866 + ], + [ + 110.478515625, + 32.76880048488168 + ] + ] + ] + } + } + ] +} +``` + +## 地理统计分析工具 +[turfjs](http://turfjs.org/):  地理数据计算,处理,统计,分析的Javascript 库 + +## 在线工具 + +[http://geojson.io/](http://geojson.io/)    可以在线查看,绘制,修改GeoJSON数据 + +[https://mapshaper.org/](https://mapshaper.org/)  可以查看较大的geojson,还能够简化GeoJSON数据 diff --git a/docs/manual/tutorial/quickStart.md b/docs/manual/tutorial/quickStart.md new file mode 100644 index 0000000000..c503ca42b4 --- /dev/null +++ b/docs/manual/tutorial/quickStart.md @@ -0,0 +1,8 @@ +--- +title: 快速上手 +order: 0 +redirect_from: + - /zh/docs/tutorial +--- + +内容 diff --git a/docs/specification/introduction.md b/docs/specification/introduction.md new file mode 100644 index 0000000000..b29f7d15d3 --- /dev/null +++ b/docs/specification/introduction.md @@ -0,0 +1,7 @@ +--- +title: 简介 +order: 1 +redirect_from: + - /zh/docs/specification +--- +L7 地理空间可视化设计语言 diff --git a/examples/data/basic/demo/line.js b/examples/data/basic/demo/line.js new file mode 100644 index 0000000000..288f28b1dd --- /dev/null +++ b/examples/data/basic/demo/line.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [102.602992, 23.107329], + zoom: 13, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size(1) + .shape('line') + .color( + 'ELEV', + [ + '#E8FCFF', + '#CFF6FF', + '#A1E9ff', + '#65CEF7', + '#3CB1F0', + '#2894E0', + '#1772c2', + '#105CB3', + '#0D408C', + '#002466', + ].reverse(), + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/data/basic/demo/meta.json b/examples/data/basic/demo/meta.json new file mode 100644 index 0000000000..42812b23e6 --- /dev/null +++ b/examples/data/basic/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "图库", + "en": "Gallery" + }, + "demos": [ + { + "filename": "line.js", + "title": "线图层", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/data/basic/index.zh.md b/examples/data/basic/index.zh.md new file mode 100644 index 0000000000..a005c7b254 --- /dev/null +++ b/examples/data/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 数据 +order: 0 +--- diff --git a/examples/gallery/basic/demo/line.js b/examples/gallery/basic/demo/line.js new file mode 100644 index 0000000000..288f28b1dd --- /dev/null +++ b/examples/gallery/basic/demo/line.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [102.602992, 23.107329], + zoom: 13, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size(1) + .shape('line') + .color( + 'ELEV', + [ + '#E8FCFF', + '#CFF6FF', + '#A1E9ff', + '#65CEF7', + '#3CB1F0', + '#2894E0', + '#1772c2', + '#105CB3', + '#0D408C', + '#002466', + ].reverse(), + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/gallery/basic/demo/meta.json b/examples/gallery/basic/demo/meta.json new file mode 100644 index 0000000000..42812b23e6 --- /dev/null +++ b/examples/gallery/basic/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "图库", + "en": "Gallery" + }, + "demos": [ + { + "filename": "line.js", + "title": "线图层", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/gallery/basic/index.zh.md b/examples/gallery/basic/index.zh.md new file mode 100644 index 0000000000..a8885a5a95 --- /dev/null +++ b/examples/gallery/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: Gallery +order: 0 +--- diff --git a/examples/heatmap/basic/demo/grid.js b/examples/heatmap/basic/demo/grid.js new file mode 100644 index 0000000000..8c272874ca --- /dev/null +++ b/examples/heatmap/basic/demo/grid.js @@ -0,0 +1,55 @@ +import { Scene } from '@l7/scene'; +import { HeatMapGridLayer } from '@l7/layers'; +const scene = new Scene({ + id: 'map', + style: 'light', + pitch: 0, + center: [116.49434030056, 39.868073421167621], + type: 'amap', + zoom: 16, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/c3f8bda2-081b-449d-aa9f-9413b779205b.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new HeatMapGridLayer({ + }) + .source(data, { + parser: { + type: 'json', + x: 'lng', + y: 'lat', + }, + transforms: [ + { + type: 'grid', + size: 50, + field: 'count', + method: 'sum', + }, + ], + }) + .size('sum', (value) => { + return value; + }) + .shape('square') + .style({ + coverage: 0.8, + angle: 0, + opacity: 0.6, + }) + .color('count', [ + '#002466', + '#105CB3', + '#2894E0', + '#CFF6FF', + '#FFF5B8', + '#FFAB5C', + '#F27049', + '#730D1C', + ]); + scene.addLayer(layer); + + + }); diff --git a/examples/heatmap/basic/demo/meta.json b/examples/heatmap/basic/demo/meta.json new file mode 100644 index 0000000000..5c63ae78a9 --- /dev/null +++ b/examples/heatmap/basic/demo/meta.json @@ -0,0 +1,16 @@ +{ + "title": { + "zh": "网格热力图", + "en": "heatmap" + }, + "demos": [ + { + "filename": "grid.js", + "title": "网格热力图" + }, + { + "filename": "world.js", + "title": "世界电厂热力图" + } + ] +} diff --git a/examples/heatmap/basic/demo/world.js b/examples/heatmap/basic/demo/world.js new file mode 100644 index 0000000000..120597aa68 --- /dev/null +++ b/examples/heatmap/basic/demo/world.js @@ -0,0 +1,53 @@ +import { Scene } from '@l7/scene'; +import { HeatMapGridLayer } from '@l7/layers'; +const scene = new Scene({ + id: 'map', + style: 'light', + pitch: 0, + center: [116.49434030056, 39.868073421167621], + type: 'amap', + zoom: 3, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new HeatMapGridLayer({ + }) + .source(data, { + transforms: [ + { + type: 'grid', + size: 100000, + field: 'capacity', + method: 'sum', + }, + ], + }) + .size('sum', (value) => { + return value; + }) + .scale('sum',{ + type:'quantile', + }) + .shape('square') + .style({ + coverage: 1, + angle: 0, + opacity: 1.0, + }) + .color('sum', [ + '#002466', + '#105CB3', + '#2894E0', + '#CFF6FF', + '#FFF5B8', + '#FFAB5C', + '#F27049', + '#730D1C', + ]); + scene.addLayer(layer); + + + }); diff --git a/examples/heatmap/basic/index.zh.md b/examples/heatmap/basic/index.zh.md new file mode 100644 index 0000000000..04b2d4a469 --- /dev/null +++ b/examples/heatmap/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 网格热力图 +order: 1 +--- diff --git a/examples/heatmap/heatmap/demo/grid.js b/examples/heatmap/heatmap/demo/grid.js new file mode 100644 index 0000000000..8c272874ca --- /dev/null +++ b/examples/heatmap/heatmap/demo/grid.js @@ -0,0 +1,55 @@ +import { Scene } from '@l7/scene'; +import { HeatMapGridLayer } from '@l7/layers'; +const scene = new Scene({ + id: 'map', + style: 'light', + pitch: 0, + center: [116.49434030056, 39.868073421167621], + type: 'amap', + zoom: 16, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/c3f8bda2-081b-449d-aa9f-9413b779205b.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new HeatMapGridLayer({ + }) + .source(data, { + parser: { + type: 'json', + x: 'lng', + y: 'lat', + }, + transforms: [ + { + type: 'grid', + size: 50, + field: 'count', + method: 'sum', + }, + ], + }) + .size('sum', (value) => { + return value; + }) + .shape('square') + .style({ + coverage: 0.8, + angle: 0, + opacity: 0.6, + }) + .color('count', [ + '#002466', + '#105CB3', + '#2894E0', + '#CFF6FF', + '#FFF5B8', + '#FFAB5C', + '#F27049', + '#730D1C', + ]); + scene.addLayer(layer); + + + }); diff --git a/examples/heatmap/heatmap/demo/meta.json b/examples/heatmap/heatmap/demo/meta.json new file mode 100644 index 0000000000..5c63ae78a9 --- /dev/null +++ b/examples/heatmap/heatmap/demo/meta.json @@ -0,0 +1,16 @@ +{ + "title": { + "zh": "网格热力图", + "en": "heatmap" + }, + "demos": [ + { + "filename": "grid.js", + "title": "网格热力图" + }, + { + "filename": "world.js", + "title": "世界电厂热力图" + } + ] +} diff --git a/examples/heatmap/heatmap/demo/world.js b/examples/heatmap/heatmap/demo/world.js new file mode 100644 index 0000000000..91a0f2c2f1 --- /dev/null +++ b/examples/heatmap/heatmap/demo/world.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { HeatMapLayer } from '@l7/layers'; +const scene = new Scene({ + id: 'map', + style: 'dark', + pitch: 0, + center: [116.49434030056, 39.868073421167621], + type: 'mapbox', + zoom: 3, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new HeatMapLayer({ + }) + .source(data) + .size('capacity', [0, 1]) // weight映射通道 + .style({ + intensity: 10, + radius: 5, + opacity: 1.0, + rampColors: { + colors: [ + '#2E8AE6', + '#69D1AB', + '#DAF291', + '#FFD591', + '#FF7A45', + '#CF1D49', + ], + positions: [0,0.2, 0.4, 0.6, 0.8, 1.0], + }, + }); + scene.addLayer(layer); + + + }); diff --git a/examples/heatmap/heatmap/index.zh.md b/examples/heatmap/heatmap/index.zh.md new file mode 100644 index 0000000000..bd8e98cbc4 --- /dev/null +++ b/examples/heatmap/heatmap/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 热力图 +order: 0 +--- diff --git a/examples/line/arc/demo/arc.js b/examples/line/arc/demo/arc.js new file mode 100644 index 0000000000..abc47e51cd --- /dev/null +++ b/examples/line/arc/demo/arc.js @@ -0,0 +1,44 @@ +import { ArcLineLayer } from '@l7/layers'; +import { Scene } from '@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'dark', + center: [102.602992, 23.107329], + zoom: 0, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/b83699f9-a96d-49b8-b2ea-f99299faebaf.json') + .then((res) => res.json()) + .then((data) => { + + function getAirportCoord(idx) { + return [data.airports[idx][3], data.airports[idx][4]]; + } + const routes = data.routes.map(function (airline) { + return { + coord: [ + getAirportCoord(airline[1]), + getAirportCoord(airline[2]) + ] + } + }); + + const layer = + new ArcLineLayer({}) + .source(routes, { + parser: { + type: 'json', + coordinates: 'coord', + }, + }) + .size(0.6) + .shape('arc') + .color('rgb(5, 5, 50)') + .style({ + opacity: 0.05, + }) + ; + scene.addLayer(layer); + }) diff --git a/examples/line/arc/demo/arc3d.js b/examples/line/arc/demo/arc3d.js new file mode 100644 index 0000000000..3a7dcb3650 --- /dev/null +++ b/examples/line/arc/demo/arc3d.js @@ -0,0 +1,34 @@ +import { Arc3DLineLayer } from '@l7/layers'; +import { Scene } from '@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 40, + type: 'amap', + style: 'dark', + center: [102.602992, 23.107329], + zoom: 3, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') + .then((res) => res.text()) + .then((data) => { + const layer = + new Arc3DLineLayer({}) + .source(data, { + parser: { + type: 'csv', + x: 'lng1', + y: 'lat1', + x1: 'lng2', + y1: 'lat2', + }, + }) + .size(1) + .shape('arc') + .color('#1558AC') + .style({ + opacity: 0.8, + }) + ; + scene.addLayer(layer); + }) diff --git a/examples/line/arc/demo/arcCircle.js b/examples/line/arc/demo/arcCircle.js new file mode 100644 index 0000000000..c141782c89 --- /dev/null +++ b/examples/line/arc/demo/arcCircle.js @@ -0,0 +1,35 @@ +import { Arc2DLineLayer } from '@l7/layers'; +import { Scene } from '@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'dark', + center: [102.602992, 23.107329], + zoom: 2, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/UEXQMifxtkQlYfChpPwT.txt') + .then((res) => res.text()) + .then((data) => { + const layer = + new Arc2DLineLayer({}) + .source(data, { + parser: { + type: 'csv', + x: 'lng1', + y: 'lat1', + x1: 'lng2', + y1: 'lat2', + }, + }) + .size(1) + .shape('arc') + .color('#113681') + .style({ + opacity: 0.8, + blur: 0.99 + }) + ; + scene.addLayer(layer); + }) diff --git a/examples/line/arc/demo/meta.json b/examples/line/arc/demo/meta.json new file mode 100644 index 0000000000..13f439dbaa --- /dev/null +++ b/examples/line/arc/demo/meta.json @@ -0,0 +1,24 @@ +{ + "title": { + "zh": "弧线", + "en": "line" + }, + "demos": [ + + { + "filename": "arc3d.js", + "title": "3D弧线" + + }, + { + "filename": "arcCircle.js", + "title": "大圆弧线" + + }, + { + "filename": "arc.js", + "title": "弧线" + + } + ] +} diff --git a/examples/line/arc/index.zh.md b/examples/line/arc/index.zh.md new file mode 100644 index 0000000000..d606493acc --- /dev/null +++ b/examples/line/arc/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 弧线 +order: 1 +--- diff --git a/examples/line/basic/demo/line.js b/examples/line/basic/demo/line.js new file mode 100644 index 0000000000..5c8a4b2a80 --- /dev/null +++ b/examples/line/basic/demo/line.js @@ -0,0 +1,42 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [102.602992, 23.107329], + zoom: 14, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size('ELEV', (h) => { + return h % 50 === 0 ? 1.0 : 0.5; + }) + .shape('line') + .scale('ELEV', { + type: 'quantize' + }) + .color( + 'ELEV', + [ '#E4682F', + '#FF8752', + '#FFA783', + '#FFBEA8', + '#FFDCD6', + '#EEF3FF', + '#C8D7F5', + '#A5C1FC', + '#7FA7F9', + '#5F8AE5' ].reverse() + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/basic/demo/line2.js b/examples/line/basic/demo/line2.js new file mode 100644 index 0000000000..9049913700 --- /dev/null +++ b/examples/line/basic/demo/line2.js @@ -0,0 +1,28 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [102.602992, 23.107329], + zoom: 4, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/9f6afbcd-3aec-4a26-bd4a-2276d3439e0d.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .scale('value',{ + type: 'quantile' + }) + .size('value', [0.5, 1, 1.5, 2]) + .shape('line') + .color('value', ['#FFF2E8', '#FFCEA7', '#F0A66C', '#CC464B', '#8A191A']) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/basic/demo/meta.json b/examples/line/basic/demo/meta.json new file mode 100644 index 0000000000..ac88d09d2f --- /dev/null +++ b/examples/line/basic/demo/meta.json @@ -0,0 +1,20 @@ +{ + "title": { + "zh": "线图层", + "en": "line" + }, + "demos": [ + { + "filename": "path.js", + "title": "路径" + }, + { + "filename": "line.js", + "title": "等高线" + }, + { + "filename": "line2.js", + "title": "等值线" + } + ] +} diff --git a/examples/line/basic/demo/path.js b/examples/line/basic/demo/path.js new file mode 100644 index 0000000000..5558c7bd11 --- /dev/null +++ b/examples/line/basic/demo/path.js @@ -0,0 +1,28 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [120.2336, 30.2002], + zoom: 15, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/65e9cebb-8063-45e7-b18f-727da84e9908.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size(1.5) + .shape('line') + .color( + 'name', + ['#5B8FF9','#5CCEA1','#7B320A' ] + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/basic/index.zh.md b/examples/line/basic/index.zh.md new file mode 100644 index 0000000000..f7c0846dd7 --- /dev/null +++ b/examples/line/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 路径 +order: 0 +--- diff --git a/examples/line/dash/demo/line.js b/examples/line/dash/demo/line.js new file mode 100644 index 0000000000..c06857cc8f --- /dev/null +++ b/examples/line/dash/demo/line.js @@ -0,0 +1,44 @@ +import { Scene } from '@l7/scene'; +import { DashLineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [102.602992, 23.107329], + zoom: 14, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new DashLineLayer({ + }) + .source(data) + .size('ELEV', (h) => { + return h % 50 === 0 ? 1.0 : 0.5; + }) + .shape('line') + .scale('ELEV', { + type: 'quantize' + }) + .color( + 'ELEV', + [ '#E4682F', + '#FF8752', + '#FFA783', + '#FFBEA8', + '#FFDCD6', + '#EEF3FF', + '#C8D7F5', + '#A5C1FC', + '#7FA7F9', + '#5F8AE5' ].reverse() + ).style({ + dashArray:[10, 1], + }) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/dash/demo/line2.js b/examples/line/dash/demo/line2.js new file mode 100644 index 0000000000..6f02472e56 --- /dev/null +++ b/examples/line/dash/demo/line2.js @@ -0,0 +1,28 @@ +import { Scene } from '@l7/scene'; +import { DashLineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [102.602992, 23.107329], + zoom: 4, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/9f6afbcd-3aec-4a26-bd4a-2276d3439e0d.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new DashLineLayer({ + }) + .source(data) + .scale('value',{ + type: 'quantile' + }) + .size('value', [0.5, 1, 1.5, 2]) + .shape('line') + .color('value', ['#FFF2E8', '#FFCEA7', '#F0A66C', '#CC464B', '#8A191A']) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/dash/demo/meta.json b/examples/line/dash/demo/meta.json new file mode 100644 index 0000000000..ac88d09d2f --- /dev/null +++ b/examples/line/dash/demo/meta.json @@ -0,0 +1,20 @@ +{ + "title": { + "zh": "线图层", + "en": "line" + }, + "demos": [ + { + "filename": "path.js", + "title": "路径" + }, + { + "filename": "line.js", + "title": "等高线" + }, + { + "filename": "line2.js", + "title": "等值线" + } + ] +} diff --git a/examples/line/dash/demo/path.js b/examples/line/dash/demo/path.js new file mode 100644 index 0000000000..a61fd36f91 --- /dev/null +++ b/examples/line/dash/demo/path.js @@ -0,0 +1,96 @@ +import { Scene } from '@l7/scene'; +import { DashLineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [120.2336, 30.2002], + zoom: 3, +}); +const lineData ={ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 102.98583984374999, + 37.666429212090605 + ], + [ + 111.33544921874999, + 37.23032838760387 + ], + [ + 111.24755859375, + 34.92197103616377 + ], + [ + 98.15185546874999, + 35.44277092585766 + ], + [ + 98.701171875, + 41.09591205639546 + ], + [ + 100.5908203125, + 41.0130657870063 + ], + [ + 101.09619140625, + 41.0130657870063 + ], + [ + 101.689453125, + 41.0130657870063 + ], + [ + 102.26074218749999, + 41.0130657870063 + ], + [ + 102.26074218749999, + 40.58058466412761 + ], + [ + 102.23876953125, + 40.329795743702064 + ], + [ + 102.23876953125, + 39.977120098439634 + ], + [ + 102.26074218749999, + 40.212440718286466 + ], + [ + 102.48046875, + 39.87601941962116 + ] + ] + } + } + ] +}; +fetch('https://gw.alipayobjects.com/os/basement_prod/65e9cebb-8063-45e7-b18f-727da84e9908.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new DashLineLayer({ + }) + .source(lineData) + .size(1.5) + .shape('line') + .color( + '#5B8FF9' + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/line/dash/index.zh.md b/examples/line/dash/index.zh.md new file mode 100644 index 0000000000..5b28db9bce --- /dev/null +++ b/examples/line/dash/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 虚线 +order: 0 +--- diff --git a/examples/marker/basic/demo/line.js b/examples/marker/basic/demo/line.js new file mode 100644 index 0000000000..288f28b1dd --- /dev/null +++ b/examples/marker/basic/demo/line.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [102.602992, 23.107329], + zoom: 13, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size(1) + .shape('line') + .color( + 'ELEV', + [ + '#E8FCFF', + '#CFF6FF', + '#A1E9ff', + '#65CEF7', + '#3CB1F0', + '#2894E0', + '#1772c2', + '#105CB3', + '#0D408C', + '#002466', + ].reverse(), + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/marker/basic/demo/meta.json b/examples/marker/basic/demo/meta.json new file mode 100644 index 0000000000..42812b23e6 --- /dev/null +++ b/examples/marker/basic/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "图库", + "en": "Gallery" + }, + "demos": [ + { + "filename": "line.js", + "title": "线图层", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/marker/basic/index.zh.md b/examples/marker/basic/index.zh.md new file mode 100644 index 0000000000..fc36b3a35a --- /dev/null +++ b/examples/marker/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 标注 +order: 0 +--- diff --git a/examples/point/basic/demo/color.js b/examples/point/basic/demo/color.js new file mode 100644 index 0000000000..e370f77fc9 --- /dev/null +++ b/examples/point/basic/demo/color.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { PointLayer, PointImageLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [121.40, 31.258134], + zoom: 15, + minZoom: 10 +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + const pointLayer = + new PointLayer({ + }) + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }).shape('circle') + .size('unit_price', [5, 25]) + .color('#5B8FF9') + .style({ + opacity: 0.3, + strokeWidth: 1, + strokeColor: "#5B8FF9", + + }) + + scene.addLayer(pointLayer); + + }); + + diff --git a/examples/point/basic/demo/meta.json b/examples/point/basic/demo/meta.json new file mode 100644 index 0000000000..d435544d66 --- /dev/null +++ b/examples/point/basic/demo/meta.json @@ -0,0 +1,18 @@ +{ + "title": { + "zh": "中文分类", + "en": "Category" + }, + "demos": [ + { + "filename": "point.js", + "title": "气泡图" + + }, + { + "filename": "world.js", + "title": "气泡图 - 电厂装机量" + + } + ] +} diff --git a/examples/point/basic/demo/point.js b/examples/point/basic/demo/point.js new file mode 100644 index 0000000000..e8cb87d3b8 --- /dev/null +++ b/examples/point/basic/demo/point.js @@ -0,0 +1,37 @@ +import { Scene } from '@l7/scene'; +import { PointLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [121.40, 31.258134], + zoom: 15, + +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + const pointLayer = + new PointLayer({ + }) + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }).shape('circle') + .size('unit_price', [5, 25]) + .color('name',['#49B5AD', "#5B8FF9"]) + .style({ + opacity: 0.3, + strokeWidth: 1, + }) + + scene.addLayer(pointLayer); + + }); + + diff --git a/examples/point/basic/demo/world.js b/examples/point/basic/demo/world.js new file mode 100644 index 0000000000..4a659c95cb --- /dev/null +++ b/examples/point/basic/demo/world.js @@ -0,0 +1,32 @@ +import { Scene } from '@l7/scene'; +import { PointLayer, PointImageLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'dark', + center: [121.40, 31.258134], + zoom: 1, + maxZoom: 10 +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/337ddbb7-aa3f-4679-ab60-d64359241955.json') + .then((res) => res.json()) + .then((data) => { + const pointLayer = + new PointLayer({ + }) + .source(data).shape('circle') + .size('capacity', [0, 20]) + .color('status', ['#ced1cc','#ffc83e','#ff8767','#dd54b6','#a45edb']) + .style({ + opacity: 0.3, + strokeWidth: 1, + + }) + + scene.addLayer(pointLayer); + + }); + + diff --git a/examples/point/basic/index.zh.md b/examples/point/basic/index.zh.md new file mode 100644 index 0000000000..28816f38db --- /dev/null +++ b/examples/point/basic/index.zh.md @@ -0,0 +1,6 @@ +--- +title: 气泡图 +order: 0 +redirect_from: + - /zh/examples +--- diff --git a/examples/point/image/demo/image.js b/examples/point/image/demo/image.js new file mode 100644 index 0000000000..c108b9cd7f --- /dev/null +++ b/examples/point/image/demo/image.js @@ -0,0 +1,41 @@ +import { Scene } from '@l7/scene'; +import { PointImageLayer } from '@l7/layers' +console.log(this); +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [121.40, 31.258134], + zoom: 15, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + scene.addImage( + '00', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Rq6tQ5b4_JMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '01', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*0D0SQ6AgkRMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '02', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*o16fSIvcKdUAAAAAAAAAAABkARQnAQ', + ); + const imageLayer = new PointImageLayer() + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }) + .shape('name', ['00', '01','02']) + .size(20); + scene.addLayer(imageLayer); + }); + + diff --git a/examples/point/image/demo/meta.json b/examples/point/image/demo/meta.json new file mode 100644 index 0000000000..63fdd2f8ef --- /dev/null +++ b/examples/point/image/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "中文分类", + "en": "Category" + }, + "demos": [ + { + "filename": "point.js", + "title": "气泡图", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/point/image/demo/size.js b/examples/point/image/demo/size.js new file mode 100644 index 0000000000..e1932a3a46 --- /dev/null +++ b/examples/point/image/demo/size.js @@ -0,0 +1,41 @@ +import { Scene } from '@l7/scene'; +import { PointImageLayer } from '@l7/layers' +console.log(this); +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [121.40, 31.258134], + zoom: 15, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + scene.addImage( + '00', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Rq6tQ5b4_JMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '01', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*0D0SQ6AgkRMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '02', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*o16fSIvcKdUAAAAAAAAAAABkARQnAQ', + ); + const imageLayer = new PointImageLayer() + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }) + .shape('name', ['00', '01','02']) + .size('unit_price', [30, 100]) + scene.addLayer(imageLayer); + }); + + diff --git a/examples/point/image/index.zh.md b/examples/point/image/index.zh.md new file mode 100644 index 0000000000..338e947362 --- /dev/null +++ b/examples/point/image/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 符号图 +order: 1 +--- diff --git a/examples/polygon/basic/demo/meta.json b/examples/polygon/basic/demo/meta.json new file mode 100644 index 0000000000..be1f983bc0 --- /dev/null +++ b/examples/polygon/basic/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "中文分类", + "en": "Category" + }, + "demos": [ + { + "filename": "point.js", + "title": "面图层", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/polygon/basic/demo/polygon.js b/examples/polygon/basic/demo/polygon.js new file mode 100644 index 0000000000..241c844e12 --- /dev/null +++ b/examples/polygon/basic/demo/polygon.js @@ -0,0 +1,26 @@ +import { Scene } from '@l7/scene'; +import { PolygonLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'light', + center: [121.40, 31.258134], + zoom: 3, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/JToMOWvicvJOISZFCkEI.json') + .then((res) => res.json()) + .then((data) => { + var colors = ["#D7F9F0", "#A6E1E0", "#72BED6", "#5B8FF9", "#3474DB", "#005CBE",'#00419F','#00287E']; + const layer = + new PolygonLayer({ + }) + .source(data) + .color('name', colors).shape('fill') + .style({ + opacity: 0.9 + }).render(); + scene.addLayer(layer); + console.log(layer); + }); diff --git a/examples/polygon/basic/index.zh.md b/examples/polygon/basic/index.zh.md new file mode 100644 index 0000000000..3e98b0b14c --- /dev/null +++ b/examples/polygon/basic/index.zh.md @@ -0,0 +1,6 @@ +--- +title: 面图层 +order: 0 +redirect_from: + - /zh/examples +--- diff --git a/examples/raster/basic/demo/line.js b/examples/raster/basic/demo/line.js new file mode 100644 index 0000000000..288f28b1dd --- /dev/null +++ b/examples/raster/basic/demo/line.js @@ -0,0 +1,39 @@ +import { Scene } from '@l7/scene'; +import { LineLayer } from '@l7/layers' +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [102.602992, 23.107329], + zoom: 13, +}); + +fetch('https://gw.alipayobjects.com/os/rmsportal/ZVfOvhVCzwBkISNsuKCc.json') + .then((res) => res.json()) + .then((data) => { + const layer = + new LineLayer({ + }) + .source(data) + .size(1) + .shape('line') + .color( + 'ELEV', + [ + '#E8FCFF', + '#CFF6FF', + '#A1E9ff', + '#65CEF7', + '#3CB1F0', + '#2894E0', + '#1772c2', + '#105CB3', + '#0D408C', + '#002466', + ].reverse(), + ) + scene.addLayer(layer); + console.log(layer); + + }); diff --git a/examples/raster/basic/demo/meta.json b/examples/raster/basic/demo/meta.json new file mode 100644 index 0000000000..42812b23e6 --- /dev/null +++ b/examples/raster/basic/demo/meta.json @@ -0,0 +1,13 @@ +{ + "title": { + "zh": "图库", + "en": "Gallery" + }, + "demos": [ + { + "filename": "line.js", + "title": "线图层", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/raster/basic/index.zh.md b/examples/raster/basic/index.zh.md new file mode 100644 index 0000000000..6147459f75 --- /dev/null +++ b/examples/raster/basic/index.zh.md @@ -0,0 +1,4 @@ +--- +title: 栅格图层 +order: 0 +--- diff --git a/examples/scene/basic/demo/amap.js b/examples/scene/basic/demo/amap.js new file mode 100644 index 0000000000..fd49089062 --- /dev/null +++ b/examples/scene/basic/demo/amap.js @@ -0,0 +1,9 @@ +import { Scene } from '@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'dark', + center: [121.40, 31.258134], + zoom: 5, +}); diff --git a/examples/scene/basic/demo/mapbox.js b/examples/scene/basic/demo/mapbox.js new file mode 100644 index 0000000000..ec57775e93 --- /dev/null +++ b/examples/scene/basic/demo/mapbox.js @@ -0,0 +1,10 @@ +import { Scene } from '@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [ -97.119140625, 38.75408327579141], + zoom: 2, +}); + diff --git a/examples/scene/basic/demo/meta.json b/examples/scene/basic/demo/meta.json new file mode 100644 index 0000000000..31bfd25527 --- /dev/null +++ b/examples/scene/basic/demo/meta.json @@ -0,0 +1,18 @@ +{ + "title": { + "zh": "地图", + "en": "Category" + }, + "demos": [ + { + "filename": "amap.js", + "title": "高德底图", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + }, + { + "filename": "mapbox.js", + "title": "MapBox底图", + "screenshot": "https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*KCyXTJrePiYAAAAAAAAAAABkARQnAQ" + } + ] +} diff --git a/examples/scene/basic/index.zh.md b/examples/scene/basic/index.zh.md new file mode 100644 index 0000000000..56c0e06be5 --- /dev/null +++ b/examples/scene/basic/index.zh.md @@ -0,0 +1,7 @@ +--- +title: 地图 +order: 0 +--- +初始 L7 地图实例 + + diff --git a/examples/scene/control/demo/amap.js b/examples/scene/control/demo/amap.js new file mode 100644 index 0000000000..755717b16b --- /dev/null +++ b/examples/scene/control/demo/amap.js @@ -0,0 +1,57 @@ +import { Scene } from '@l7/scene'; +import { PointLayer } from '@l7/layers' +import { Scale, Zoom, Layers } from '@l7/component'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'dark', + center: [121.40, 31.258134], + zoom: 5, +}); + +fetch('https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json') + .then((res) => res.json()) + .then((data) => { + const pointLayer = + new PointLayer({ + }) + .source(data, { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude' + } + }).shape('circle') + .size('unit_price', [5, 25]) + .color('name',['#49B5AD', "#5B8FF9"]) + .style({ + opacity: 0.3, + strokeWidth: 1, + }) + + scene.addLayer(pointLayer); + var overlayers = { + "围栏填充": pointLayer, + }; + var baseLayers = { + "基础地图": pointLayer, + }; + const layersControl = new Layers({ + overlayers: overlayers, + baseLayers, + }); + + scene.addControl(layersControl); + + }); + + + + + const zoomControl = new Zoom(); + const scaleControl = new Scale(); + + scene.addControl(zoomControl); + scene.addControl(scaleControl); + diff --git a/examples/scene/control/demo/mapbox.js b/examples/scene/control/demo/mapbox.js new file mode 100644 index 0000000000..bf40cfda9a --- /dev/null +++ b/examples/scene/control/demo/mapbox.js @@ -0,0 +1,17 @@ +import { Scene } from '@l7/scene'; +import { Scale, Zoom } from '@l7/component'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'mapbox', + style: 'light', + center: [-97.119140625, 38.75408327579141], + zoom: 2, +}); + +const zoomControl = new Zoom(); +const scaleControl = new Scale(); +scene.addControl(zoomControl); +scene.addControl(scaleControl); + + diff --git a/examples/scene/control/demo/meta.json b/examples/scene/control/demo/meta.json new file mode 100644 index 0000000000..d921629ac5 --- /dev/null +++ b/examples/scene/control/demo/meta.json @@ -0,0 +1,16 @@ +{ + "title": { + "zh": "地图", + "en": "Category" + }, + "demos": [ + { + "filename": "amap.js", + "title": "高德底图组件", + }, + { + "filename": "mapbox.js", + "title": "MapBox底图组件" + } + ] +} diff --git a/examples/scene/control/index.zh.md b/examples/scene/control/index.zh.md new file mode 100644 index 0000000000..906aff7bdf --- /dev/null +++ b/examples/scene/control/index.zh.md @@ -0,0 +1,6 @@ +--- +title: 组件 +order: 0 +--- + + diff --git a/examples/scene/map/demo/amap.js b/examples/scene/map/demo/amap.js new file mode 100644 index 0000000000..3b0a7f4e01 --- /dev/null +++ b/examples/scene/map/demo/amap.js @@ -0,0 +1,9 @@ +import { Scene } from './node_modules/@l7/scene'; +const scene = new Scene({ + id: 'map', + pitch: 0, + type: 'amap', + style: 'dark', + center: [121.40, 31.258134], + zoom: 5, +}); diff --git a/gatsby-browser.js b/gatsby-browser.js new file mode 100644 index 0000000000..db9bc98d23 --- /dev/null +++ b/gatsby-browser.js @@ -0,0 +1,5 @@ +import './packages/component/src/css/l7.css'; +window.scene = require('@l7/scene'); +window.layers= require('@l7/layers'); +window.component= require('@l7/component'); + diff --git a/gatsby-config.js b/gatsby-config.js new file mode 100644 index 0000000000..01e28a6eb0 --- /dev/null +++ b/gatsby-config.js @@ -0,0 +1,161 @@ +module.exports = { + plugins: [ + { + resolve: '@antv/gatsby-theme-antv', + options: { + pathPrefix: '/gatsby-theme-antv', + }, + }, + ], + siteMetadata: { + title: 'L7', + description: 'Large-scale WebGL-powered Geospatial data visualization analysis framework', + githubUrl: 'https://github.com/antvis/antvis.github.io', + navs: [ + { + slug: 'docs/specification', + title: { + zh: '设计语言', + en: 'Specification', + }, + }, + { + slug: 'docs/API', + title: { + zh: '文档', + en: 'document', + }, + }, + { + slug: 'docs/tutorial', + title: { + zh: '教程', + en: 'tutorial', + }, + }, + { + slug: 'examples', + title: { + zh: '图表演示', + en: 'Examples', + }, + redirect: 'point/basic', + }, + // target: '_blank', + ], + docs: [ + { + slug: 'specification', + title: { + zh: '简介', + en: 'introduction', + }, + }, + { + slug: 'manual/tutorial', + title: { + zh: '教程', + en: 'tutorial', + }, + }, + { + slug: 'API/L7.md', + title: { + zh: '简介', + en: 'intro', + }, + order:1, + }, + { + slug: 'API/component', + title: { + zh: '组件', + en: 'Component', + }, + order:1, + }, + ], + examples: [ + { + slug: 'gallery', + icon: 'gallery', + title: { + zh: 'Gallery', + en: 'Gallery', + }, + }, + { + slug: 'data', + icon: 'data', + title: { + zh: '数据源', + en: 'data', + }, + }, + { + slug: 'scene', + icon: 'map', + title: { + zh: '场景', + en: 'Scene', + }, + }, + { + slug: 'point', + icon: 'point', + title: { + zh: '点图层', + en: 'PointLayer', + }, + }, + { + slug: 'line', + icon: 'line', + title: { + zh: '线图层', + en: 'LineLayer', + }, + }, + { + slug: 'polygon', + icon: 'polygon', + title: { + zh: '面图层', + en: 'PolygonLayer', + }, + }, + { + slug: 'heatmap', + icon: 'heatmap', + title: { + zh: '热力图', + en: 'HeatMapLayer', + }, + order:5, + }, + { + slug: 'raster', + icon: 'raster', + title: { + zh: '栅格图层', + en: 'RasterLayer', + }, + }, + { + slug: 'marker', + icon: 'mapmarker', + title: { + zh: '标注', + en: 'Marker', + }, + } + ], + exampleContainer: '
', + playground: { + container: '
', + playgroundDidMount: 'console.log("playgroundDidMount");', + playgroundWillUnmount: 'console.log("scene");', + }, + }, + +}; diff --git a/package-lock.json b/package-lock.json index 0166f905d5..53e72fdffd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,124 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@ant-design/colors": { + "version": "3.2.2", + "resolved": "http://r.cnpmjs.org/@ant-design/colors/download/@ant-design/colors-3.2.2.tgz", + "integrity": "sha1-WtQ9YZ6RHzSI66wwPWBuZqhCOQM=", + "dev": true, + "requires": { + "tinycolor2": "^1.4.1" + } + }, + "@ant-design/create-react-context": { + "version": "0.2.4", + "resolved": "http://r.cnpmjs.org/@ant-design/create-react-context/download/@ant-design/create-react-context-0.2.4.tgz", + "integrity": "sha1-D+mtrQMDUMDJuylt1tz1qKNr1CU=", + "dev": true, + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "@ant-design/icons": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/@ant-design/icons/download/@ant-design/icons-2.1.1.tgz", + "integrity": "sha1-e5wI3/1PXUHbZn2dvl4BB9C9mko=", + "dev": true + }, + "@ant-design/icons-react": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/@ant-design/icons-react/download/@ant-design/icons-react-2.0.1.tgz", + "integrity": "sha1-F6JRNXGrMXrKKSfljOol3THlNvs=", + "dev": true, + "requires": { + "@ant-design/colors": "^3.1.0", + "babel-runtime": "^6.26.0" + } + }, + "@antv/gatsby-theme-antv": { + "version": "0.9.7", + "resolved": "http://r.cnpmjs.org/@antv/gatsby-theme-antv/download/@antv/gatsby-theme-antv-0.9.7.tgz", + "integrity": "sha1-8GGWwKl2IiIviQCI0V/mcf1O1z4=", + "dev": true, + "requires": { + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/preset-env": "^7.6.3", + "@babel/preset-react": "^7.6.3", + "@babel/preset-typescript": "^7.6.0", + "@babel/standalone": "^7.6.4", + "@hot-loader/react-dom": "^16.9.0+4.12.11", + "antd": "^3.23.3", + "babel-preset-gatsby": "^0.2.13", + "classnames": "^2.2.6", + "codemirror": "^5.49.2", + "gatsby": "^2.15.16", + "gatsby-image": "^2.2.19", + "gatsby-plugin-antd": "^2.0.2", + "gatsby-plugin-catch-links": "^2.1.12", + "gatsby-plugin-copy-files": "^1.0.3", + "gatsby-plugin-google-analytics": "^2.1.16", + "gatsby-plugin-i18n": "^1.0.1", + "gatsby-plugin-layout": "^1.1.11", + "gatsby-plugin-less": "^3.0.6", + "gatsby-plugin-manifest": "^2.2.16", + "gatsby-plugin-meta-redirect": "^1.1.1", + "gatsby-plugin-nprogress": "^2.1.12", + "gatsby-plugin-offline": "^3.0.7", + "gatsby-plugin-page-creator": "^2.1.25", + "gatsby-plugin-react-helmet": "^3.1.7", + "gatsby-plugin-remove-trailing-slashes": "^2.1.9", + "gatsby-plugin-sharp": "^2.2.22", + "gatsby-plugin-typescript": "^2.1.8", + "gatsby-redirect-from": "^0.2.1", + "gatsby-remark-autolink-headers": "^2.1.13", + "gatsby-remark-external-links": "^0.0.4", + "gatsby-remark-prettier": "^1.0.0", + "gatsby-remark-prismjs": "^3.3.16", + "gatsby-remark-reading-time": "^1.0.1", + "gatsby-source-filesystem": "^2.1.22", + "gatsby-source-github": "^0.0.2", + "gatsby-transformer-remark": "^2.6.24", + "gatsby-transformer-sharp": "^2.2.14", + "i18next": "^19.0.0", + "less": "^3.10.3", + "lodash-es": "^4.17.15", + "mkdirp": "^0.5.1", + "moment": "^2.24.0", + "normalize.css": "^8.0.1", + "prettier": "^1.18.2", + "prism-themes": "^1.2.0", + "prismjs": "^1.17.1", + "ptz-i18n": "^1.0.0", + "rc-footer": "^0.5.0", + "react": "^16.9.0", + "react-codemirror2": "^6.0.0", + "react-dom": "^16.9.0", + "react-github-corner": "^2.3.0", + "react-helmet": "^5.2.1", + "react-i18next": "^11.0.0", + "typescript": "^3.6.3" + }, + "dependencies": { + "typescript": { + "version": "3.6.4", + "resolved": "http://r.cnpmjs.org/typescript/download/typescript-3.6.4.tgz", + "integrity": "sha1-sYdSuzeSvBoCgTNff26/G7/FuR0=", + "dev": true + } + } + }, "@babel/cli": { "version": "7.6.4", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.6.4.tgz", @@ -436,6 +554,15 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-syntax-class-properties": { + "version": "7.2.0", + "resolved": "http://r.cnpmjs.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.2.0.tgz", + "integrity": "sha1-I7O3ubzavXNnKpFJ9yjNO+YhSBI=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, "@babel/plugin-syntax-decorators": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz", @@ -917,6 +1044,24 @@ "regexpu-core": "^4.6.0" } }, + "@babel/polyfill": { + "version": "7.6.0", + "resolved": "http://r.cnpmjs.org/@babel/polyfill/download/@babel/polyfill-7.6.0.tgz", + "integrity": "sha1-bYkgP4ts0yPo2Ubkd3TqNdwGGcw=", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "http://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz", + "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=", + "dev": true + } + } + }, "@babel/preset-env": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz", @@ -1025,6 +1170,12 @@ } } }, + "@babel/standalone": { + "version": "7.6.4", + "resolved": "http://r.cnpmjs.org/@babel/standalone/download/@babel/standalone-7.6.4.tgz", + "integrity": "sha1-EGhnaPJ6pM5LWSe5eRd2c49ssOE=", + "dev": true + }, "@babel/template": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", @@ -1648,6 +1799,322 @@ } } }, + "@gatsbyjs/relay-compiler": { + "version": "2.0.0-printer-fix.4", + "resolved": "http://r.cnpmjs.org/@gatsbyjs/relay-compiler/download/@gatsbyjs/relay-compiler-2.0.0-printer-fix.4.tgz", + "integrity": "sha1-SwautPLO6lh4tYMqLO0b/5q7Yr0=", + "dev": true, + "requires": { + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/polyfill": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.1.2", + "chalk": "^2.4.1", + "fast-glob": "^2.2.2", + "fb-watchman": "^2.0.0", + "fbjs": "^1.0.0", + "immutable": "~3.7.6", + "nullthrows": "^1.1.0", + "relay-runtime": "2.0.0", + "signedsource": "^1.0.0", + "yargs": "^9.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/cliui/download/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "fbjs": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/fbjs/download/fbjs-1.0.0.tgz", + "integrity": "sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=", + "dev": true, + "requires": { + "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" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "dev": true + }, + "immutable": { + "version": "3.7.6", + "resolved": "http://r.cnpmjs.org/immutable/download/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/load-json-file/download/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/mem/download/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/os-locale/download/os-locale-2.1.0.tgz", + "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/path-type/download/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/read-pkg/download/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "http://r.cnpmjs.org/y18n/download/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "http://r.cnpmjs.org/yargs/download/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.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", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/yargs-parser/download/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "@hapi/address": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/@hapi/address/download/@hapi/address-2.1.2.tgz", + "integrity": "sha1-HHlM1tvyNU0ese8Q4DA/Vz4cciI=", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "http://r.cnpmjs.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.0", + "resolved": "http://r.cnpmjs.org/@hapi/hoek/download/@hapi/hoek-8.5.0.tgz", + "integrity": "sha1-L5zjAciJjhwySLCoVkaWsk0amlo=", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "http://r.cnpmjs.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "http://r.cnpmjs.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@hot-loader/react-dom": { + "version": "16.10.2", + "resolved": "http://r.cnpmjs.org/@hot-loader/react-dom/download/@hot-loader/react-dom-16.10.2.tgz", + "integrity": "sha1-kZIEQiUqysbzQ+7130GsozP33Oo=", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.16.2" + }, + "dependencies": { + "scheduler": { + "version": "0.16.2", + "resolved": "http://r.cnpmjs.org/scheduler/download/scheduler-0.16.2.tgz", + "integrity": "sha1-90zZ0z7/b8VU7ft5hkho5IGRMsE=", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, "@icons/material": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz", @@ -1863,6 +2330,330 @@ "@types/yargs": "^13.0.0" } }, + "@jimp/bmp": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/bmp/download/@jimp/bmp-0.6.8.tgz", + "integrity": "sha1-irv9nia6F6R/qzEQWeqffdggBbY=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "bmp-js": "^0.1.0", + "core-js": "^2.5.7" + } + }, + "@jimp/core": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/core/download/@jimp/core-0.6.8.tgz", + "integrity": "sha1-akEIl5JRb25kpTAtEutWKqeEfHs=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^2.5.7", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + }, + "dependencies": { + "buffer": { + "version": "5.4.3", + "resolved": "http://r.cnpmjs.org/buffer/download/buffer-5.4.3.tgz", + "integrity": "sha1-P7ycaetxPTI+P8Gole7gcQwHIRU=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "file-type": { + "version": "9.0.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-9.0.0.tgz", + "integrity": "sha1-po1a0H9IZBTfssiGb3MWGUZxShg=", + "dev": true + } + } + }, + "@jimp/custom": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/custom/download/@jimp/custom-0.6.8.tgz", + "integrity": "sha1-BHbXs/XaMSHZiJWi4U8omeYC8rY=", + "dev": true, + "requires": { + "@jimp/core": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/gif": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/gif/download/@jimp/gif-0.6.8.tgz", + "integrity": "sha1-hI3U5uGlbKKzzlKJaeRN+pmlOxQ=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/jpeg/download/@jimp/jpeg-0.6.8.tgz", + "integrity": "sha1-TK2FptHhV1mstWvd7ymqNHOFnyw=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7", + "jpeg-js": "^0.3.4" + } + }, + "@jimp/plugin-blit": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-blit/download/@jimp/plugin-blit-0.6.8.tgz", + "integrity": "sha1-ZG67Yx81r8KMHokIUkvEPR6a+j0=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-blur": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-blur/download/@jimp/plugin-blur-0.6.8.tgz", + "integrity": "sha1-e3U66U9gmRA/V8Jow7JnkEfu/pU=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-color": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-color/download/@jimp/plugin-color-0.6.8.tgz", + "integrity": "sha1-QQHLEgiHmzMdtuQ+prlur4267bw=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-contain/download/@jimp/plugin-contain-0.6.8.tgz", + "integrity": "sha1-r5XTO2PQR4lDN0rhXdJgf8acrRQ=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-cover": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-cover/download/@jimp/plugin-cover-0.6.8.tgz", + "integrity": "sha1-SQ4xhmJ6NNk8wBXEFpuskHDWrRc=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-crop": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-crop/download/@jimp/plugin-crop-0.6.8.tgz", + "integrity": "sha1-/+yJUaLz7MrR48/5r/9TJr2YDOc=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-displace": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-displace/download/@jimp/plugin-displace-0.6.8.tgz", + "integrity": "sha1-id8Fq32q/2vvwZC7isVOyNV+Uzs=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-dither": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-dither/download/@jimp/plugin-dither-0.6.8.tgz", + "integrity": "sha1-F+W59WV1qHHjKf74s4jmFLkthPg=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-flip": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-flip/download/@jimp/plugin-flip-0.6.8.tgz", + "integrity": "sha1-FT3wxnf3nUB4u55MHyrDkrltw6E=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-gaussian/download/@jimp/plugin-gaussian-0.6.8.tgz", + "integrity": "sha1-EAq8euHxn+nAntQWJbR1qufGCTw=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-invert": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-invert/download/@jimp/plugin-invert-0.6.8.tgz", + "integrity": "sha1-9Av6o7WS0h/xTt4OSaq+yIBIytA=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-mask": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-mask/download/@jimp/plugin-mask-0.6.8.tgz", + "integrity": "sha1-5kQF99rPBnK/9087lbck2axRf4Y=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-normalize": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-normalize/download/@jimp/plugin-normalize-0.6.8.tgz", + "integrity": "sha1-oBgPK4g142OM3F4Fe0SsY/YNtro=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-print": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-print/download/@jimp/plugin-print-0.6.8.tgz", + "integrity": "sha1-ZjCVSeAYlkcxEeOgrSzuQoY4vW4=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7", + "load-bmfont": "^1.4.0" + } + }, + "@jimp/plugin-resize": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-resize/download/@jimp/plugin-resize-0.6.8.tgz", + "integrity": "sha1-wm2alz9+7FGtkBj8u6wRRvenOqA=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-rotate": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-rotate/download/@jimp/plugin-rotate-0.6.8.tgz", + "integrity": "sha1-Kv2iR5hO7r7ZXBuxsTzNO+WXMpk=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugin-scale": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugin-scale/download/@jimp/plugin-scale-0.6.8.tgz", + "integrity": "sha1-XeQDNFhZuwswvz4kLe3YzrbsuWw=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7" + } + }, + "@jimp/plugins": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/plugins/download/@jimp/plugins-0.6.8.tgz", + "integrity": "sha1-VhgXCphs7R6nla3Nk3YSLyVDuFY=", + "dev": true, + "requires": { + "@jimp/plugin-blit": "^0.6.8", + "@jimp/plugin-blur": "^0.6.8", + "@jimp/plugin-color": "^0.6.8", + "@jimp/plugin-contain": "^0.6.8", + "@jimp/plugin-cover": "^0.6.8", + "@jimp/plugin-crop": "^0.6.8", + "@jimp/plugin-displace": "^0.6.8", + "@jimp/plugin-dither": "^0.6.8", + "@jimp/plugin-flip": "^0.6.8", + "@jimp/plugin-gaussian": "^0.6.8", + "@jimp/plugin-invert": "^0.6.8", + "@jimp/plugin-mask": "^0.6.8", + "@jimp/plugin-normalize": "^0.6.8", + "@jimp/plugin-print": "^0.6.8", + "@jimp/plugin-resize": "^0.6.8", + "@jimp/plugin-rotate": "^0.6.8", + "@jimp/plugin-scale": "^0.6.8", + "core-js": "^2.5.7", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/png/download/@jimp/png-0.6.8.tgz", + "integrity": "sha1-7gbPB4s4ETfscgbEuxtM/L4Vym8=", + "dev": true, + "requires": { + "@jimp/utils": "^0.6.8", + "core-js": "^2.5.7", + "pngjs": "^3.3.3" + } + }, + "@jimp/tiff": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/tiff/download/@jimp/tiff-0.6.8.tgz", + "integrity": "sha1-eb0i7UNe2+KdAqLIyb+Cn5iOusw=", + "dev": true, + "requires": { + "core-js": "^2.5.7", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/types/download/@jimp/types-0.6.8.tgz", + "integrity": "sha1-RRDrY1zQCyAXRdcOOPeRdIuqcHU=", + "dev": true, + "requires": { + "@jimp/bmp": "^0.6.8", + "@jimp/gif": "^0.6.8", + "@jimp/jpeg": "^0.6.8", + "@jimp/png": "^0.6.8", + "@jimp/tiff": "^0.6.8", + "core-js": "^2.5.7", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/@jimp/utils/download/@jimp/utils-0.6.8.tgz", + "integrity": "sha1-CfeUlFYxFzVnqlD3KsKBcN5Ypj0=", + "dev": true, + "requires": { + "core-js": "^2.5.7" + } + }, "@lerna/add": { "version": "3.18.0", "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.18.0.tgz", @@ -3143,6 +3934,12 @@ "rimraf": "^2.5.2" } }, + "@mikaelkristiansson/domready": { + "version": "1.0.9", + "resolved": "http://r.cnpmjs.org/@mikaelkristiansson/domready/download/@mikaelkristiansson/domready-1.0.9.tgz", + "integrity": "sha1-srhdise7J5fldwULYa6vGyb72QY=", + "dev": true + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -3300,6 +4097,53 @@ "@types/node": "^12.11.1" } }, + "@pieh/friendly-errors-webpack-plugin": { + "version": "1.7.0-chalk-2", + "resolved": "http://r.cnpmjs.org/@pieh/friendly-errors-webpack-plugin/download/@pieh/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", + "integrity": "sha1-Lp2p063p0Y0BMzPrQIxFfQTqusA=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0", + "strip-ansi": "^3" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, "@reach/router": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.2.1.tgz", @@ -3322,6 +4166,12 @@ "any-observable": "^0.3.0" } }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "http://r.cnpmjs.org/@sindresorhus/is/download/@sindresorhus/is-0.7.0.tgz", + "integrity": "sha1-mgb08TfuhNffBGDB/bETX/psUP0=", + "dev": true + }, "@storybook/addon-actions": { "version": "5.2.5", "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-5.2.5.tgz", @@ -4243,12 +5093,24 @@ "@types/node": "*" } }, + "@types/configstore": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/@types/configstore/download/@types/configstore-2.1.1.tgz", + "integrity": "sha1-zR6FU2M60xhcPy8jns/10mQ+krY=", + "dev": true + }, "@types/dat.gui": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@types/dat.gui/-/dat.gui-0.7.5.tgz", "integrity": "sha512-5AqLThlTiuDSOZA7XZFogRj/UdGKn/iIfdFPuh37kY4s7TjTt+YUOlUmcCrY6wAYFFyThtt2z8qZlYcdkhJZ5w==", "dev": true }, + "@types/debug": { + "version": "0.0.29", + "resolved": "http://r.cnpmjs.org/@types/debug/download/@types/debug-0.0.29.tgz", + "integrity": "sha1-oeUUrfvZLwOiJLpU1pMRHb8fN1Q=", + "dev": true + }, "@types/enzyme": { "version": "3.10.3", "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.3.tgz", @@ -4268,6 +5130,12 @@ "@types/enzyme": "*" } }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/@types/eslint-visitor-keys/download/@types/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha1-HuMNeVRMqE1o1LPNsK9PIFZj3S0=", + "dev": true + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -4280,6 +5148,12 @@ "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", "dev": true }, + "@types/get-port": { + "version": "0.0.4", + "resolved": "http://r.cnpmjs.org/@types/get-port/download/@types/get-port-0.0.4.tgz", + "integrity": "sha1-62u3Qj2fiItjJmDcfS/T5po1ZD4=", + "dev": true + }, "@types/gl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@types/gl/-/gl-4.1.0.tgz", @@ -4349,12 +5223,24 @@ "integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==", "dev": true }, + "@types/json-schema": { + "version": "7.0.3", + "resolved": "http://r.cnpmjs.org/@types/json-schema/download/@types/json-schema-7.0.3.tgz", + "integrity": "sha1-vf1p1h5GTcyBslFZwnDXWnPBpjY=", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/mkdirp": { + "version": "0.3.29", + "resolved": "http://r.cnpmjs.org/@types/mkdirp/download/@types/mkdirp-0.3.29.tgz", + "integrity": "sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=", + "dev": true + }, "@types/node": { "version": "12.12.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.5.tgz", @@ -4408,6 +5294,15 @@ "@types/react": "*" } }, + "@types/react-slick": { + "version": "0.23.4", + "resolved": "http://r.cnpmjs.org/@types/react-slick/download/@types/react-slick-0.23.4.tgz", + "integrity": "sha1-yX4qnn49GTPGhZO46CdS+rHozlM=", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/react-syntax-highlighter": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-10.1.0.tgz", @@ -4457,6 +5352,12 @@ "@types/geojson": "*" } }, + "@types/tmp": { + "version": "0.0.32", + "resolved": "http://r.cnpmjs.org/@types/tmp/download/@types/tmp-0.0.32.tgz", + "integrity": "sha1-DTyzECL4Qn6ljACK8yuA2hJspOM=", + "dev": true + }, "@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", @@ -4505,6 +5406,101 @@ "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", "dev": true }, + "@typescript-eslint/eslint-plugin": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-2.6.0.tgz", + "integrity": "sha1-6C7UP8RSeyG/41wgotbk7Un8eVc=", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.6.0", + "eslint-utils": "^1.4.2", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.17.1" + }, + "dependencies": { + "tsutils": { + "version": "3.17.1", + "resolved": "http://r.cnpmjs.org/tsutils/download/tsutils-3.17.1.tgz", + "integrity": "sha1-7XGZF/EcoN7lhicrKsSeAVot11k=", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-2.6.0.tgz", + "integrity": "sha1-7XC+9ygiv/VAMf8GFfyIi54rboo=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-scope": "^5.0.0" + }, + "dependencies": { + "eslint-scope": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/eslint-scope/download/eslint-scope-5.0.0.tgz", + "integrity": "sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/@typescript-eslint/parser/download/@typescript-eslint/parser-2.6.0.tgz", + "integrity": "sha1-UQYpXGpwVih7RxniSq6NYpPVr0k=", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.6.0", + "@typescript-eslint/typescript-estree": "2.6.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-2.6.0.tgz", + "integrity": "sha1-0+nY4AFJLiuRJMTUvU5/A8D9clQ=", + "dev": true, + "requires": { + "debug": "^4.1.1", + "glob": "^7.1.4", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -4803,18 +5799,39 @@ } } }, + "acorn-jsx": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/acorn-jsx/download/acorn-jsx-5.1.0.tgz", + "integrity": "sha1-KUrbcbVzmLBoABXwo4xWPuHbU4Q=", + "dev": true + }, "acorn-walk": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, + "add-dom-event-listener": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/add-dom-event-listener/download/add-dom-event-listener-1.1.0.tgz", + "integrity": "sha1-apLbOg3Qq8JU4JXA8dwUrLuq4xA=", + "dev": true, + "requires": { + "object-assign": "4.x" + } + }, "address": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, + "after": { + "version": "0.8.2", + "resolved": "http://r.cnpmjs.org/after/download/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, "agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", @@ -4918,6 +5935,12 @@ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", @@ -5009,6 +6032,84 @@ "entities": "^1.1.2" } }, + "antd": { + "version": "3.25.0", + "resolved": "http://r.cnpmjs.org/antd/download/antd-3.25.0.tgz", + "integrity": "sha1-0dYJA4s9F93538HD46kYbRxThJ0=", + "dev": true, + "requires": { + "@ant-design/create-react-context": "^0.2.4", + "@ant-design/icons": "~2.1.1", + "@ant-design/icons-react": "~2.0.1", + "@types/react-slick": "^0.23.4", + "array-tree-filter": "^2.1.0", + "babel-runtime": "6.x", + "classnames": "~2.2.6", + "copy-to-clipboard": "^3.2.0", + "css-animation": "^1.5.0", + "dom-closest": "^0.2.0", + "enquire.js": "^2.1.6", + "lodash": "^4.17.13", + "moment": "^2.24.0", + "omit.js": "^1.0.2", + "prop-types": "^15.7.2", + "raf": "^3.4.1", + "rc-animate": "^2.8.3", + "rc-calendar": "~9.15.5", + "rc-cascader": "~0.17.4", + "rc-checkbox": "~2.1.6", + "rc-collapse": "~1.11.3", + "rc-dialog": "~7.5.2", + "rc-drawer": "~3.0.0", + "rc-dropdown": "~2.4.1", + "rc-editor-mention": "^1.1.13", + "rc-form": "^2.4.5", + "rc-input-number": "~4.5.0", + "rc-mentions": "~0.4.0", + "rc-menu": "~7.5.1", + "rc-notification": "~3.3.1", + "rc-pagination": "~1.20.5", + "rc-progress": "~2.5.0", + "rc-rate": "~2.5.0", + "rc-resize-observer": "^0.1.0", + "rc-select": "~9.2.0", + "rc-slider": "~8.7.1", + "rc-steps": "~3.5.0", + "rc-switch": "~1.9.0", + "rc-table": "~6.9.4", + "rc-tabs": "~9.6.4", + "rc-time-picker": "~3.7.1", + "rc-tooltip": "~3.7.3", + "rc-tree": "~2.1.0", + "rc-tree-select": "~2.9.1", + "rc-trigger": "^2.6.2", + "rc-upload": "~2.9.1", + "rc-util": "^4.10.0", + "react-lazy-load": "^3.0.13", + "react-lifecycles-compat": "^3.0.4", + "react-slick": "~0.25.2", + "resize-observer-polyfill": "^1.5.1", + "shallowequal": "^1.1.0", + "warning": "~4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "any-base": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/any-base/download/any-base-1.1.0.tgz", + "integrity": "sha1-rhAaYrwIpZe0yatbcInUVmMFSf4=", + "dev": true + }, "any-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", @@ -5054,6 +6155,29 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "arch": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/arch/download/arch-2.1.1.tgz", + "integrity": "sha1-j1wnMao1owkpIhuwZA7tZRdeyE4=", + "dev": true + }, + "archive-type": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/archive-type/download/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "dev": true, + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "dev": true + } + } + }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", @@ -5073,6 +6197,16 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/aria-query/download/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -5137,6 +6271,30 @@ "es-abstract": "^1.7.0" } }, + "array-iterate": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/array-iterate/download/array-iterate-1.1.3.tgz", + "integrity": "sha1-sRa9seN/PD/sE6zfuRrIKfEiVDw=", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "resolved": "http://r.cnpmjs.org/array-map/download/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "http://r.cnpmjs.org/array-reduce/download/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-tree-filter": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz", + "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA=", + "dev": true + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -5190,6 +6348,12 @@ "function-bind": "^1.1.1" } }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "http://r.cnpmjs.org/arraybuffer.slice/download/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha1-O7xCdd1YTMGxCAm4nU6LY6aednU=", + "dev": true + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -5267,6 +6431,12 @@ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", "dev": true }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "http://r.cnpmjs.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -5300,6 +6470,12 @@ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, + "async-validator": { + "version": "1.11.5", + "resolved": "http://r.cnpmjs.org/async-validator/download/async-validator-1.11.5.tgz", + "integrity": "sha1-nUPPSe9rt2vlRCOI0Z+5puR1l+o=", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -5318,6 +6494,16 @@ "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", "dev": true }, + "auto-bind": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/auto-bind/download/auto-bind-2.1.1.tgz", + "integrity": "sha1-iuUJZx7N+9UAn8mbDxmunDoqv1A=", + "dev": true, + "optional": true, + "requires": { + "@types/react": "^16.8.12" + } + }, "autoprefixer": { "version": "9.7.1", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.1.tgz", @@ -5375,6 +6561,51 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "axios": { + "version": "0.19.0", + "resolved": "http://r.cnpmjs.org/axios/download/axios-0.19.0.tgz", + "integrity": "sha1-jgm/89kSLhM/e4EByPvdAO09Krg=", + "dev": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/debug/download/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "http://r.cnpmjs.org/follow-redirects/download/follow-redirects-1.5.10.tgz", + "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", + "dev": true, + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "http://r.cnpmjs.org/is-buffer/download/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", + "dev": true + } + } + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/axobject-query/download/axobject-query-2.0.2.tgz", + "integrity": "sha1-6hh6vluQArN3+SXYv30cVhrfOPk=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -5419,6 +6650,35 @@ } } }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "http://r.cnpmjs.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=", + "dev": true + }, + "babel-eslint": { + "version": "10.0.3", + "resolved": "http://r.cnpmjs.org/babel-eslint/download/babel-eslint-10.0.3.tgz", + "integrity": "sha1-gaLGab4PIF4ZRi/tJILTPkaHqIo=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/babel-extract-comments/download/babel-extract-comments-1.0.0.tgz", + "integrity": "sha1-Cirt+BQX7TkbheGLRhTmk6A1GiE=", + "dev": true, + "requires": { + "babylon": "^6.18.0" + } + }, "babel-helper-evaluate-path": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", @@ -5507,6 +6767,15 @@ } } }, + "babel-plugin-add-module-exports": { + "version": "0.3.3", + "resolved": "http://r.cnpmjs.org/babel-plugin-add-module-exports/download/babel-plugin-add-module-exports-0.3.3.tgz", + "integrity": "sha1-uffAqTuYkXDc4Hw+lwcakFoT/Ck=", + "dev": true, + "requires": { + "chokidar": "^2.0.4" + } + }, "babel-plugin-add-react-displayname": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", @@ -5560,6 +6829,16 @@ "source-map": "^0.5.7" } }, + "babel-plugin-import": { + "version": "1.12.2", + "resolved": "http://r.cnpmjs.org/babel-plugin-import/download/babel-plugin-import-1.12.2.tgz", + "integrity": "sha1-u44R2rrmj7/0SEyOK8LbHghihqg=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/runtime": "^7.0.0" + } + }, "babel-plugin-inline-import": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-inline-import/-/babel-plugin-inline-import-3.0.0.tgz", @@ -5783,12 +7062,36 @@ } } }, + "babel-plugin-remove-graphql-queries": { + "version": "2.7.14", + "resolved": "http://r.cnpmjs.org/babel-plugin-remove-graphql-queries/download/babel-plugin-remove-graphql-queries-2.7.14.tgz", + "integrity": "sha1-9gBk2XEXJXaFVwlssHmIUI5mFuM=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", "dev": true }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha1-qiE8FDXiv/62/KhCKH71NK0F1c8=", + "dev": true + }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", @@ -5813,6 +7116,16 @@ "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", "dev": true }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, "babel-plugin-transform-postcss": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-postcss/-/babel-plugin-transform-postcss-0.3.0.tgz", @@ -5940,6 +7253,82 @@ } } }, + "babel-preset-fbjs": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz", + "integrity": "sha1-pgJHZOqGyOBqIteUyotpU00mNUE=", + "dev": true, + "requires": { + "@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-gatsby": { + "version": "0.2.20", + "resolved": "http://r.cnpmjs.org/babel-preset-gatsby/download/babel-preset-gatsby-0.2.20.tgz", + "integrity": "sha1-Dqk9qyoNDngOkU6NhFAhtnDFPBc=", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.5.5", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.6.2", + "@babel/plugin-transform-spread": "^7.6.2", + "@babel/preset-env": "^7.6.3", + "@babel/preset-react": "^7.6.3", + "@babel/runtime": "^7.6.3", + "babel-plugin-dynamic-import-node": "^1.2.0", + "babel-plugin-macros": "^2.6.1", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + }, + "dependencies": { + "@babel/plugin-transform-runtime": { + "version": "7.6.2", + "resolved": "http://r.cnpmjs.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.6.2.tgz", + "integrity": "sha1-Jmn2fB+uCujYv2luQmOtUsuYtvg=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-1.2.0.tgz", + "integrity": "sha1-+RYx5wPgWV5H1L6vuwiFdsh/vu4=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0" + } + } + } + }, "babel-preset-jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", @@ -6166,6 +7555,18 @@ "integrity": "sha1-Ffs9NfLEVmlYFevx7Zb+fwFbaIY=", "dev": true }, + "babylon": { + "version": "6.18.0", + "resolved": "http://r.cnpmjs.org/babylon/download/babylon-6.18.0.tgz", + "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/backo2/download/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, "bail": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", @@ -6239,12 +7640,24 @@ "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA==", "dev": true }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "http://r.cnpmjs.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, + "base64id": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/base64id/download/base64id-2.0.0.tgz", + "integrity": "sha1-J3Csa8R9MSr5eov5pjQ0LgzSXLY=", + "dev": true + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6272,12 +7685,212 @@ "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", "dev": true }, + "better-assert": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/better-assert/download/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "better-opn": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/better-opn/download/better-opn-1.0.0.tgz", + "integrity": "sha1-BFTku5EVxqnk5XREF92cl/ufzkE=", + "dev": true, + "requires": { + "open": "^6.4.0" + } + }, + "better-queue": { + "version": "3.8.10", + "resolved": "http://r.cnpmjs.org/better-queue/download/better-queue-3.8.10.tgz", + "integrity": "sha1-HJO57Eyz0bcuuR0O/LhPyA6MaDU=", + "dev": true, + "requires": { + "better-queue-memory": "^1.0.1", + "node-eta": "^0.9.0", + "uuid": "^3.0.0" + } + }, + "better-queue-memory": { + "version": "1.0.4", + "resolved": "http://r.cnpmjs.org/better-queue-memory/download/better-queue-memory-1.0.4.tgz", + "integrity": "sha1-85DWswuzs2qvLOUrN6SD6KeoGiI=", + "dev": true + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "bin-build": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/bin-build/download/bin-build-3.0.0.tgz", + "integrity": "sha1-xXgKJaip+WbYJEIX5sH1CCoUOGE=", + "dev": true, + "requires": { + "decompress": "^4.0.0", + "download": "^6.2.2", + "execa": "^0.7.0", + "p-map-series": "^1.0.0", + "tempfile": "^2.0.0" + } + }, + "bin-check": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/bin-check/download/bin-check-4.1.0.tgz", + "integrity": "sha1-/ElZcL3Ii7HVo1/BfmXEoUn8Skk=", + "dev": true, + "requires": { + "execa": "^0.7.0", + "executable": "^4.1.0" + } + }, + "bin-version": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/bin-version/download/bin-version-3.1.0.tgz", + "integrity": "sha1-WwnrKAdSsb0o8MnbP5by9DtsCDk=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "find-versions": "^3.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "bin-version-check": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/bin-version-check/download/bin-version-check-4.0.0.tgz", + "integrity": "sha1-fYGcYklpkfgNiT5uAqMDI2Fgj3E=", + "dev": true, + "requires": { + "bin-version": "^3.0.0", + "semver": "^5.6.0", + "semver-truncate": "^1.1.2" + } + }, + "bin-wrapper": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/bin-wrapper/download/bin-wrapper-4.1.0.tgz", + "integrity": "sha1-mTSPLPhQMePvfvzn5TAK6q6WBgU=", + "dev": true, + "requires": { + "bin-check": "^4.1.0", + "bin-version-check": "^4.0.0", + "download": "^7.1.0", + "import-lazy": "^3.1.0", + "os-filter-obj": "^2.0.0", + "pify": "^4.0.1" + }, + "dependencies": { + "download": { + "version": "7.1.0", + "resolved": "http://r.cnpmjs.org/download/download/download-7.1.0.tgz", + "integrity": "sha1-kFmqnXC1A+52oTKJe+beyOVYcjM=", + "dev": true, + "requires": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "file-type": { + "version": "8.1.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-8.1.0.tgz", + "integrity": "sha1-JE87fvZBu+DMoZbHJ25LMyOZ9ow=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "p-event": { + "version": "2.3.1", + "resolved": "http://r.cnpmjs.org/p-event/download/p-event-2.3.1.tgz", + "integrity": "sha1-WWJ57xaassPgyuiMHPuwgHmZPvY=", + "dev": true, + "requires": { + "p-timeout": "^2.0.1" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } + } + }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", @@ -6321,6 +7934,12 @@ } } }, + "blob": { + "version": "0.0.5", + "resolved": "http://r.cnpmjs.org/blob/download/blob-0.0.5.tgz", + "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM=", + "dev": true + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -6336,6 +7955,12 @@ "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, + "bmp-js": { + "version": "0.1.0", + "resolved": "http://r.cnpmjs.org/bmp-js/download/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", + "dev": true + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -6637,6 +8262,40 @@ "isarray": "^1.0.0" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz", + "integrity": "sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "http://r.cnpmjs.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "http://r.cnpmjs.org/buffer-equal/download/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/buffer-fill/download/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -6748,6 +8407,112 @@ "unset-value": "^1.0.0" } }, + "cache-manager": { + "version": "2.10.0", + "resolved": "http://r.cnpmjs.org/cache-manager/download/cache-manager-2.10.0.tgz", + "integrity": "sha1-J46fh4Tl1+Zhe/41A1jIzNFzh78=", + "dev": true, + "requires": { + "async": "1.5.2", + "lru-cache": "4.0.0" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "http://r.cnpmjs.org/async/download/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "lru-cache": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/lru-cache/download/lru-cache-4.0.0.tgz", + "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", + "dev": true, + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + } + } + }, + "cache-manager-fs-hash": { + "version": "0.0.7", + "resolved": "http://r.cnpmjs.org/cache-manager-fs-hash/download/cache-manager-fs-hash-0.0.7.tgz", + "integrity": "sha1-KX80ucGiqux7Um564HQsTj+uSIg=", + "dev": true, + "requires": { + "es6-promisify": "^6.0.0", + "lockfile": "^1.0.4" + }, + "dependencies": { + "es6-promisify": { + "version": "6.0.2", + "resolved": "http://r.cnpmjs.org/es6-promisify/download/es6-promisify-6.0.2.tgz", + "integrity": "sha1-UlwjcluFEPXx8v61ofutk6k+KbQ=", + "dev": true + } + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "http://r.cnpmjs.org/cacheable-request/download/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/normalize-url/download/normalize-url-2.0.1.tgz", + "integrity": "sha1-g1qdoVUfom9w6SMpBpojqmV01+Y=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/prepend-http/download/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "http://r.cnpmjs.org/query-string/download/query-string-5.1.1.tgz", + "integrity": "sha1-p4wBK3HBfgXy4/ojGd0zBoLvs8s=", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/sort-keys/download/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, "cachedir": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", @@ -6786,6 +8551,12 @@ "caller-callsite": "^2.0.0" } }, + "callsite": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/callsite/download/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -6831,6 +8602,18 @@ "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo=", "dev": true }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "caniuse-lite": { "version": "1.0.30001006", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001006.tgz", @@ -6846,6 +8629,18 @@ "rsvp": "^4.8.4" } }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/capture-stack-trace/download/capture-stack-trace-1.0.1.tgz", + "integrity": "sha1-psC74fOPOqC5Ijjstv9Cw0TUE10=", + "dev": true + }, + "case": { + "version": "1.6.2", + "resolved": "http://r.cnpmjs.org/case/download/case-1.6.2.tgz", + "integrity": "sha1-LqaK9pVnUs1pw0nIs+a8hg0cupU=", + "dev": true + }, "case-sensitive-paths-webpack-plugin": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", @@ -6858,6 +8653,18 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "caw": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/caw/download/caw-2.0.1.tgz", + "integrity": "sha1-bDygcfwZRyCIPC3F2psHS/x+npU=", + "dev": true, + "requires": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + } + }, "ccount": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", @@ -6905,6 +8712,12 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "charenc": { + "version": "0.0.2", + "resolved": "http://r.cnpmjs.org/charenc/download/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, "cheerio": { "version": "1.0.0-rc.3", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", @@ -7058,6 +8871,13 @@ "restore-cursor": "^2.0.0" } }, + "cli-spinners": { + "version": "1.3.1", + "resolved": "http://r.cnpmjs.org/cli-spinners/download/cli-spinners-1.3.1.tgz", + "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=", + "dev": true, + "optional": true + }, "cli-table3": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", @@ -7130,6 +8950,55 @@ "tiny-emitter": "^2.0.0" } }, + "clipboardy": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/clipboardy/download/clipboardy-2.1.0.tgz", + "integrity": "sha1-ASOgyPrJLyVtxWM14LuL6XpJCaU=", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -7215,6 +9084,23 @@ "is-supported-regexp-flag": "^1.0.0" } }, + "clone-response": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/clone-response/download/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + }, + "dependencies": { + "mimic-response": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "dev": true + } + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -7238,6 +9124,12 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "codemirror": { + "version": "5.49.2", + "resolved": "http://r.cnpmjs.org/codemirror/download/codemirror-5.49.2.tgz", + "integrity": "sha1-yE/a8RsZgD+CiwxnBgx7xtFUzK0=", + "dev": true + }, "collapse-white-space": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", @@ -7254,6 +9146,16 @@ "object-visit": "^1.0.0" } }, + "color": { + "version": "3.1.2", + "resolved": "http://r.cnpmjs.org/color/download/color-3.1.2.tgz", + "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -7269,6 +9171,16 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "color-string": { + "version": "1.5.3", + "resolved": "http://r.cnpmjs.org/color-string/download/color-string-1.5.3.tgz", + "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -7301,6 +9213,12 @@ "integrity": "sha512-Jrx3xsP4pPv4AwJUDWY9wOXGtwPXARej6Xd99h4TUGotmf8APuquKMpK+dnD3UgyxK7OEWaisjZz+3b5jtL6xQ==", "dev": true }, + "command-exists": { + "version": "1.2.8", + "resolved": "http://r.cnpmjs.org/command-exists/download/command-exists-1.2.8.tgz", + "integrity": "sha1-cVrO/dEiO5ybNxEKFJxjksKFIpE=", + "dev": true + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -7509,12 +9427,39 @@ "dot-prop": "^3.0.0" } }, + "component-bind": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/component-bind/download/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-classes": { + "version": "1.2.6", + "resolved": "http://r.cnpmjs.org/component-classes/download/component-classes-1.2.6.tgz", + "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", + "dev": true, + "requires": { + "component-indexof": "0.0.3" + } + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, + "component-indexof": { + "version": "0.0.3", + "resolved": "http://r.cnpmjs.org/component-indexof/download/component-indexof-0.0.3.tgz", + "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "http://r.cnpmjs.org/component-inherit/download/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, "compressible": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", @@ -7575,6 +9520,46 @@ "proto-list": "~1.2.1" } }, + "configstore": { + "version": "3.1.2", + "resolved": "http://r.cnpmjs.org/configstore/download/configstore-3.1.2.tgz", + "integrity": "sha1-xvJd767vJt8S3TNBSwAf6BpUP48=", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-4.2.0.tgz", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "http://r.cnpmjs.org/confusing-browser-globals/download/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha1-crwTtIPAJ2gBaBhx1ImFFvj1T90=", + "dev": true + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -7593,12 +9578,24 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "console-stream": { + "version": "0.1.1", + "resolved": "http://r.cnpmjs.org/console-stream/download/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", + "dev": true + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, + "contains-path": { + "version": "0.1.0", + "resolved": "http://r.cnpmjs.org/contains-path/download/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -7997,6 +9994,12 @@ } } }, + "convert-hrtime": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/convert-hrtime/download/convert-hrtime-2.0.0.tgz", + "integrity": "sha1-Gb+yyRYvnhHC8Ewsed4rfoCVxic=", + "dev": true + }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -8172,6 +10175,20 @@ } } }, + "copyfiles": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/copyfiles/download/copyfiles-1.2.0.tgz", + "integrity": "sha1-qNo6xBqiIgrim9PFi2mEKU8sWTw=", + "dev": true, + "requires": { + "glob": "^7.0.5", + "ltcdr": "^2.2.1", + "minimatch": "^3.0.3", + "mkdirp": "^0.5.1", + "noms": "0.0.0", + "through2": "^2.0.1" + } + }, "core-js": { "version": "2.6.10", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz", @@ -8218,6 +10235,16 @@ "webpack": "^4.38.0" } }, + "cors": { + "version": "2.8.5", + "resolved": "http://r.cnpmjs.org/cors/download/cors-2.8.5.tgz", + "integrity": "sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk=", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", @@ -8280,6 +10307,15 @@ "elliptic": "^6.0.0" } }, + "create-error-class": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/create-error-class/download/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -8307,6 +10343,17 @@ "sha.js": "^2.4.8" } }, + "create-react-class": { + "version": "15.6.3", + "resolved": "http://r.cnpmjs.org/create-react-class/download/create-react-class-15.6.3.tgz", + "integrity": "sha1-LXMjf7P5cK5uvgEanmb0bbyoADY=", + "dev": true, + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, "create-react-context": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", @@ -8317,6 +10364,30 @@ "gud": "^1.0.0" } }, + "cross-fetch": { + "version": "2.2.2", + "resolved": "http://r.cnpmjs.org/cross-fetch/download/cross-fetch-2.2.2.tgz", + "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", + "dev": true, + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "node-fetch": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/node-fetch/download/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "http://r.cnpmjs.org/whatwg-fetch/download/whatwg-fetch-2.0.4.tgz", + "integrity": "sha1-3eal3zFfnTmZGqF2IYU9cguFVm8=", + "dev": true + } + } + }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", @@ -8328,6 +10399,12 @@ "which": "^1.2.9" } }, + "crypt": { + "version": "0.0.2", + "resolved": "http://r.cnpmjs.org/crypt/download/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -8347,6 +10424,12 @@ "randomfill": "^1.0.3" } }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/crypto-random-string/download/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -8367,12 +10450,38 @@ } } }, + "css-animation": { + "version": "1.6.1", + "resolved": "http://r.cnpmjs.org/css-animation/download/css-animation-1.6.1.tgz", + "integrity": "sha1-FiBko7DVH5WLf/N7PW1N4Y4XA54=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "component-classes": "^1.2.5" + } + }, "css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", "dev": true }, + "css-color-names": { + "version": "0.0.4", + "resolved": "http://r.cnpmjs.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, "css-loader": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.2.0.tgz", @@ -8507,6 +10616,12 @@ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", "dev": true }, + "css-selector-parser": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/css-selector-parser/download/css-selector-parser-1.3.0.tgz", + "integrity": "sha1-XxrUPi2O77/cME/NOaUhZklD4+s=", + "dev": true + }, "css-selector-tokenizer": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", @@ -8595,6 +10710,12 @@ } } }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/css-unit-converter/download/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, "css-what": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", @@ -8607,6 +10728,83 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "cssnano": { + "version": "4.1.10", + "resolved": "http://r.cnpmjs.org/cssnano/download/cssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "http://r.cnpmjs.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true + }, "csso": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", @@ -8646,6 +10844,17 @@ "array-find-index": "^1.0.1" } }, + "cwebp-bin": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/cwebp-bin/download/cwebp-bin-5.1.0.tgz", + "integrity": "sha1-1b6ofBJzWFWOe/epCm1EDULcsHQ=", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "logalot": "^2.1.0" + } + }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -8678,6 +10887,12 @@ "type": "^1.0.1" } }, + "damerau-levenshtein": { + "version": "1.0.5", + "resolved": "http://r.cnpmjs.org/damerau-levenshtein/download/damerau-levenshtein-1.0.5.tgz", + "integrity": "sha1-eAz3FE6y6NvRw7uDrjEQDMwxpBQ=", + "dev": true + }, "dargs": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", @@ -8783,6 +10998,47 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/decompress/download/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "dev": true, + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -8792,6 +11048,126 @@ "mimic-response": "^2.0.0" } }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/decompress-tar/download/decompress-tar-4.1.1.tgz", + "integrity": "sha1-cYy9P8sWIJcW5womuE57pFkuWvE=", + "dev": true, + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "bl": { + "version": "1.2.2", + "resolved": "http://r.cnpmjs.org/bl/download/bl-1.2.2.tgz", + "integrity": "sha1-oWCRFxcQPAdBDO9j71Gzl8Alr5w=", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "http://r.cnpmjs.org/tar-stream/download/tar-stream-1.6.2.tgz", + "integrity": "sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/decompress-tarbz2/download/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha1-MIKluIDqQEOBY0nzeLVsUWvho5s=", + "dev": true, + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-6.2.0.tgz", + "integrity": "sha1-5QzXXTVv/tTjBtxPW89Sp5kDqRk=", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/decompress-targz/download/decompress-targz-4.1.1.tgz", + "integrity": "sha1-wJvDXE0R894J8tLaU+neI+fOHu4=", + "dev": true, + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/decompress-unzip/download/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "dev": true, + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -8830,6 +11206,12 @@ "integrity": "sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==", "dev": true }, + "deepmerge": { + "version": "4.2.2", + "resolved": "http://r.cnpmjs.org/deepmerge/download/deepmerge-4.2.2.tgz", + "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU=", + "dev": true + }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -9147,6 +11529,15 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detab": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/detab/download/detab-2.0.2.tgz", + "integrity": "sha1-B0lw0agHsEXQJYpCNd9ZKN1oNWE=", + "dev": true, + "requires": { + "repeat-string": "^1.5.4" + } + }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", @@ -9197,6 +11588,64 @@ "defined": "^1.0.0" } }, + "devcert-san": { + "version": "0.3.3", + "resolved": "http://r.cnpmjs.org/devcert-san/download/devcert-san-0.3.3.tgz", + "integrity": "sha1-qnckR0Gy2DF3HAEfIu4l45atS6k=", + "dev": true, + "requires": { + "@types/configstore": "^2.1.1", + "@types/debug": "^0.0.29", + "@types/get-port": "^0.0.4", + "@types/glob": "^5.0.30", + "@types/mkdirp": "^0.3.29", + "@types/node": "^7.0.11", + "@types/tmp": "^0.0.32", + "command-exists": "^1.2.2", + "configstore": "^3.0.0", + "debug": "^2.6.3", + "eol": "^0.8.1", + "get-port": "^3.0.0", + "glob": "^7.1.1", + "mkdirp": "^0.5.1", + "tmp": "^0.0.31", + "tslib": "^1.6.0" + }, + "dependencies": { + "@types/glob": { + "version": "5.0.36", + "resolved": "http://r.cnpmjs.org/@types/glob/download/@types/glob-5.0.36.tgz", + "integrity": "sha1-DICpyGZPx9GXgd4inyhwd/1iLLI=", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/node": { + "version": "7.10.9", + "resolved": "http://r.cnpmjs.org/@types/node/download/@types/node-7.10.9.tgz", + "integrity": "sha1-Q0PjsAn4z14e1oXjYJe3S0EB6IA=", + "dev": true + }, + "get-port": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/get-port/download/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, + "tmp": { + "version": "0.0.31", + "resolved": "http://r.cnpmjs.org/tmp/download/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, "dezalgo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", @@ -9280,6 +11729,21 @@ "esutils": "^2.0.2" } }, + "dom-align": { + "version": "1.10.2", + "resolved": "http://r.cnpmjs.org/dom-align/download/dom-align-1.10.2.tgz", + "integrity": "sha1-VA6hyeIEYr0RufwoxWHcg1Hs5MY=", + "dev": true + }, + "dom-closest": { + "version": "0.2.0", + "resolved": "http://r.cnpmjs.org/dom-closest/download/dom-closest-0.2.0.tgz", + "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=", + "dev": true, + "requires": { + "dom-matches": ">=1.0.1" + } + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -9298,6 +11762,18 @@ "@babel/runtime": "^7.1.2" } }, + "dom-matches": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/dom-matches/download/dom-matches-2.0.0.tgz", + "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw=", + "dev": true + }, + "dom-scroll-into-view": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/dom-scroll-into-view/download/dom-scroll-into-view-1.2.1.tgz", + "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4=", + "dev": true + }, "dom-serializer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", @@ -9407,12 +11883,125 @@ "dotenv-defaults": "^1.0.2" } }, + "download": { + "version": "6.2.5", + "resolved": "http://r.cnpmjs.org/download/download/download-6.2.5.tgz", + "integrity": "sha1-rNalQuTNC7Qspwz8mMnkOwcDlxQ=", + "dev": true, + "requires": { + "caw": "^2.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.0.0", + "ext-name": "^5.0.0", + "file-type": "5.2.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", + "pify": "^3.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/decompress-response/download/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + }, + "got": { + "version": "7.1.0", + "resolved": "http://r.cnpmjs.org/got/download/got-7.1.0.tgz", + "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "dev": true + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "http://r.cnpmjs.org/p-cancelable/download/p-cancelable-0.3.0.tgz", + "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/p-timeout/download/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + } + } + }, + "draft-js": { + "version": "0.10.5", + "resolved": "http://r.cnpmjs.org/draft-js/download/draft-js-0.10.5.tgz", + "integrity": "sha1-v6m+sBj+BTPbsI1mdcNxprCPp0I=", + "dev": true, + "requires": { + "fbjs": "^0.8.15", + "immutable": "~3.7.4", + "object-assign": "^4.1.0" + }, + "dependencies": { + "immutable": { + "version": "3.7.6", + "resolved": "http://r.cnpmjs.org/immutable/download/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "dev": true + } + } + }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, + "duplexer3": { + "version": "0.1.4", + "resolved": "http://r.cnpmjs.org/duplexer3/download/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -9483,6 +12072,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "email-addresses": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/email-addresses/download/email-addresses-3.1.0.tgz", + "integrity": "sha1-yr9+CFy9tjAIpwMZp05hNhiIEvs=", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -9530,6 +12125,116 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "3.4.0", + "resolved": "http://r.cnpmjs.org/engine.io/download/engine.io-3.4.0.tgz", + "integrity": "sha1-OpYsxFNZKMJSdZoA+YUZy0bFP/M=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "http://r.cnpmjs.org/cookie/download/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "ws": { + "version": "7.2.0", + "resolved": "http://r.cnpmjs.org/ws/download/ws-7.2.0.tgz", + "integrity": "sha1-Qi7ajAKktdundEumbuu9hLzvDsc=", + "dev": true, + "requires": { + "async-limiter": "^1.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.4.0", + "resolved": "http://r.cnpmjs.org/engine.io-client/download/engine.io-client-3.4.0.tgz", + "integrity": "sha1-gqZCtChiqbP3oYj0F3ay3qtkNwA=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "ws": { + "version": "6.1.4", + "resolved": "http://r.cnpmjs.org/ws/download/ws-6.1.4.tgz", + "integrity": "sha1-W1yIAK+rkl6UzLKdFTyNAsF3bvk=", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/engine.io-parser/download/engine.io-parser-2.2.0.tgz", + "integrity": "sha1-MSxIlPV9UqArQgho2ntcHISvgO0=", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, "enhanced-resolve": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", @@ -9553,6 +12258,12 @@ } } }, + "enquire.js": { + "version": "2.1.6", + "resolved": "http://r.cnpmjs.org/enquire.js/download/enquire.js-2.1.6.tgz", + "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=", + "dev": true + }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", @@ -9575,6 +12286,12 @@ "through": "~2.3.4" } }, + "envinfo": { + "version": "5.12.1", + "resolved": "http://r.cnpmjs.org/envinfo/download/envinfo-5.12.1.tgz", + "integrity": "sha1-gwaMM+CXLrZX1rxppt8wut77Ru8=", + "dev": true + }, "enzyme": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", @@ -9654,6 +12371,12 @@ "lodash": "^4.17.15" } }, + "eol": { + "version": "0.8.1", + "resolved": "http://r.cnpmjs.org/eol/download/eol-0.8.1.tgz", + "integrity": "sha1-3vwyJJkMfspzuzRGGlbPncJHYdA=", + "dev": true + }, "err-code": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", @@ -9678,6 +12401,15 @@ "is-arrayish": "^0.2.1" } }, + "error-stack-parser": { + "version": "2.0.4", + "resolved": "http://r.cnpmjs.org/error-stack-parser/download/error-stack-parser-2.0.4.tgz", + "integrity": "sha1-p1c5fcXZ3pc6yaXX1Oit58+ukQE=", + "dev": true, + "requires": { + "stackframe": "^1.1.0" + } + }, "es-abstract": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz", @@ -9806,6 +12538,429 @@ } } }, + "eslint": { + "version": "6.6.0", + "resolved": "http://r.cnpmjs.org/eslint/download/eslint-6.6.0.tgz", + "integrity": "sha1-SgGi+0jTKqzvVTDunFp48RqK/QQ=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.2.1", + "resolved": "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-4.2.1.tgz", + "integrity": "sha1-TczbhGw+7hD21k3qZic+q5DDcig=", + "dev": true, + "requires": { + "type-fest": "^0.5.2" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "http://r.cnpmjs.org/semver/download/semver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "http://r.cnpmjs.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "eslint-scope": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/eslint-scope/download/eslint-scope-5.0.0.tgz", + "integrity": "sha1-6HyIh8c+jR7ITxylkWRcNYv8j7k=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "figures": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/figures/download/figures-3.1.0.tgz", + "integrity": "sha1-SxmN0H2NcVMGQoZK8tRd2eRZxOw=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "http://r.cnpmjs.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", + "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.0.tgz", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "http://r.cnpmjs.org/ignore/download/ignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + }, + "inquirer": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/inquirer/download/inquirer-7.0.0.tgz", + "integrity": "sha1-nisDLd532h2124BHWLj+o6lwUZo=", + "dev": true, + "requires": { + "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" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "http://r.cnpmjs.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-4.1.0.tgz", + "integrity": "sha1-uoRtHaqXw8WWFVMIBj4HXtHJmv8=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "type-fest": { + "version": "0.5.2", + "resolved": "http://r.cnpmjs.org/type-fest/download/type-fest-0.5.2.tgz", + "integrity": "sha1-1u9CoDVsbNRfSUhcO2KB/BSOSKI=", + "dev": true + } + } + }, + "eslint-config-react-app": { + "version": "5.0.2", + "resolved": "http://r.cnpmjs.org/eslint-config-react-app/download/eslint-config-react-app-5.0.2.tgz", + "integrity": "sha1-30DXOhQCmGAwaAwEC77lINtaMqQ=", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "http://r.cnpmjs.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha1-WPFfuDm40FdsqYBBNHaqskcttmo=", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/eslint-loader/download/eslint-loader-2.2.1.tgz", + "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.4.1", + "resolved": "http://r.cnpmjs.org/eslint-module-utils/download/eslint-module-utils-2.4.1.tgz", + "integrity": "sha1-e0Z1h1v5aw2/GyGXdFblux9eAYw=", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "http://r.cnpmjs.org/eslint-plugin-flowtype/download/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha1-4kHr05wM5Rk0Wj8HTsHr3kz4Dyw=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-graphql": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/eslint-plugin-graphql/download/eslint-plugin-graphql-3.1.0.tgz", + "integrity": "sha1-zPDTxhlh9jBxcKxWXB+wkC3U8R8=", + "dev": true, + "requires": { + "graphql-config": "^2.0.1", + "lodash": "^4.11.1" + } + }, + "eslint-plugin-import": { + "version": "2.18.2", + "resolved": "http://r.cnpmjs.org/eslint-plugin-import/download/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha1-AvEYC5Cwd7M9RHoXojJs60AKzrY=", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "http://r.cnpmjs.org/doctrine/download/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/load-json-file/download/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/path-type/download/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/read-pkg/download/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.3", + "resolved": "http://r.cnpmjs.org/eslint-plugin-jsx-a11y/download/eslint-plugin-jsx-a11y-6.2.3.tgz", + "integrity": "sha1-uHKgnV3lGvcKl9se6n3JMwQ3CKo=", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + } + }, "eslint-plugin-prettier": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", @@ -9824,6 +12979,40 @@ } } }, + "eslint-plugin-react": { + "version": "7.16.0", + "resolved": "http://r.cnpmjs.org/eslint-plugin-react/download/eslint-plugin-react-7.16.0.tgz", + "integrity": "sha1-mSjk8+ISLtO6altW0DA7o+QdjAk=", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.12.0" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/doctrine/download/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "http://r.cnpmjs.org/eslint-plugin-react-hooks/download/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha1-YhC21aNyBfC5KFj4laToJwIKfQQ=", + "dev": true + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -9834,12 +13023,55 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "http://r.cnpmjs.org/eslint-utils/download/eslint-utils-1.4.3.tgz", + "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=", + "dev": true + }, + "espree": { + "version": "6.1.2", + "resolved": "http://r.cnpmjs.org/espree/download/espree-6.1.2.tgz", + "integrity": "sha1-bCcmUJMrT5HDcU5ee19eLs9HJi0=", + "dev": true, + "requires": { + "acorn": "^7.1.0", + "acorn-jsx": "^5.1.0", + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.1.0", + "resolved": "http://r.cnpmjs.org/acorn/download/acorn-7.1.0.tgz", + "integrity": "sha1-lJ028sKSU12mAig1hsJHfFfrLWw=", + "dev": true + } + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esquery": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/esquery/download/esquery-1.0.1.tgz", + "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", @@ -9867,12 +13099,24 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, + "event-source-polyfill": { + "version": "1.0.9", + "resolved": "http://r.cnpmjs.org/event-source-polyfill/download/event-source-polyfill-1.0.9.tgz", + "integrity": "sha1-H+Pr+OP63a/U/CN0JPXlqycGttA=", + "dev": true + }, "eventemitter3": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", "dev": true }, + "eventlistener": { + "version": "0.0.1", + "resolved": "http://r.cnpmjs.org/eventlistener/download/eventlistener-0.0.1.tgz", + "integrity": "sha1-7Suqu4UiJ68rz4iRUscsY8pTLrg=", + "dev": true + }, "events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", @@ -9898,6 +13142,19 @@ "safe-buffer": "^5.1.1" } }, + "exec-buffer": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/exec-buffer/download/exec-buffer-3.2.0.tgz", + "integrity": "sha1-sWhtvZBMfPmC5lLB9aebHlVzCCs=", + "dev": true, + "requires": { + "execa": "^0.7.0", + "p-finally": "^1.0.0", + "pify": "^3.0.0", + "rimraf": "^2.5.4", + "tempfile": "^2.0.0" + } + }, "exec-sh": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz", @@ -9928,6 +13185,29 @@ "clone-regexp": "^1.0.0" } }, + "executable": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/executable/download/executable-4.1.1.tgz", + "integrity": "sha1-QVMr/zYdPlevTXY7cFgtsY9dEzw=", + "dev": true, + "requires": { + "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "exif-parser": { + "version": "0.1.12", + "resolved": "http://r.cnpmjs.org/exif-parser/download/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=", + "dev": true + }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -10044,6 +13324,45 @@ } } }, + "express-graphql": { + "version": "0.9.0", + "resolved": "http://r.cnpmjs.org/express-graphql/download/express-graphql-0.9.0.tgz", + "integrity": "sha1-AP2FUvhmusXJpGErLEyCB2EHs8I=", + "dev": true, + "requires": { + "accepts": "^1.3.7", + "content-type": "^1.0.4", + "http-errors": "^1.7.3", + "raw-body": "^2.4.1" + }, + "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "http://r.cnpmjs.org/http-errors/download/http-errors-1.7.3.tgz", + "integrity": "sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "raw-body": { + "version": "2.4.1", + "resolved": "http://r.cnpmjs.org/raw-body/download/raw-body-2.4.1.tgz", + "integrity": "sha1-MKyC+Yu1rowVLmcUnayNVRU7Fow=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, "ext": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ext/-/ext-1.1.2.tgz", @@ -10061,6 +13380,25 @@ } } }, + "ext-list": { + "version": "2.2.2", + "resolved": "http://r.cnpmjs.org/ext-list/download/ext-list-2.2.2.tgz", + "integrity": "sha1-C5jmTtgvWs8PKTG6v2khLvUt3Tc=", + "dev": true, + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/ext-name/download/ext-name-5.0.0.tgz", + "integrity": "sha1-cHgZgdGD7hXROZPIgiBFxQbI8KY=", + "dev": true, + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -10273,6 +13611,21 @@ } } }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/fbjs-css-vars/download/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha1-IWVRE2rgL+JVkyw+yHdfGOLAeLg=", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/fd-slicer/download/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", @@ -10333,12 +13686,64 @@ } } }, + "file-type": { + "version": "10.11.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-10.11.0.tgz", + "integrity": "sha1-KWHQnkZ1ufuaPua2npzSP0P9GJA=", + "dev": true + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/filename-reserved-regex/download/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "dev": true + }, + "filenamify": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/filenamify/download/filenamify-2.1.0.tgz", + "integrity": "sha1-iPr0lfsbR6v9YSMAACoWIoxnfuk=", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/filenamify-url/download/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "dev": true, + "requires": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" + }, + "dependencies": { + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/filename-reserved-regex/download/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/filenamify/download/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + } + } + }, "filesize": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", @@ -10494,6 +13899,24 @@ "locate-path": "^2.0.0" } }, + "find-versions": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/find-versions/download/find-versions-3.1.0.tgz", + "integrity": "sha1-EBYfKc8+tDUN7BCim93nW/8N8y0=", + "dev": true, + "requires": { + "array-uniq": "^2.1.0", + "semver-regex": "^2.0.0" + }, + "dependencies": { + "array-uniq": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/array-uniq/download/array-uniq-2.1.0.tgz", + "integrity": "sha1-RmA9Xijnm/0CsEb8wdd8aCC9jpg=", + "dev": true + } + } + }, "findup-sync": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", @@ -10506,6 +13929,23 @@ "resolve-dir": "^1.0.1" } }, + "flat": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/flat/download/flat-4.1.0.tgz", + "integrity": "sha1-CQvsiwXjnLowl0fx1YjwTbr5jbI=", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "http://r.cnpmjs.org/is-buffer/download/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", + "dev": true + } + } + }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -10544,12 +13984,24 @@ "readable-stream": "^2.3.6" } }, + "fn-name": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/fn-name/download/fn-name-1.0.1.tgz", + "integrity": "sha1-3o2KFTiLM8vyFFeCFx9zdwxgMPA=", + "dev": true + }, "focus-lock": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-0.6.6.tgz", "integrity": "sha512-Dx69IXGCq1qsUExWuG+5wkiMqVM/zGx/reXSJSLogECwp3x6KeNQZ+NAetgxEFpnC41rD8U3+jRCW68+LNzdtw==", "dev": true }, + "folktale": { + "version": "2.3.2", + "resolved": "http://r.cnpmjs.org/folktale/download/folktale-2.3.2.tgz", + "integrity": "sha1-OCMbA55e82mJkgy/gFv2sie/T9Q=", + "dev": true + }, "follow-redirects": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", @@ -10576,6 +14028,15 @@ } } }, + "for-each": { + "version": "0.3.3", + "resolved": "http://r.cnpmjs.org/for-each/download/for-each-0.3.3.tgz", + "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -10667,6 +14128,12 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/fs-exists-cached/download/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -11300,6 +14767,12 @@ "is-callable": "^1.1.4" } }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "functions-have-names": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.0.tgz", @@ -11312,6 +14785,2583 @@ "integrity": "sha512-s9PGTaQIkT69HaeoTVjwGsLfb8V8ScJLx5XGFcKHg0MqLUH/UZ4EKOtqtXX9k7AFqCGxD1aJmYb8Q5VYDibVRQ==", "dev": true }, + "gatsby": { + "version": "2.17.7", + "resolved": "http://r.cnpmjs.org/gatsby/download/gatsby-2.17.7.tgz", + "integrity": "sha1-iqcYaARKQuJ9wDFPXJm6yHd+D/U=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/core": "^7.6.4", + "@babel/parser": "^7.6.4", + "@babel/polyfill": "^7.6.0", + "@babel/runtime": "^7.6.3", + "@babel/traverse": "^7.6.3", + "@gatsbyjs/relay-compiler": "2.0.0-printer-fix.4", + "@hapi/joi": "^15.1.1", + "@mikaelkristiansson/domready": "^1.0.9", + "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", + "@reach/router": "^1.2.1", + "@typescript-eslint/eslint-plugin": "^2.6.0", + "@typescript-eslint/parser": "^2.6.0", + "address": "1.1.2", + "autoprefixer": "^9.7.0", + "axios": "^0.19.0", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.0.3", + "babel-loader": "^8.0.6", + "babel-plugin-add-module-exports": "^0.3.3", + "babel-plugin-dynamic-import-node": "^1.2.0", + "babel-plugin-remove-graphql-queries": "^2.7.14", + "babel-preset-gatsby": "^0.2.20", + "better-opn": "1.0.0", + "better-queue": "^3.8.10", + "bluebird": "^3.7.1", + "browserslist": "3.2.8", + "cache-manager": "^2.10.0", + "cache-manager-fs-hash": "^0.0.7", + "chalk": "^2.4.2", + "chokidar": "3.2.3", + "common-tags": "^1.8.0", + "compression": "^1.7.4", + "convert-hrtime": "^2.0.0", + "copyfiles": "^1.2.0", + "core-js": "^2.6.10", + "cors": "^2.8.5", + "css-loader": "^1.0.1", + "debug": "^3.2.6", + "del": "^5.1.0", + "detect-port": "^1.3.0", + "devcert-san": "^0.3.3", + "dotenv": "^8.2.0", + "eslint": "^6.6.0", + "eslint-config-react-app": "^5.0.2", + "eslint-loader": "^2.2.1", + "eslint-plugin-flowtype": "^3.13.0", + "eslint-plugin-graphql": "^3.1.0", + "eslint-plugin-import": "^2.18.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.16.0", + "eslint-plugin-react-hooks": "^1.7.0", + "event-source-polyfill": "^1.0.9", + "express": "^4.17.1", + "express-graphql": "^0.9.0", + "fast-levenshtein": "^2.0.6", + "file-loader": "^1.1.11", + "flat": "^4.1.0", + "fs-exists-cached": "1.0.0", + "fs-extra": "^8.1.0", + "gatsby-cli": "^2.8.8", + "gatsby-core-utils": "^1.0.17", + "gatsby-graphiql-explorer": "^0.2.26", + "gatsby-link": "^2.2.22", + "gatsby-plugin-page-creator": "^2.1.28", + "gatsby-react-router-scroll": "^2.1.14", + "gatsby-telemetry": "^1.1.35", + "glob": "^7.1.5", + "got": "8.3.2", + "graphql": "^14.5.8", + "graphql-compose": "^6.3.6", + "graphql-playground-middleware-express": "^1.7.12", + "invariant": "^2.2.4", + "is-relative": "^1.0.0", + "is-relative-url": "^3.0.0", + "is-wsl": "^2.1.1", + "jest-worker": "^24.9.0", + "json-loader": "^0.5.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "lokijs": "^1.5.8", + "md5": "^2.2.1", + "md5-file": "^3.2.3", + "micromatch": "^3.1.10", + "mime": "^2.4.4", + "mini-css-extract-plugin": "^0.8.0", + "mitt": "^1.2.0", + "mkdirp": "^0.5.1", + "moment": "^2.24.0", + "name-all-modules-plugin": "^1.0.1", + "normalize-path": "^2.1.1", + "null-loader": "^0.1.1", + "opentracing": "^0.14.4", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "parseurl": "^1.3.3", + "physical-cpu-count": "^2.0.0", + "pnp-webpack-plugin": "^1.5.0", + "postcss-flexbugs-fixes": "^3.3.1", + "postcss-loader": "^2.1.6", + "prompts": "^2.2.1", + "prop-types": "^15.7.2", + "raw-loader": "^0.5.1", + "react-dev-utils": "^4.2.3", + "react-error-overlay": "^3.0.0", + "react-hot-loader": "^4.12.15", + "redux": "^4.0.4", + "redux-thunk": "^2.3.0", + "semver": "^5.7.1", + "shallow-compare": "^1.2.2", + "sift": "^5.1.0", + "signal-exit": "^3.0.2", + "slash": "^3.0.0", + "socket.io": "^2.3.0", + "stack-trace": "^0.0.10", + "string-similarity": "^1.2.2", + "style-loader": "^0.23.1", + "terser-webpack-plugin": "1.4.1", + "true-case-path": "^2.2.1", + "type-of": "^2.0.1", + "url-loader": "^1.1.2", + "util.promisify": "^1.0.0", + "uuid": "^3.3.3", + "v8-compile-cache": "^1.1.2", + "webpack": "~4.41.2", + "webpack-dev-middleware": "^3.7.2", + "webpack-dev-server": "^3.9.0", + "webpack-hot-middleware": "^2.25.0", + "webpack-merge": "^4.2.2", + "webpack-stats-plugin": "^0.3.0", + "xstate": "^4.6.7", + "yaml-loader": "^0.5.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + } + } + }, + "array-filter": { + "version": "0.0.1", + "resolved": "http://r.cnpmjs.org/array-filter/download/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-1.2.0.tgz", + "integrity": "sha1-+RYx5wPgWV5H1L6vuwiFdsh/vu4=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.0.0.tgz", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "http://r.cnpmjs.org/browserslist/download/browserslist-3.2.8.tgz", + "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "http://r.cnpmjs.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "http://r.cnpmjs.org/chardet/download/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "3.2.3", + "resolved": "http://r.cnpmjs.org/chokidar/download/chokidar-3.2.3.tgz", + "integrity": "sha1-uScKVl0U8C9r/dU3pqK79VSbjIw=", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "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" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + } + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/cliui/download/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "configstore": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/configstore/download/configstore-5.0.0.tgz", + "integrity": "sha1-N95mLHpJtf6NvPj29YGNLYHthSs=", + "dev": true, + "requires": { + "dot-prop": "^5.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "cross-spawn": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-7.0.1.tgz", + "integrity": "sha1-CrVihuD3wk4VPQTMKqAn5DqaXRQ=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", + "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=", + "dev": true + }, + "css-loader": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/css-loader/download/css-loader-1.0.1.tgz", + "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "http://r.cnpmjs.org/debug/download/debug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "detect-port-alt": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/detect-port-alt/download/detect-port-alt-1.1.3.tgz", + "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "http://r.cnpmjs.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "http://r.cnpmjs.org/dotenv/download/dotenv-8.2.0.tgz", + "integrity": "sha1-l+YZJZradQ7qPk6j4mvO6lQksWo=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "http://r.cnpmjs.org/eventsource/download/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "execa": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-2.1.0.tgz", + "integrity": "sha1-5dPs2DfSpg7FDz2nj9OXZ3R7vpk=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/external-editor/download/external-editor-2.2.0.tgz", + "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "http://r.cnpmjs.org/file-loader/download/file-loader-1.1.11.tgz", + "integrity": "sha1-b+iGRJsPKpNuQ8q6rAzb+zaVBvg=", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + } + }, + "filesize": { + "version": "3.5.11", + "resolved": "http://r.cnpmjs.org/filesize/download/filesize-3.5.11.tgz", + "integrity": "sha1-GRkyZ0lDO7PPdzaL0VjKq8wZ6e4=", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/fsevents/download/fsevents-2.1.1.tgz", + "integrity": "sha1-dMZOId9xchhF0MRP5Ut/Vrgplak=", + "dev": true, + "optional": true + }, + "gatsby-cli": { + "version": "2.8.8", + "resolved": "http://r.cnpmjs.org/gatsby-cli/download/gatsby-cli-2.8.8.tgz", + "integrity": "sha1-uPiO9M/EJELsgFsCs60NI0ARSIE=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/runtime": "^7.6.3", + "@hapi/joi": "^15.1.1", + "better-opn": "^0.1.4", + "bluebird": "^3.7.1", + "chalk": "^2.4.2", + "clipboardy": "^2.1.0", + "common-tags": "^1.8.0", + "configstore": "^5.0.0", + "convert-hrtime": "^2.0.0", + "core-js": "^2.6.10", + "envinfo": "^5.12.1", + "execa": "^2.1.0", + "fs-exists-cached": "^1.0.0", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.0.17", + "gatsby-telemetry": "^1.1.35", + "hosted-git-info": "^3.0.2", + "ink": "^2.5.0", + "ink-spinner": "^3.0.1", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.15", + "meant": "^1.0.1", + "node-fetch": "^2.6.0", + "object.entries": "^1.1.0", + "opentracing": "^0.14.4", + "pretty-error": "^2.1.1", + "progress": "^2.0.3", + "prompts": "^2.2.1", + "react": "^16.11.0", + "redux": "^4.0.4", + "resolve-cwd": "^2.0.0", + "semver": "^6.3.0", + "signal-exit": "^3.0.2", + "source-map": "0.7.3", + "stack-trace": "^0.0.10", + "strip-ansi": "^5.2.0", + "update-notifier": "^2.5.0", + "uuid": "3.3.3", + "yargs": "^12.0.5", + "yurnalist": "^1.1.1" + }, + "dependencies": { + "better-opn": { + "version": "0.1.4", + "resolved": "http://r.cnpmjs.org/better-opn/download/better-opn-0.1.4.tgz", + "integrity": "sha1-Jx0DvYvLhAbS2dTNpcCUTXJuoXE=", + "dev": true, + "requires": { + "opn": "^5.4.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "dev": true + }, + "get-stream": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-5.1.0.tgz", + "integrity": "sha1-ASA83JJZf5uQkGfD5lbMH008Tck=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.0.tgz", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/global-modules/download/global-modules-1.0.0.tgz", + "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/global-prefix/download/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "http://r.cnpmjs.org/which/download/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/gzip-size/download/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "dev": true, + "requires": { + "duplexer": "^0.1.1" + } + }, + "hosted-git-info": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/hosted-git-info/download/hosted-git-info-3.0.2.tgz", + "integrity": "sha1-i3470RS1m1F4b4ut4POd3IAnWpc=", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/icss-utils/download/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/inquirer/download/inquirer-3.3.0.tgz", + "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/invert-kv/download/invert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "is-root": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-root/download/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "is-wsl": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/is-wsl/download/is-wsl-2.1.1.tgz", + "integrity": "sha1-ShwVLUKd89RBZpSY4khtNZbrrx0=", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/lcid/download/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "http://r.cnpmjs.org/lru-cache/download/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-3.0.0.tgz", + "integrity": "sha1-G1859rknDtM/nwVMXA+EMEmJ+AE=", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + } + } + }, + "mime": { + "version": "2.4.4", + "resolved": "http://r.cnpmjs.org/mime/download/mime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "http://r.cnpmjs.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha1-gdQexP5YxxOpatfHI82y0L1NcOE=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimatch": { + "version": "3.0.3", + "resolved": "http://r.cnpmjs.org/minimatch/download/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/node-fetch/download/node-fetch-2.6.0.tgz", + "integrity": "sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/npm-run-path/download/npm-run-path-3.1.0.tgz", + "integrity": "sha1-f5G+MX9qRm7+08nymArYpO6LD6U=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/os-locale/download/os-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/path-key/download/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "http://r.cnpmjs.org/which/download/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "p-limit": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/p-limit/download/p-limit-2.2.1.tgz", + "integrity": "sha1-qgeniMwxUck5tRMfY1cPDdIAlTc=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-key": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/path-key/download/path-key-3.1.0.tgz", + "integrity": "sha1-maENhwqAO91e5vBHDljfzS+aVNM=", + "dev": true + }, + "pnp-webpack-plugin": { + "version": "1.5.0", + "resolved": "http://r.cnpmjs.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.5.0.tgz", + "integrity": "sha1-YqHNMGj0bVZLszxW6yUOTVhmdus=", + "dev": true, + "requires": { + "ts-pnp": "^1.1.2" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "http://r.cnpmjs.org/postcss/download/postcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-3.3.1.tgz", + "integrity": "sha1-B4PMchKFDvcH+X+LyLb7Yk4Ax10=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "http://r.cnpmjs.org/postcss-loader/download/postcss-loader-2.1.6.tgz", + "integrity": "sha1-HX3XsXxrojS5vtWvE+C+pApC10A=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "http://r.cnpmjs.org/raw-loader/download/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "react-dev-utils": { + "version": "4.2.3", + "resolved": "http://r.cnpmjs.org/react-dev-utils/download/react-dev-utils-4.2.3.tgz", + "integrity": "sha1-W0LZ6ljV6eAXovV6QKivQIo6Rvs=", + "dev": true, + "requires": { + "address": "1.0.3", + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "cross-spawn": "5.1.0", + "detect-port-alt": "1.1.3", + "escape-string-regexp": "1.0.5", + "filesize": "3.5.11", + "global-modules": "1.0.0", + "gzip-size": "3.0.0", + "inquirer": "3.3.0", + "is-root": "1.0.0", + "opn": "5.1.0", + "react-error-overlay": "^3.0.0", + "recursive-readdir": "2.2.1", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.4", + "strip-ansi": "3.0.1", + "text-table": "0.2.0" + }, + "dependencies": { + "address": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/address/download/address-1.0.3.tgz", + "integrity": "sha1-tfUGMfjWzsi9IMljljr7VeBsvOk=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/is-wsl/download/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "http://r.cnpmjs.org/lru-cache/download/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "opn": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/opn/download/opn-5.1.0.tgz", + "integrity": "sha1-cs4jBqF9vqWP8QQYUzUrSo/HdRk=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "http://r.cnpmjs.org/which/download/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "react-error-overlay": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/react-error-overlay/download/react-error-overlay-3.0.0.tgz", + "integrity": "sha1-wryPTZHxN1s9rW11Jl1RzV7q9lU=", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/readdirp/download/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "recursive-readdir": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/recursive-readdir/download/recursive-readdir-2.2.1.tgz", + "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "dev": true, + "requires": { + "minimatch": "3.0.3" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "http://r.cnpmjs.org/schema-utils/download/schema-utils-0.4.7.tgz", + "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "http://r.cnpmjs.org/shell-quote/download/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/slash/download/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "dev": true + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "http://r.cnpmjs.org/sockjs-client/download/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "http://r.cnpmjs.org/debug/download/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "http://r.cnpmjs.org/style-loader/download/style-loader-0.23.1.tgz", + "integrity": "sha1-y5FUYG8+dxq2xKtjcCahBJF02SU=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "http://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "true-case-path": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/true-case-path/download/true-case-path-2.2.1.tgz", + "integrity": "sha1-xb8EpbvsP9EYvkCERhs6J8TXlr8=", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/unique-string/download/unique-string-2.0.0.tgz", + "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/url-loader/download/url-loader-1.1.2.tgz", + "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/v8-compile-cache/download/v8-compile-cache-1.1.2.tgz", + "integrity": "sha1-jTLk8Wl0ZUZX5nbg5GejSOibDcQ=", + "dev": true + }, + "which": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/which/download/which-2.0.1.tgz", + "integrity": "sha1-8c+U0HqOVxtv8AauuR0DAMR+8KQ=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "write-file-atomic": { + "version": "3.0.1", + "resolved": "http://r.cnpmjs.org/write-file-atomic/download/write-file-atomic-3.0.1.tgz", + "integrity": "sha1-VYMoNS5nO1uxks+GUA1gsjBmfUs=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", + "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "http://r.cnpmjs.org/yargs/download/yargs-12.0.5.tgz", + "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", + "dev": true, + "requires": { + "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" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "http://r.cnpmjs.org/yargs-parser/download/yargs-parser-11.1.1.tgz", + "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "gatsby-core-utils": { + "version": "1.0.17", + "resolved": "http://r.cnpmjs.org/gatsby-core-utils/download/gatsby-core-utils-1.0.17.tgz", + "integrity": "sha1-+KTV2bHYPFeZ8Yfcpf+GZUzfxNg=", + "dev": true, + "requires": { + "ci-info": "2.0.0" + } + }, + "gatsby-graphiql-explorer": { + "version": "0.2.26", + "resolved": "http://r.cnpmjs.org/gatsby-graphiql-explorer/download/gatsby-graphiql-explorer-0.2.26.tgz", + "integrity": "sha1-+Yk9Rq2u7LZkE6dI9rwb5qAElKI=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "gatsby-image": { + "version": "2.2.30", + "resolved": "http://r.cnpmjs.org/gatsby-image/download/gatsby-image-2.2.30.tgz", + "integrity": "sha1-PKWK2xgUp1ncrybXQq6Q6JxxRN4=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "object-fit-images": "^3.2.4", + "prop-types": "^15.7.2" + } + }, + "gatsby-link": { + "version": "2.2.22", + "resolved": "http://r.cnpmjs.org/gatsby-link/download/gatsby-link-2.2.22.tgz", + "integrity": "sha1-2TeeirQuBl7Q9EMx5pkz3+Tb7XA=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "@types/reach__router": "^1.2.6", + "prop-types": "^15.7.2" + } + }, + "gatsby-page-utils": { + "version": "0.0.28", + "resolved": "http://r.cnpmjs.org/gatsby-page-utils/download/gatsby-page-utils-0.0.28.tgz", + "integrity": "sha1-4xOXJ8WWwuyTTKTH6pV67w/ExQo=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "bluebird": "^3.7.1", + "chokidar": "3.2.3", + "fs-exists-cached": "^1.0.0", + "glob": "^7.1.5", + "lodash": "^4.17.15", + "micromatch": "^3.1.10", + "slash": "^3.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.0.0.tgz", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.2.3", + "resolved": "http://r.cnpmjs.org/chokidar/download/chokidar-3.2.3.tgz", + "integrity": "sha1-uScKVl0U8C9r/dU3pqK79VSbjIw=", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "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" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/fsevents/download/fsevents-2.1.1.tgz", + "integrity": "sha1-dMZOId9xchhF0MRP5Ut/Vrgplak=", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.0.tgz", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/readdirp/download/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/slash/download/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "http://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "gatsby-plugin-antd": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-antd/download/gatsby-plugin-antd-2.0.2.tgz", + "integrity": "sha1-AJxMOyDHJQrbJyHO3chdqVC9Cys=", + "dev": true, + "requires": { + "antd": "^3.9.0", + "babel-plugin-import": "^1.9.0" + } + }, + "gatsby-plugin-catch-links": { + "version": "2.1.15", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-catch-links/download/gatsby-plugin-catch-links-2.1.15.tgz", + "integrity": "sha1-I5KSd8+o7tmokLbEMC5nukhEeeo=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "escape-string-regexp": "^1.0.5" + } + }, + "gatsby-plugin-copy-files": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-copy-files/download/gatsby-plugin-copy-files-1.0.3.tgz", + "integrity": "sha1-OR+0ZTJMNwmmtDP7LUmQo38qfc4=", + "dev": true, + "requires": { + "fs-extra": "^4.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/fs-extra/download/fs-extra-4.0.3.tgz", + "integrity": "sha1-DYUhIuW8W+tFP7Ao6cDJvzY0DJQ=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "gatsby-plugin-google-analytics": { + "version": "2.1.23", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-google-analytics/download/gatsby-plugin-google-analytics-2.1.23.tgz", + "integrity": "sha1-e61dw2eHpbIxfzyAQ/8v6+fAky4=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "gatsby-plugin-i18n": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-i18n/download/gatsby-plugin-i18n-1.0.1.tgz", + "integrity": "sha1-Vz+5i4VlTCngzaUHQANwYfo45pQ=", + "dev": true, + "requires": { + "folktale": "^2.0.1", + "graphql": "^0.11.7", + "ptz-i18n": "^1.0.0" + }, + "dependencies": { + "graphql": { + "version": "0.11.7", + "resolved": "http://r.cnpmjs.org/graphql/download/graphql-0.11.7.tgz", + "integrity": "sha1-5auqnLe3zMuE6fCDa/Q3DSaHUMY=", + "dev": true, + "requires": { + "iterall": "1.1.3" + } + }, + "iterall": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/iterall/download/iterall-1.1.3.tgz", + "integrity": "sha1-HLv/liBAVt3mZW4u0uIibQ5tcsk=", + "dev": true + } + } + }, + "gatsby-plugin-layout": { + "version": "1.1.13", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-layout/download/gatsby-plugin-layout-1.1.13.tgz", + "integrity": "sha1-M04hksWk6OgCcG6t7pnlkGUo3x8=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "gatsby-plugin-less": { + "version": "3.0.12", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-less/download/gatsby-plugin-less-3.0.12.tgz", + "integrity": "sha1-AEFZ8Cn9qovPNbfNaJjiMRLk0QQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "less-loader": "^5.0.0" + } + }, + "gatsby-plugin-manifest": { + "version": "2.2.26", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-manifest/download/gatsby-plugin-manifest-2.2.26.tgz", + "integrity": "sha1-BAp9wqtU5kzJdIGt+0mOXcjKreQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "gatsby-core-utils": "^1.0.17", + "semver": "^5.7.1", + "sharp": "^0.23.2" + } + }, + "gatsby-plugin-meta-redirect": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-meta-redirect/download/gatsby-plugin-meta-redirect-1.1.1.tgz", + "integrity": "sha1-BY6OU+3/ONxE07thUxCdAckQ+GM=", + "dev": true, + "requires": { + "fs-extra": "^7.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "gatsby-plugin-nprogress": { + "version": "2.1.12", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-nprogress/download/gatsby-plugin-nprogress-2.1.12.tgz", + "integrity": "sha1-cOP4vmX8Ve4pdykndj3AZ7cS6Lk=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "nprogress": "^0.2.0" + } + }, + "gatsby-plugin-offline": { + "version": "3.0.17", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-offline/download/gatsby-plugin-offline-3.0.17.tgz", + "integrity": "sha1-V4zACLU2OaTE86DYEfugsCfLbFM=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "cheerio": "^1.0.0-rc.3", + "glob": "^7.1.5", + "idb-keyval": "^3.2.0", + "lodash": "^4.17.15", + "slash": "^3.0.0", + "workbox-build": "^4.3.1" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/slash/download/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "dev": true + } + } + }, + "gatsby-plugin-page-creator": { + "version": "2.1.28", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-page-creator/download/gatsby-plugin-page-creator-2.1.28.tgz", + "integrity": "sha1-Mt6sW4SLdJSw8gkdGT9iI290JwI=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "bluebird": "^3.7.1", + "fs-exists-cached": "^1.0.0", + "gatsby-page-utils": "^0.0.28", + "glob": "^7.1.5", + "lodash": "^4.17.15", + "micromatch": "^3.1.10" + } + }, + "gatsby-plugin-react-helmet": { + "version": "3.1.13", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-react-helmet/download/gatsby-plugin-react-helmet-3.1.13.tgz", + "integrity": "sha1-C6ni6QKuSQtFyJjP/s5uF2idqe4=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "gatsby-plugin-remove-trailing-slashes": { + "version": "2.1.12", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-remove-trailing-slashes/download/gatsby-plugin-remove-trailing-slashes-2.1.12.tgz", + "integrity": "sha1-Jk7sUY8qy8kO2/9ZZyxIpheV6Zo=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, + "gatsby-plugin-sharp": { + "version": "2.2.36", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-sharp/download/gatsby-plugin-sharp-2.2.36.tgz", + "integrity": "sha1-hgqxmf7nrx+1uzxbXDE0/YTspWo=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "async": "^2.6.3", + "bluebird": "^3.7.1", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.0.17", + "got": "^8.3.2", + "imagemin": "^6.1.0", + "imagemin-mozjpeg": "^8.0.0", + "imagemin-pngquant": "^6.0.1", + "imagemin-webp": "^5.1.0", + "lodash": "^4.17.15", + "mini-svg-data-uri": "^1.1.3", + "potrace": "^2.1.2", + "probe-image-size": "^4.1.1", + "progress": "^2.0.3", + "semver": "^5.7.1", + "sharp": "^0.23.2", + "svgo": "1.3.0", + "uuid": "^3.3.3" + }, + "dependencies": { + "css-select": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/css-select/download/css-select-2.0.2.tgz", + "integrity": "sha1-q0OGzsnh9miFVWSxfDcztDsqXt4=", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.33", + "resolved": "http://r.cnpmjs.org/css-tree/download/css-tree-1.0.0-alpha.33.tgz", + "integrity": "sha1-lw4g5akfejeN3Q/FjQtsjU876T4=", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.5.3" + } + }, + "csso": { + "version": "3.5.1", + "resolved": "http://r.cnpmjs.org/csso/download/csso-3.5.1.tgz", + "integrity": "sha1-e564vmFiiXPBsmHhadLwJACOdYs=", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "http://r.cnpmjs.org/css-tree/download/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha1-P6nU7zFCy9HDAedmTB81K9gvWjk=", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "http://r.cnpmjs.org/mdn-data/download/mdn-data-1.1.4.tgz", + "integrity": "sha1-ULXU/8RXUnZXPE7tuHgIEqhBnwE=", + "dev": true + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "http://r.cnpmjs.org/domutils/download/domutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "svgo": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/svgo/download/svgo-1.3.0.tgz", + "integrity": "sha1-uuUbqV3tmjOja3xGzpw1mukVQxM=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.33", + "csso": "^3.5.1", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + } + } + }, + "gatsby-plugin-typescript": { + "version": "2.1.15", + "resolved": "http://r.cnpmjs.org/gatsby-plugin-typescript/download/gatsby-plugin-typescript-2.1.15.tgz", + "integrity": "sha1-R1S7Kuf17oa22upS19lYIod4jSw=", + "dev": true, + "requires": { + "@babel/preset-typescript": "^7.6.0", + "@babel/runtime": "^7.6.3", + "babel-plugin-remove-graphql-queries": "^2.7.14" + } + }, + "gatsby-react-router-scroll": { + "version": "2.1.14", + "resolved": "http://r.cnpmjs.org/gatsby-react-router-scroll/download/gatsby-react-router-scroll-2.1.14.tgz", + "integrity": "sha1-yojnNvjvjKRNetgnORKSsgd4Eds=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "scroll-behavior": "^0.9.10", + "warning": "^3.0.0" + } + }, + "gatsby-redirect-from": { + "version": "0.2.1", + "resolved": "http://r.cnpmjs.org/gatsby-redirect-from/download/gatsby-redirect-from-0.2.1.tgz", + "integrity": "sha1-1QQfhzA0jUZS8ainUryhz36GvHU=", + "dev": true + }, + "gatsby-remark-autolink-headers": { + "version": "2.1.16", + "resolved": "http://r.cnpmjs.org/gatsby-remark-autolink-headers/download/gatsby-remark-autolink-headers-2.1.16.tgz", + "integrity": "sha1-6RQu/suS33gfawb5jNs2UXZqGbM=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "github-slugger": "^1.2.1", + "lodash": "^4.17.15", + "mdast-util-to-string": "^1.0.6", + "unist-util-visit": "^1.4.1" + } + }, + "gatsby-remark-external-links": { + "version": "0.0.4", + "resolved": "http://r.cnpmjs.org/gatsby-remark-external-links/download/gatsby-remark-external-links-0.0.4.tgz", + "integrity": "sha1-hbmMHp2s+qWAhTGWSMkE/zyrQvA=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "is-relative-url": "^2.0.0", + "unist-util-find": "^1.0.1", + "unist-util-visit": "^1.1.3" + }, + "dependencies": { + "is-absolute-url": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-relative-url": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-relative-url/download/is-relative-url-2.0.0.tgz", + "integrity": "sha1-cpAtf+BLPUeS59sV+duEtyBMnO8=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0" + } + } + } + }, + "gatsby-remark-prettier": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/gatsby-remark-prettier/download/gatsby-remark-prettier-1.0.0.tgz", + "integrity": "sha1-ykJqWU9F0P6+/sY3CL8LTEsIXa8=", + "dev": true, + "requires": { + "@babel/runtime": "7.0.0-beta.51", + "unist-util-visit": "^1.3.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0-beta.51", + "resolved": "http://r.cnpmjs.org/@babel/runtime/download/@babel/runtime-7.0.0-beta.51.tgz", + "integrity": "sha1-SLjtGDBwNMZiD2Q1FGUMoszAFlo=", + "dev": true, + "requires": { + "core-js": "^2.5.7", + "regenerator-runtime": "^0.11.1" + } + } + } + }, + "gatsby-remark-prismjs": { + "version": "3.3.20", + "resolved": "http://r.cnpmjs.org/gatsby-remark-prismjs/download/gatsby-remark-prismjs-3.3.20.tgz", + "integrity": "sha1-sWzebrvI7Mg5wFSrLo3r/oAk+uc=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "parse-numeric-range": "^0.0.2", + "unist-util-visit": "^1.4.1" + } + }, + "gatsby-remark-reading-time": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/gatsby-remark-reading-time/download/gatsby-remark-reading-time-1.0.1.tgz", + "integrity": "sha1-GI++Gbx7xvYtTjI5exi1VA+S8DM=", + "dev": true, + "requires": { + "reading-time": "^1.1.3" + } + }, + "gatsby-source-filesystem": { + "version": "2.1.35", + "resolved": "http://r.cnpmjs.org/gatsby-source-filesystem/download/gatsby-source-filesystem-2.1.35.tgz", + "integrity": "sha1-sK4t4GsRAPqfSOeaLykOWoLS1P8=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "better-queue": "^3.8.10", + "bluebird": "^3.7.1", + "chokidar": "3.2.3", + "file-type": "^12.3.1", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.0.17", + "got": "^7.1.0", + "md5-file": "^3.2.3", + "mime": "^2.4.4", + "pretty-bytes": "^4.0.2", + "progress": "^2.0.3", + "read-chunk": "^3.2.0", + "valid-url": "^1.0.9", + "xstate": "^4.6.7" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/binary-extensions/download/binary-extensions-2.0.0.tgz", + "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.2.3", + "resolved": "http://r.cnpmjs.org/chokidar/download/chokidar-3.2.3.tgz", + "integrity": "sha1-uScKVl0U8C9r/dU3pqK79VSbjIw=", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.1", + "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" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/decompress-response/download/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "file-type": { + "version": "12.4.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-12.4.0.tgz", + "integrity": "sha1-qaOZRZ4ZQNnzSzlzA5lY8fNqVl4=", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/fsevents/download/fsevents-2.1.1.tgz", + "integrity": "sha1-dMZOId9xchhF0MRP5Ut/Vrgplak=", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/glob-parent/download/glob-parent-5.1.0.tgz", + "integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "got": { + "version": "7.1.0", + "resolved": "http://r.cnpmjs.org/got/download/got-7.1.0.tgz", + "integrity": "sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "mime": { + "version": "2.4.4", + "resolved": "http://r.cnpmjs.org/mime/download/mime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "dev": true + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "http://r.cnpmjs.org/p-cancelable/download/p-cancelable-0.3.0.tgz", + "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/p-timeout/download/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/pretty-bytes/download/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "readdirp": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/readdirp/download/readdirp-3.2.0.tgz", + "integrity": "sha1-wwwzNSsSyW37S4lUIaSf1alZODk=", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "http://r.cnpmjs.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "gatsby-source-github": { + "version": "0.0.2", + "resolved": "http://r.cnpmjs.org/gatsby-source-github/download/gatsby-source-github-0.0.2.tgz", + "integrity": "sha1-6hXNXnJdYNYYu6hAN9z0y0Dg5WQ=", + "dev": true, + "requires": { + "graphql-request": "~1.5.1", + "lodash": "~4.17.5", + "yup": "~0.24.1" + }, + "dependencies": { + "cross-fetch": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/cross-fetch/download/cross-fetch-2.0.0.tgz", + "integrity": "sha1-oXR1RJVh4PMlFGzqY2qGGe+5s4I=", + "dev": true, + "requires": { + "node-fetch": "2.0.0", + "whatwg-fetch": "2.0.3" + } + }, + "graphql-request": { + "version": "1.5.2", + "resolved": "http://r.cnpmjs.org/graphql-request/download/graphql-request-1.5.2.tgz", + "integrity": "sha1-zzKfrVnjba9pJfQXUbS6itkzccM=", + "dev": true, + "requires": { + "cross-fetch": "2.0.0" + } + }, + "node-fetch": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/node-fetch/download/node-fetch-2.0.0.tgz", + "integrity": "sha1-mCu6Q+zU8pIqKcwYamu7C7c/y6Y=", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "http://r.cnpmjs.org/whatwg-fetch/download/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", + "dev": true + } + } + }, + "gatsby-telemetry": { + "version": "1.1.35", + "resolved": "http://r.cnpmjs.org/gatsby-telemetry/download/gatsby-telemetry-1.1.35.tgz", + "integrity": "sha1-rXr1eYfUWKo1SKvy3hcsHD4omdc=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/runtime": "^7.6.3", + "bluebird": "^3.7.1", + "boxen": "^3.2.0", + "configstore": "^5.0.0", + "envinfo": "^5.12.1", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.0.17", + "git-up": "4.0.1", + "is-docker": "2.0.0", + "lodash": "^4.17.15", + "node-fetch": "2.6.0", + "resolve-cwd": "^2.0.0", + "source-map": "^0.7.3", + "stack-trace": "^0.0.10", + "stack-utils": "1.0.2", + "uuid": "3.3.3" + }, + "dependencies": { + "configstore": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/configstore/download/configstore-5.0.0.tgz", + "integrity": "sha1-N95mLHpJtf6NvPj29YGNLYHthSs=", + "dev": true, + "requires": { + "dot-prop": "^5.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/crypto-random-string/download/crypto-random-string-2.0.0.tgz", + "integrity": "sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=", + "dev": true + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "make-dir": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-3.0.0.tgz", + "integrity": "sha1-G1859rknDtM/nwVMXA+EMEmJ+AE=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "http://r.cnpmjs.org/node-fetch/download/node-fetch-2.6.0.tgz", + "integrity": "sha1-5jNFY4bUqlWGP2dqerDaqP3ssP0=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/unique-string/download/unique-string-2.0.0.tgz", + "integrity": "sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.1", + "resolved": "http://r.cnpmjs.org/write-file-atomic/download/write-file-atomic-3.0.1.tgz", + "integrity": "sha1-VYMoNS5nO1uxks+GUA1gsjBmfUs=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz", + "integrity": "sha1-S8jZmEQDaWIl74OhVzy7y0552xM=", + "dev": true + } + } + }, + "gatsby-transformer-remark": { + "version": "2.6.32", + "resolved": "http://r.cnpmjs.org/gatsby-transformer-remark/download/gatsby-transformer-remark-2.6.32.tgz", + "integrity": "sha1-6szrXml350MwpltysXMpFDijyJM=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "bluebird": "^3.7.1", + "gatsby-core-utils": "^1.0.17", + "gray-matter": "^4.0.2", + "hast-util-raw": "^4.0.0", + "hast-util-to-html": "^4.0.1", + "lodash": "^4.17.15", + "mdast-util-to-hast": "^3.0.4", + "mdast-util-to-string": "^1.0.6", + "mdast-util-toc": "^2.1.0", + "remark": "^10.0.1", + "remark-parse": "^6.0.3", + "remark-retext": "^3.1.3", + "remark-stringify": "^5.0.0", + "retext-english": "^3.0.3", + "sanitize-html": "^1.20.1", + "underscore.string": "^3.3.5", + "unified": "^6.2.0", + "unist-util-remove-position": "^1.1.3", + "unist-util-select": "^1.5.0", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "remark-stringify": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/remark-stringify/download/remark-stringify-5.0.0.tgz", + "integrity": "sha1-M206TUpqM5DZM+66YujeS9KAr7o=", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "6.2.0", + "resolved": "http://r.cnpmjs.org/unified/download/unified-6.2.0.tgz", + "integrity": "sha1-f71jD3GRJtZ9QMZEt+P2FwNfbbo=", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "vfile": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/vfile/download/vfile-2.3.0.tgz", + "integrity": "sha1-5i2OcrIOg8MkvGxnJ47ickiL+Eo=", + "dev": true, + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + } + } + }, + "gatsby-transformer-sharp": { + "version": "2.3.2", + "resolved": "http://r.cnpmjs.org/gatsby-transformer-sharp/download/gatsby-transformer-sharp-2.3.2.tgz", + "integrity": "sha1-27/4EW1WjwHjQt7O+jrM3zbcLZU=", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3", + "bluebird": "^3.7.1", + "fs-extra": "^8.1.0", + "potrace": "^2.1.2", + "probe-image-size": "^4.1.1", + "semver": "^5.7.1", + "sharp": "^0.23.2" + } + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -11594,6 +17644,15 @@ "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", "dev": true }, + "get-proxy": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/get-proxy/download/get-proxy-2.1.0.tgz", + "integrity": "sha1-NJ8rTZHUTE1NTpy6KtkBQ/rF75M=", + "dev": true, + "requires": { + "npm-conf": "^1.1.0" + } + }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", @@ -11621,6 +17680,63 @@ "assert-plus": "^1.0.0" } }, + "gh-pages": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/gh-pages/download/gh-pages-2.1.1.tgz", + "integrity": "sha1-W+cKkvnLcEBLr6vYuxScDpqMJks=", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^7.0.0", + "globby": "^6.1.0", + "graceful-fs": "^4.1.11", + "rimraf": "^2.6.2" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "http://r.cnpmjs.org/globby/download/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "git-raw-commits": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", @@ -11752,6 +17868,23 @@ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", "dev": true }, + "github-slugger": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/github-slugger/download/github-slugger-1.2.1.tgz", + "integrity": "sha1-R+kE5wvy3M0AFHSBQtMRJs/UlQg=", + "dev": true, + "requires": { + "emoji-regex": ">=6.0.0 <=6.1.1" + }, + "dependencies": { + "emoji-regex": { + "version": "6.1.1", + "resolved": "http://r.cnpmjs.org/emoji-regex/download/emoji-regex-6.1.1.tgz", + "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=", + "dev": true + } + } + }, "gl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/gl/-/gl-4.4.0.tgz", @@ -11975,12 +18108,167 @@ "delegate": "^3.1.2" } }, + "got": { + "version": "8.3.2", + "resolved": "http://r.cnpmjs.org/got/download/got-8.3.2.tgz", + "integrity": "sha1-HSP2Q5Dpf3dsrFLluTbl9RTS6Tc=", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "decompress-response": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/decompress-response/download/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/mimic-response/download/mimic-response-1.0.1.tgz", + "integrity": "sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/prepend-http/download/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/url-parse-lax/download/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/graceful-readlink/download/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "graphql": { + "version": "14.5.8", + "resolved": "http://r.cnpmjs.org/graphql/download/graphql-14.5.8.tgz", + "integrity": "sha1-UE89MRTLmgo/NZu7zzjZ5b9qazw=", + "dev": true, + "requires": { + "iterall": "^1.2.2" + } + }, + "graphql-compose": { + "version": "6.3.6", + "resolved": "http://r.cnpmjs.org/graphql-compose/download/graphql-compose-6.3.6.tgz", + "integrity": "sha1-BHh3RbrCa8ziqA3eTWhy2yWQ9PI=", + "dev": true, + "requires": { + "graphql-type-json": "^0.2.4", + "object-path": "^0.11.4" + } + }, + "graphql-config": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/graphql-config/download/graphql-config-2.2.1.tgz", + "integrity": "sha1-X9Dsd6x0KMpfsgJs8TG+EBUaDLI=", + "dev": true, + "requires": { + "graphql-import": "^0.7.1", + "graphql-request": "^1.5.0", + "js-yaml": "^3.10.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.4" + } + }, + "graphql-import": { + "version": "0.7.1", + "resolved": "http://r.cnpmjs.org/graphql-import/download/graphql-import-0.7.1.tgz", + "integrity": "sha1-St2NkaX3UtdksKSnpGH82TE28iM=", + "dev": true, + "requires": { + "lodash": "^4.17.4", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/resolve-from/download/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true + } + } + }, + "graphql-playground-html": { + "version": "1.6.12", + "resolved": "http://r.cnpmjs.org/graphql-playground-html/download/graphql-playground-html-1.6.12.tgz", + "integrity": "sha1-izs0q2AT4sh38M6q5Hj6/IypG4U=", + "dev": true + }, + "graphql-playground-middleware-express": { + "version": "1.7.12", + "resolved": "http://r.cnpmjs.org/graphql-playground-middleware-express/download/graphql-playground-middleware-express-1.7.12.tgz", + "integrity": "sha1-3kskAqAhWbISVWH+OOs3i1bPbZk=", + "dev": true, + "requires": { + "graphql-playground-html": "1.6.12" + } + }, + "graphql-request": { + "version": "1.8.2", + "resolved": "http://r.cnpmjs.org/graphql-request/download/graphql-request-1.8.2.tgz", + "integrity": "sha1-OY0QrhXFhWdnQb3j/AHVypSPj74=", + "dev": true, + "requires": { + "cross-fetch": "2.2.2" + } + }, + "graphql-type-json": { + "version": "0.2.4", + "resolved": "http://r.cnpmjs.org/graphql-type-json/download/graphql-type-json-0.2.4.tgz", + "integrity": "sha1-VFryeQPkDAYe3TCECicuoKSZkvk=", + "dev": true + }, + "gray-matter": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/gray-matter/download/gray-matter-4.0.2.tgz", + "integrity": "sha1-mqN546yvQhGT/OfSoozr1FGKxFQ=", + "dev": true, + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -12017,6 +18305,12 @@ } } }, + "hammerjs": { + "version": "2.0.8", + "resolved": "http://r.cnpmjs.org/hammerjs/download/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=", + "dev": true + }, "handle-thing": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", @@ -12077,18 +18371,56 @@ "ansi-regex": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/has-binary2/download/has-binary2-1.0.3.tgz", + "integrity": "sha1-d3asYn8+p3JQz8My2rfd9eT10R0=", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/isarray/download/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/has-cors/download/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "http://r.cnpmjs.org/has-symbol-support-x/download/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha1-FAn5i8ACR9pF2mfO4KNvKC/yZFU=", + "dev": true + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "http://r.cnpmjs.org/has-to-string-tag-x/download/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -12147,12 +18479,174 @@ "minimalistic-assert": "^1.0.1" } }, + "hast-to-hyperscript": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/hast-to-hyperscript/download/hast-to-hyperscript-5.0.0.tgz", + "integrity": "sha1-UQbLunjtt8leLopJB5Nx6xlsHO0=", + "dev": true, + "requires": { + "comma-separated-tokens": "^1.0.0", + "property-information": "^4.0.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.2.1", + "unist-util-is": "^2.0.0", + "web-namespaces": "^1.1.2" + }, + "dependencies": { + "property-information": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/property-information/download/property-information-4.2.0.tgz", + "integrity": "sha1-8OZuB8vW/tMdloRNlY0VOtPrSG4=", + "dev": true, + "requires": { + "xtend": "^4.0.1" + } + }, + "unist-util-is": { + "version": "2.1.3", + "resolved": "http://r.cnpmjs.org/unist-util-is/download/unist-util-is-2.1.3.tgz", + "integrity": "sha1-RZGC2zH0dC/OrqiNQpaTy/AEPSA=", + "dev": true + } + } + }, + "hast-util-from-parse5": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/hast-util-from-parse5/download/hast-util-from-parse5-4.0.2.tgz", + "integrity": "sha1-txZKf/yI2k91HcfC+AH/jXwUO6s=", + "dev": true, + "requires": { + "ccount": "^1.0.3", + "hastscript": "^4.0.0", + "property-information": "^4.0.0", + "web-namespaces": "^1.1.2", + "xtend": "^4.0.1" + }, + "dependencies": { + "hastscript": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/hastscript/download/hastscript-4.1.0.tgz", + "integrity": "sha1-6lWT+m9nCRAfx5DO2Bg5PdqgRc4=", + "dev": true, + "requires": { + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.2.0", + "property-information": "^4.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "property-information": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/property-information/download/property-information-4.2.0.tgz", + "integrity": "sha1-8OZuB8vW/tMdloRNlY0VOtPrSG4=", + "dev": true, + "requires": { + "xtend": "^4.0.1" + } + } + } + }, + "hast-util-is-element": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/hast-util-is-element/download/hast-util-is-element-1.0.3.tgz", + "integrity": "sha1-QjtLJv6L8fJZUP4FLpzo+D/V9qQ=", + "dev": true + }, "hast-util-parse-selector": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.2.tgz", "integrity": "sha512-jIMtnzrLTjzqgVEQqPEmwEZV+ea4zHRFTP8Z2Utw0I5HuBOXHzUPPQWr6ouJdJqDKLbFU/OEiYwZ79LalZkmmw==", "dev": true }, + "hast-util-raw": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/hast-util-raw/download/hast-util-raw-4.0.0.tgz", + "integrity": "sha1-LcEMn6zZuBDqasUd8lHm+Hwu1bU=", + "dev": true, + "requires": { + "hast-util-from-parse5": "^4.0.2", + "hast-util-to-parse5": "^4.0.1", + "html-void-elements": "^1.0.1", + "parse5": "^5.0.0", + "unist-util-position": "^3.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.1", + "zwitch": "^1.0.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/parse5/download/parse5-5.1.0.tgz", + "integrity": "sha1-xZNByXI/QUxFKXVWTHwApo1YrNI=", + "dev": true + } + } + }, + "hast-util-to-html": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/hast-util-to-html/download/hast-util-to-html-4.0.1.tgz", + "integrity": "sha1-NmawWvtivWn49ebJTbBN6hlDjio=", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "comma-separated-tokens": "^1.0.1", + "hast-util-is-element": "^1.0.0", + "hast-util-whitespace": "^1.0.0", + "html-void-elements": "^1.0.0", + "property-information": "^4.0.0", + "space-separated-tokens": "^1.0.0", + "stringify-entities": "^1.0.1", + "unist-util-is": "^2.0.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "property-information": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/property-information/download/property-information-4.2.0.tgz", + "integrity": "sha1-8OZuB8vW/tMdloRNlY0VOtPrSG4=", + "dev": true, + "requires": { + "xtend": "^4.0.1" + } + }, + "unist-util-is": { + "version": "2.1.3", + "resolved": "http://r.cnpmjs.org/unist-util-is/download/unist-util-is-2.1.3.tgz", + "integrity": "sha1-RZGC2zH0dC/OrqiNQpaTy/AEPSA=", + "dev": true + } + } + }, + "hast-util-to-parse5": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/hast-util-to-parse5/download/hast-util-to-parse5-4.0.1.tgz", + "integrity": "sha1-5SU0tL9A3E59BCj8r20yvHXGLuU=", + "dev": true, + "requires": { + "hast-to-hyperscript": "^5.0.0", + "property-information": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.1", + "zwitch": "^1.0.0" + }, + "dependencies": { + "property-information": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/property-information/download/property-information-4.2.0.tgz", + "integrity": "sha1-8OZuB8vW/tMdloRNlY0VOtPrSG4=", + "dev": true, + "requires": { + "xtend": "^4.0.1" + } + } + } + }, + "hast-util-whitespace": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/hast-util-whitespace/download/hast-util-whitespace-1.0.3.tgz", + "integrity": "sha1-bRYbMHvQaTtewADHx+i1RFEJ7jQ=", + "dev": true + }, "hastscript": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.0.tgz", @@ -12171,6 +18665,12 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, "highlight.js": { "version": "9.12.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", @@ -12224,6 +18724,24 @@ "wbuf": "^1.1.0" } }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, "html-element-map": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.1.0.tgz", @@ -12263,12 +18781,27 @@ "uglify-js": "^3.5.1" } }, + "html-parse-stringify2": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/html-parse-stringify2/download/html-parse-stringify2-2.0.1.tgz", + "integrity": "sha1-3FZwtyksoVi3vJFsmmc1rIhyg0o=", + "dev": true, + "requires": { + "void-elements": "^2.0.1" + } + }, "html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", "dev": true }, + "html-void-elements": { + "version": "1.0.4", + "resolved": "http://r.cnpmjs.org/html-void-elements/download/html-void-elements-1.0.4.tgz", + "integrity": "sha1-lei7Xs1riHZlacJkXytfFZHbm6U=", + "dev": true + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -12518,6 +19051,16 @@ "ms": "^2.0.0" } }, + "humanize-url": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/humanize-url/download/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + } + }, "husky": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.9.tgz", @@ -12670,6 +19213,15 @@ } } }, + "i18next": { + "version": "19.0.0", + "resolved": "http://r.cnpmjs.org/i18next/download/i18next-19.0.0.tgz", + "integrity": "sha1-VBggfXKGEo5s/lWOZZ+oxg2JeUs=", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -12694,6 +19246,12 @@ "postcss": "^7.0.14" } }, + "idb-keyval": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/idb-keyval/download/idb-keyval-3.2.0.tgz", + "integrity": "sha1-y781TetWhLbNyEN2KU/AWTKEW9Y=", + "dev": true + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", @@ -12721,6 +19279,155 @@ "minimatch": "^3.0.4" } }, + "image-size": { + "version": "0.5.5", + "resolved": "http://r.cnpmjs.org/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "imagemin": { + "version": "6.1.0", + "resolved": "http://r.cnpmjs.org/imagemin/download/imagemin-6.1.0.tgz", + "integrity": "sha1-YlCLRlco/qNsA83AfZFf4tjPnhM=", + "dev": true, + "requires": { + "file-type": "^10.7.0", + "globby": "^8.0.1", + "make-dir": "^1.0.0", + "p-pipe": "^1.1.0", + "pify": "^4.0.1", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/make-dir/download/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } + } + }, + "imagemin-mozjpeg": { + "version": "8.0.0", + "resolved": "http://r.cnpmjs.org/imagemin-mozjpeg/download/imagemin-mozjpeg-8.0.0.tgz", + "integrity": "sha1-0spOjJgsfG7aVQaa+J3uTBzrzf0=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "is-jpg": "^2.0.0", + "mozjpeg": "^6.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "imagemin-pngquant": { + "version": "6.0.1", + "resolved": "http://r.cnpmjs.org/imagemin-pngquant/download/imagemin-pngquant-6.0.1.tgz", + "integrity": "sha1-B7TIDjJ6xg71JGdYApseiuzYebk=", + "dev": true, + "requires": { + "execa": "^0.10.0", + "is-png": "^1.0.0", + "is-stream": "^1.1.0", + "pngquant-bin": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-0.10.0.tgz", + "integrity": "sha1-/0Vqj1P5D47MxxqW0Rvfx/CCy1A=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "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" + } + } + } + }, + "imagemin-webp": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/imagemin-webp/download/imagemin-webp-5.1.0.tgz", + "integrity": "sha1-3bEwetl6/5cpPFpgDjhOQMB/aKc=", + "dev": true, + "requires": { + "cwebp-bin": "^5.0.0", + "exec-buffer": "^3.0.0", + "is-cwebp-readable": "^2.0.1" + } + }, "immer": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", @@ -12817,6 +19524,12 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "http://r.cnpmjs.org/indexof/download/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -12861,6 +19574,158 @@ "validate-npm-package-name": "^3.0.0" } }, + "ink": { + "version": "2.5.0", + "resolved": "http://r.cnpmjs.org/ink/download/ink-2.5.0.tgz", + "integrity": "sha1-Zs+Yi2XKBtFPAPOF61Mf3in5WBk=", + "dev": true, + "optional": true, + "requires": { + "@types/react": "^16.8.6", + "ansi-escapes": "^4.2.1", + "arrify": "^1.0.1", + "auto-bind": "^2.0.0", + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "cli-truncate": "^1.1.0", + "is-ci": "^2.0.0", + "lodash.throttle": "^4.1.1", + "log-update": "^3.0.0", + "prop-types": "^15.6.2", + "react-reconciler": "^0.21.0", + "scheduler": "^0.15.0", + "signal-exit": "^3.0.2", + "slice-ansi": "^1.0.0", + "string-length": "^2.0.0", + "widest-line": "^2.0.0", + "wrap-ansi": "^5.0.0", + "yoga-layout-prebuilt": "^1.9.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.2.1", + "resolved": "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-4.2.1.tgz", + "integrity": "sha1-TczbhGw+7hD21k3qZic+q5DDcig=", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.5.2" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "optional": true + }, + "cli-truncate": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/cli-truncate/download/cli-truncate-1.1.0.tgz", + "integrity": "sha1-Ky39g8U8/TVyuH/E1DCoCK+wQIY=", + "dev": true, + "optional": true, + "requires": { + "slice-ansi": "^1.0.0", + "string-width": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "optional": true + }, + "log-update": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/log-update/download/log-update-3.3.0.tgz", + "integrity": "sha1-OwUBgVEj9myzPzAOPawqK2rT/fU=", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.2.0", + "cli-cursor": "^2.1.0", + "wrap-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true, + "optional": true + } + } + }, + "scheduler": { + "version": "0.15.0", + "resolved": "http://r.cnpmjs.org/scheduler/download/scheduler-0.15.0.tgz", + "integrity": "sha1-a/z4D/hQsoD+1K7sxlE7wLTxf44=", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/slice-ansi/download/slice-ansi-1.0.0.tgz", + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "optional": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "type-fest": { + "version": "0.5.2", + "resolved": "http://r.cnpmjs.org/type-fest/download/type-fest-0.5.2.tgz", + "integrity": "sha1-1u9CoDVsbNRfSUhcO2KB/BSOSKI=", + "dev": true, + "optional": true + } + } + }, + "ink-spinner": { + "version": "3.0.1", + "resolved": "http://r.cnpmjs.org/ink-spinner/download/ink-spinner-3.0.1.tgz", + "integrity": "sha1-e0sgbSsYU4cB/ZJZP5rKu/4wjc4=", + "dev": true, + "optional": true, + "requires": { + "cli-spinners": "^1.0.0", + "prop-types": "^15.5.10" + } + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "http://r.cnpmjs.org/inline-style-parser/download/inline-style-parser-0.1.1.tgz", + "integrity": "sha1-7Io7QpJ06cCh8cT/qUU6f+9yzqE=", + "dev": true + }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", @@ -12950,6 +19815,24 @@ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, + "into-stream": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/into-stream/download/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "dependencies": { + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/p-is-promise/download/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + } + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -13064,6 +19947,23 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-builtin-module": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/is-builtin-module/download/is-builtin-module-3.0.0.tgz", + "integrity": "sha1-E309JCUCOhmmYPud1t36vlLANGY=", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + }, + "dependencies": { + "builtin-modules": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/builtin-modules/download/builtin-modules-3.1.0.tgz", + "integrity": "sha1-qtl8FRMet2tltQ7yCOdYTNdqdIQ=", + "dev": true + } + } + }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", @@ -13079,6 +19979,37 @@ "ci-info": "^2.0.0" } }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-cwebp-readable": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/is-cwebp-readable/download/is-cwebp-readable-2.0.1.tgz", + "integrity": "sha1-r7k7DAq9CiUQEBauM66ort+SbSY=", + "dev": true, + "requires": { + "file-type": "^4.3.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "http://r.cnpmjs.org/file-type/download/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "dev": true + } + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -13136,6 +20067,12 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-docker/download/is-docker-2.0.0.tgz", + "integrity": "sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls=", + "dev": true + }, "is-dom": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", @@ -13203,6 +20140,71 @@ "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==", "dev": true }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "http://r.cnpmjs.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/is-path-inside/download/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } + } + }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "http://r.cnpmjs.org/is-invalid-path/download/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-extglob/download/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/is-glob/download/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "is-jpg": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-jpg/download/is-jpg-2.0.0.tgz", + "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=", + "dev": true + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/is-natural-number/download/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", + "dev": true + }, + "is-npm": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-npm/download/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -13297,12 +20299,24 @@ "isobject": "^3.0.1" } }, + "is-png": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/is-png/download/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", + "dev": true + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, + "is-redirect": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-redirect/download/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -13318,6 +20332,36 @@ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true }, + "is-relative": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-relative/download/is-relative-1.0.0.tgz", + "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-relative-url": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/is-relative-url/download/is-relative-url-3.0.0.tgz", + "integrity": "sha1-9iPI4muqW9N0Kzt+wHT1DztFs/M=", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/is-retry-allowed/download/is-retry-allowed-1.2.0.tgz", + "integrity": "sha1-13hIi9CkZmo76KFIK58rqv7eqLQ=", + "dev": true + }, "is-root": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", @@ -13357,6 +20401,15 @@ "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", "dev": true }, + "is-svg": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -13381,12 +20434,30 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/is-unc-path/download/is-unc-path-1.0.0.tgz", + "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "http://r.cnpmjs.org/is-valid-path/download/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "dev": true, + "requires": { + "is-invalid-path": "^0.1.0" + } + }, "is-whitespace-character": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", @@ -13547,6 +20618,22 @@ "handlebars": "^4.1.2" } }, + "isurl": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/isurl/download/isurl-1.0.0.tgz", + "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", + "dev": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "iterall": { + "version": "1.2.2", + "resolved": "http://r.cnpmjs.org/iterall/download/iterall-1.2.2.tgz", + "integrity": "sha1-ktcN64Ao4MOf8xZP2/TYsIgTDNc=", + "dev": true + }, "jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", @@ -14037,6 +21124,33 @@ } } }, + "jimp": { + "version": "0.6.8", + "resolved": "http://r.cnpmjs.org/jimp/download/jimp-0.6.8.tgz", + "integrity": "sha1-YwdJhDN8xGnNQDCUblA+fAKhi1w=", + "dev": true, + "requires": { + "@jimp/custom": "^0.6.8", + "@jimp/plugins": "^0.6.8", + "@jimp/types": "^0.6.8", + "core-js": "^2.5.7", + "regenerator-runtime": "^0.13.3" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "http://r.cnpmjs.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz", + "integrity": "sha1-fPanfY9cb2Drc8X8GVWyzrAea/U=", + "dev": true + } + } + }, + "jpeg-js": { + "version": "0.3.6", + "resolved": "http://r.cnpmjs.org/jpeg-js/download/jpeg-js-0.3.6.tgz", + "integrity": "sha1-xAOCqslQbn0fLYVusC9seyqYs3w=", + "dev": true + }, "js-base64": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", @@ -14119,6 +21233,18 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/json-buffer/download/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "http://r.cnpmjs.org/json-loader/download/json-loader-0.5.7.tgz", + "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -14137,6 +21263,12 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-pretty-compact": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-1.2.0.tgz", @@ -14149,6 +21281,15 @@ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, + "json2mq": { + "version": "0.2.0", + "resolved": "http://r.cnpmjs.org/json2mq/download/json2mq-0.2.0.tgz", + "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=", + "dev": true, + "requires": { + "string-convert": "^0.2.0" + } + }, "json3": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", @@ -14181,6 +21322,12 @@ "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "http://r.cnpmjs.org/jsonify/download/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -14235,6 +21382,16 @@ } } }, + "jsx-ast-utils": { + "version": "2.2.3", + "resolved": "http://r.cnpmjs.org/jsx-ast-utils/download/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha1-ipNk5AJEijzn8U01dzgxDZJIBU8=", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, "jsx-to-string": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsx-to-string/-/jsx-to-string-1.4.0.tgz", @@ -14283,6 +21440,15 @@ } } }, + "keyv": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/keyv/download/keyv-3.0.0.tgz", + "integrity": "sha1-RJI7o55osSp87H32wyaMAx8u83M=", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -14316,6 +21482,25 @@ "integrity": "sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w==", "dev": true }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha1-l0LfDhDjz0blwDgcLekNOnotdVU=", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/latest-version/download/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -14395,6 +21580,63 @@ "npmlog": "^4.1.2" } }, + "less": { + "version": "3.10.3", + "resolved": "http://r.cnpmjs.org/less/download/less-3.10.3.tgz", + "integrity": "sha1-QXoJddXu7MUs/0vPo8CdNXgeZ5I=", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "optional": true + } + } + }, + "less-loader": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/less-loader/download/less-loader-5.0.0.tgz", + "integrity": "sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY=", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } + } + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -14708,6 +21950,22 @@ "figures": "^2.0.0" } }, + "load-bmfont": { + "version": "1.4.0", + "resolved": "http://r.cnpmjs.org/load-bmfont/download/load-bmfont-1.4.0.tgz", + "integrity": "sha1-dfFwcLFKjHhf5/W+4ub9T5gJO2s=", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -14720,6 +21978,57 @@ "strip-bom": "^3.0.0" } }, + "loader-fs-cache": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/loader-fs-cache/download/loader-fs-cache-1.0.2.tgz", + "integrity": "sha1-VM7fa3J+F3n9jwEgXwX26IcG8IY=", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "http://r.cnpmjs.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/pkg-dir/download/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -14764,12 +22073,33 @@ "path-exists": "^3.0.0" } }, + "lockfile": { + "version": "1.0.4", + "resolved": "http://r.cnpmjs.org/lockfile/download/lockfile-1.0.4.tgz", + "integrity": "sha1-B/gZ0lrkj4flOOZXi2lkpJgaVgk=", + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, + "lodash-es": { + "version": "4.17.15", + "resolved": "http://r.cnpmjs.org/lodash-es/download/lodash-es-4.17.15.tgz", + "integrity": "sha1-Ib2Wg5NUQS8j16EDQOXqxu5FXXg=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "http://r.cnpmjs.org/lodash._getnative/download/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -14794,18 +22124,48 @@ "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=", "dev": true }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "http://r.cnpmjs.org/lodash.escaperegexp/download/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "lodash.every": { + "version": "4.6.0", + "resolved": "http://r.cnpmjs.org/lodash.every/download/lodash.every-4.6.0.tgz", + "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=", + "dev": true + }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "http://r.cnpmjs.org/lodash.foreach/download/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/lodash.isarguments/download/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "http://r.cnpmjs.org/lodash.isarray/download/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -14818,18 +22178,59 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "http://r.cnpmjs.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/lodash.isstring/download/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.iteratee": { + "version": "4.7.0", + "resolved": "http://r.cnpmjs.org/lodash.iteratee/download/lodash.iteratee-4.7.0.tgz", + "integrity": "sha1-vkF32yiajMw8CZDx2ya1si/BVUw=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "http://r.cnpmjs.org/lodash.keys/download/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", "dev": true }, + "lodash.maxby": { + "version": "4.6.0", + "resolved": "http://r.cnpmjs.org/lodash.maxby/download/lodash.maxby-4.6.0.tgz", + "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=", + "dev": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "http://r.cnpmjs.org/lodash.mergewith/download/lodash.mergewith-4.6.2.tgz", + "integrity": "sha1-YXEh+JrFX1kEfHrsHM1mVMZZD1U=", + "dev": true + }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", @@ -14867,6 +22268,18 @@ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "http://r.cnpmjs.org/lodash.toarray/download/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/lodash.unescape/download/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -14942,6 +22355,28 @@ } } }, + "logalot": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/logalot/download/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "dev": true, + "requires": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "http://r.cnpmjs.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + } + } + }, "loglevel": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", @@ -14958,6 +22393,12 @@ "object.assign": "^4.1.0" } }, + "lokijs": { + "version": "1.5.8", + "resolved": "http://r.cnpmjs.org/lokijs/download/lokijs-1.5.8.tgz", + "integrity": "sha1-kpbyiO2yFHOJ7GkvyXLEKMWRedE=", + "dev": true + }, "longest": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", @@ -14995,6 +22436,12 @@ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", + "dev": true + }, "lowlight": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.9.2.tgz", @@ -15005,6 +22452,200 @@ "highlight.js": "~9.12.0" } }, + "lpad-align": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/lpad-align/download/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/camelcase/download/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/find-up/download/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/get-stdin/download/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/indent-string/download/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/load-json-file/download/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/map-obj/download/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "http://r.cnpmjs.org/meow/download/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/minimist/download/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/parse-json/download/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/path-exists/download/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/path-type/download/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/read-pkg/download/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/redent/download/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/strip-bom/download/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/strip-indent/download/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/trim-newlines/download/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } + } + }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", @@ -15015,6 +22656,12 @@ "yallist": "^2.1.2" } }, + "ltcdr": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/ltcdr/download/ltcdr-2.2.1.tgz", + "integrity": "sha1-Wrh60dTB2rjowIu/A37gwZAih88=", + "dev": true + }, "macos-release": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", @@ -15183,6 +22830,26 @@ "integrity": "sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw==", "dev": true }, + "md5": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/md5/download/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "md5-file": { + "version": "3.2.3", + "resolved": "http://r.cnpmjs.org/md5-file/download/md5-file-3.2.3.tgz", + "integrity": "sha1-+bzrlB7KIhSkwHJ/XnADFOdw8G8=", + "dev": true, + "requires": { + "buffer-alloc": "^1.1.0" + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -15203,12 +22870,81 @@ "unist-util-visit": "^1.1.0" } }, + "mdast-util-definitions": { + "version": "1.2.4", + "resolved": "http://r.cnpmjs.org/mdast-util-definitions/download/mdast-util-definitions-1.2.4.tgz", + "integrity": "sha1-K1StTuyv+dn8tr9vn2tosjLXfKc=", + "dev": true, + "requires": { + "unist-util-visit": "^1.0.0" + } + }, + "mdast-util-to-hast": { + "version": "3.0.4", + "resolved": "http://r.cnpmjs.org/mdast-util-to-hast/download/mdast-util-to-hast-3.0.4.tgz", + "integrity": "sha1-EyABsmYDEZI0jTNmprAR8o5U3EA=", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.0", + "detab": "^2.0.0", + "mdast-util-definitions": "^1.2.0", + "mdurl": "^1.0.1", + "trim": "0.0.1", + "trim-lines": "^1.0.0", + "unist-builder": "^1.0.1", + "unist-util-generated": "^1.1.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^1.1.0", + "xtend": "^4.0.1" + } + }, + "mdast-util-to-nlcst": { + "version": "3.2.3", + "resolved": "http://r.cnpmjs.org/mdast-util-to-nlcst/download/mdast-util-to-nlcst-3.2.3.tgz", + "integrity": "sha1-3ND1G1lRWxGgcArrQPFo7Xup7T0=", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "repeat-string": "^1.5.2", + "unist-util-position": "^3.0.0", + "vfile-location": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "1.0.6", + "resolved": "http://r.cnpmjs.org/mdast-util-to-string/download/mdast-util-to-string-1.0.6.tgz", + "integrity": "sha1-fYVCECE0OzPeFVL8ccuOW0rnU20=", + "dev": true + }, + "mdast-util-toc": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/mdast-util-toc/download/mdast-util-toc-2.1.0.tgz", + "integrity": "sha1-grayGFd7sOZ7I6v1w/esc6S1OJ8=", + "dev": true, + "requires": { + "github-slugger": "^1.1.1", + "mdast-util-to-string": "^1.0.2", + "unist-util-visit": "^1.1.0" + } + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, + "mdurl": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/mdurl/download/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "meant": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/meant/download/meant-1.0.1.tgz", + "integrity": "sha1-ZgRP6i8jIw7IBvtRXv6inETSEV0=", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -15425,6 +23161,32 @@ "webpack-sources": "^1.1.0" } }, + "mini-store": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/mini-store/download/mini-store-2.0.0.tgz", + "integrity": "sha1-CEPASNaULOVePnixtn/AYwIrVIg=", + "dev": true, + "requires": { + "hoist-non-react-statics": "^2.3.1", + "prop-types": "^15.6.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.0.2" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "http://r.cnpmjs.org/hoist-non-react-statics/download/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha1-xZA89AnA39kI84jmGdhrnBF0y0c=", + "dev": true + } + } + }, + "mini-svg-data-uri": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/mini-svg-data-uri/download/mini-svg-data-uri-1.1.3.tgz", + "integrity": "sha1-l1nuX02JpLck0InOUuq0tiO/vIg=", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -15507,6 +23269,12 @@ "through2": "^2.0.0" } }, + "mitt": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/mitt/download/mitt-1.2.0.tgz", + "integrity": "sha1-yyTmVpyAbjG9TjmVeH/jigT9+Q0=", + "dev": true + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -15570,6 +23338,12 @@ "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true }, + "moment": { + "version": "2.24.0", + "resolved": "http://r.cnpmjs.org/moment/download/moment-2.24.0.tgz", + "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=", + "dev": true + }, "moo": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", @@ -15590,6 +23364,17 @@ "run-queue": "^1.0.3" } }, + "mozjpeg": { + "version": "6.0.1", + "resolved": "http://r.cnpmjs.org/mozjpeg/download/mozjpeg-6.0.1.tgz", + "integrity": "sha1-Vpad3bV0HvK8sa8GbK4h5hqRons=", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "logalot": "^2.1.0" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -15624,6 +23409,12 @@ "minimatch": "^3.0.4" } }, + "mutationobserver-shim": { + "version": "0.3.3", + "resolved": "http://r.cnpmjs.org/mutationobserver-shim/download/mutationobserver-shim-0.3.3.tgz", + "integrity": "sha1-ZYaWMLyJ17+MnNnLghiM2VWqzSs=", + "dev": true + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -15641,6 +23432,12 @@ "thenify-all": "^1.0.0" } }, + "name-all-modules-plugin": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/name-all-modules-plugin/download/name-all-modules-plugin-1.0.1.tgz", + "integrity": "sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w=", + "dev": true + }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", @@ -15721,6 +23518,12 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nlcst-to-string": { + "version": "2.0.3", + "resolved": "http://r.cnpmjs.org/nlcst-to-string/download/nlcst-to-string-2.0.3.tgz", + "integrity": "sha1-t5E7sTBSY7BWGobeaOF58X9/6+M=", + "dev": true + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -15748,6 +23551,21 @@ "minimatch": "^3.0.2" } }, + "node-emoji": { + "version": "1.10.0", + "resolved": "http://r.cnpmjs.org/node-emoji/download/node-emoji-1.10.0.tgz", + "integrity": "sha1-iIar0l2ce7YYAqZYUj0fjSqJsto=", + "dev": true, + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-eta": { + "version": "0.9.0", + "resolved": "http://r.cnpmjs.org/node-eta/download/node-eta-0.9.0.tgz", + "integrity": "sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g=", + "dev": true + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -16156,6 +23974,42 @@ } } }, + "noms": { + "version": "0.0.0", + "resolved": "http://r.cnpmjs.org/noms/download/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "http://r.cnpmjs.org/isarray/download/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://r.cnpmjs.org/readable-stream/download/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "http://r.cnpmjs.org/string_decoder/download/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", @@ -16213,12 +24067,28 @@ "sort-keys": "^1.0.0" } }, + "normalize.css": { + "version": "8.0.1", + "resolved": "http://r.cnpmjs.org/normalize.css/download/normalize.css-8.0.1.tgz", + "integrity": "sha1-m5iiCHOLnMJjTKrLxC0THJdIe/M=", + "dev": true + }, "npm-bundled": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "dev": true }, + "npm-conf": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/npm-conf/download/npm-conf-1.1.3.tgz", + "integrity": "sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k=", + "dev": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, "npm-lifecycle": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.4.tgz", @@ -16354,6 +24224,12 @@ "set-blocking": "~2.0.0" } }, + "nprogress": { + "version": "0.2.0", + "resolved": "http://r.cnpmjs.org/nprogress/download/nprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=", + "dev": true + }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -16363,6 +24239,18 @@ "boolbase": "~1.0.0" } }, + "null-loader": { + "version": "0.1.1", + "resolved": "http://r.cnpmjs.org/null-loader/download/null-loader-0.1.1.tgz", + "integrity": "sha1-F76av80/8OFRL2/Er8sfUDk3j64=", + "dev": true + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/nullthrows/download/nullthrows-1.1.1.tgz", + "integrity": "sha1-eBgliEOFaulx6uQgitfX6xmkMbE=", + "dev": true + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -16393,6 +24281,12 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, + "object-component": { + "version": "0.0.3", + "resolved": "http://r.cnpmjs.org/object-component/download/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -16424,6 +24318,18 @@ } } }, + "object-fit-images": { + "version": "3.2.4", + "resolved": "http://r.cnpmjs.org/object-fit-images/download/object-fit-images-3.2.4.tgz", + "integrity": "sha1-bCmdOP3yB3RuXS1Gwod/byXRW1I=", + "dev": true + }, + "object-hash": { + "version": "1.3.1", + "resolved": "http://r.cnpmjs.org/object-hash/download/object-hash-1.3.1.tgz", + "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", + "dev": true + }, "object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", @@ -16442,6 +24348,12 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, + "object-path": { + "version": "0.11.4", + "resolved": "http://r.cnpmjs.org/object-path/download/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -16530,6 +24442,21 @@ "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", "dev": true }, + "omggif": { + "version": "1.0.10", + "resolved": "http://r.cnpmjs.org/omggif/download/omggif-1.0.10.tgz", + "integrity": "sha1-3ar5DUpC9TLp58s6lezdR/F8exk=", + "dev": true + }, + "omit.js": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/omit.js/download/omit.js-1.0.2.tgz", + "integrity": "sha1-kaFPDrqEBm36AVvzDkdMR/MLyFg=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -16578,6 +24505,12 @@ "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", "dev": true }, + "opentracing": { + "version": "0.14.4", + "resolved": "http://r.cnpmjs.org/opentracing/download/opentracing-0.14.4.tgz", + "integrity": "sha1-oRNAjqdA2jqQ/eWzsAEaN1wuQmg=", + "dev": true + }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -16597,6 +24530,16 @@ "wordwrap": "~0.0.2" } }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "resolved": "http://r.cnpmjs.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.3.tgz", + "integrity": "sha1-4vHU2UrYwK+JZ+vXzxONyx7xRXI=", + "dev": true, + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -16634,6 +24577,15 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, + "os-filter-obj": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/os-filter-obj/download/os-filter-obj-2.0.0.tgz", + "integrity": "sha1-HAti1fOiRCdJotE55t3e5ugdjRY=", + "dev": true, + "requires": { + "arch": "^2.1.0" + } + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -16686,6 +24638,12 @@ "mkdirp": "^0.5.1" } }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "http://r.cnpmjs.org/p-cancelable/download/p-cancelable-0.4.1.tgz", + "integrity": "sha1-NfNj1n1SCByNlYXje8zrfgu8sqA=", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -16701,6 +24659,26 @@ "p-reduce": "^1.0.0" } }, + "p-event": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/p-event/download/p-event-1.3.0.tgz", + "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "dev": true, + "requires": { + "p-timeout": "^1.1.1" + }, + "dependencies": { + "p-timeout": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/p-timeout/download/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + } + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -16792,6 +24770,15 @@ } } }, + "p-timeout": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/p-timeout/download/p-timeout-2.0.1.tgz", + "integrity": "sha1-2N0ZeVldLcATnh/ka4tkbLPN8Dg=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -16807,6 +24794,39 @@ "p-reduce": "^1.0.0" } }, + "package-json": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/package-json/download/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "resolved": "http://r.cnpmjs.org/got/download/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + } + } + }, "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", @@ -16855,6 +24875,40 @@ "safe-buffer": "^5.1.1" } }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "http://r.cnpmjs.org/parse-bmfont-ascii/download/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", + "dev": true + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "http://r.cnpmjs.org/parse-bmfont-binary/download/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", + "dev": true + }, + "parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "http://r.cnpmjs.org/parse-bmfont-xml/download/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha1-AVMZeX4+EvnnOcTVE4cs0vo184k=", + "dev": true, + "requires": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "parse-english": { + "version": "4.1.2", + "resolved": "http://r.cnpmjs.org/parse-english/download/parse-english-4.1.2.tgz", + "integrity": "sha1-ZxDUJsqnbbMn73BmmRzRufYC258=", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "parse-latin": "^4.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, "parse-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", @@ -16875,6 +24929,16 @@ "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", "dev": true }, + "parse-headers": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/parse-headers/download/parse-headers-2.0.2.tgz", + "integrity": "sha1-lUXopMGuXq6n0kmSvKiQKB7SbjQ=", + "dev": true, + "requires": { + "for-each": "^0.3.3", + "string.prototype.trim": "^1.1.2" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -16885,6 +24949,23 @@ "json-parse-better-errors": "^1.0.1" } }, + "parse-latin": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/parse-latin/download/parse-latin-4.2.0.tgz", + "integrity": "sha1-sLEHom7L6GcPntDSDrSRx3gPmdE=", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, + "parse-numeric-range": { + "version": "0.0.2", + "resolved": "http://r.cnpmjs.org/parse-numeric-range/download/parse-numeric-range-0.0.2.tgz", + "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=", + "dev": true + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -16930,6 +25011,24 @@ "@types/node": "*" } }, + "parseqs": { + "version": "0.0.5", + "resolved": "http://r.cnpmjs.org/parseqs/download/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "http://r.cnpmjs.org/parseuri/download/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -17018,12 +25117,30 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/pend/download/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, + "phin": { + "version": "2.9.3", + "resolved": "http://r.cnpmjs.org/phin/download/phin-2.9.3.tgz", + "integrity": "sha1-+basEKA1Y2+2XfxXaqqhe4dDElw=", + "dev": true + }, + "physical-cpu-count": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/physical-cpu-count/download/physical-cpu-count-2.0.0.tgz", + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", + "dev": true + }, "picomatch": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.0.tgz", @@ -17066,6 +25183,15 @@ "node-modules-regexp": "^1.0.0" } }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/pixelmatch/download/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dev": true, + "requires": { + "pngjs": "^3.0.0" + } + }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -17144,6 +25270,54 @@ "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, + "pngjs": { + "version": "3.4.0", + "resolved": "http://r.cnpmjs.org/pngjs/download/pngjs-3.4.0.tgz", + "integrity": "sha1-mcp9clll+2VYFOr2XzjxK72/VV8=", + "dev": true + }, + "pngquant-bin": { + "version": "5.0.2", + "resolved": "http://r.cnpmjs.org/pngquant-bin/download/pngquant-bin-5.0.2.tgz", + "integrity": "sha1-bzTz6JyXIqcrvFCQYrQPGxfNpGA=", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.1", + "execa": "^0.10.0", + "logalot": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "http://r.cnpmjs.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "http://r.cnpmjs.org/execa/download/execa-0.10.0.tgz", + "integrity": "sha1-/0Vqj1P5D47MxxqW0Rvfx/CCy1A=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "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" + } + } + } + }, "pnp-webpack-plugin": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.4.3.tgz", @@ -17230,6 +25404,118 @@ } } }, + "postcss-calc": { + "version": "7.0.1", + "resolved": "http://r.cnpmjs.org/postcss-calc/download/postcss-calc-7.0.1.tgz", + "integrity": "sha1-Ntd7qwI7Dsu5eJ2E3LI8SUEUVDY=", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/cssesc/download/cssesc-2.0.0.tgz", + "integrity": "sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM=", + "dev": true + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "http://r.cnpmjs.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha1-JJBENWaXsztk8aj3yAki3d7nGVw=", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, "postcss-flexbugs-fixes": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", @@ -17388,6 +25674,156 @@ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "http://r.cnpmjs.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-4.2.0.tgz", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-4.2.0.tgz", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, "postcss-modules-extract-imports": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", @@ -17474,6 +25910,200 @@ "postcss": "^7.0.6" } }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "is-absolute-url": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/normalize-url/download/normalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "http://r.cnpmjs.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, "postcss-plugin": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postcss-plugin/-/postcss-plugin-1.0.0.tgz", @@ -17502,6 +26132,38 @@ } } }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, "postcss-reporter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", @@ -17559,18 +26221,58 @@ "uniq": "^1.0.1" } }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "http://r.cnpmjs.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, "postcss-syntax": { "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", "dev": true }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, "postcss-value-parser": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", "dev": true }, + "potrace": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/potrace/download/potrace-2.1.2.tgz", + "integrity": "sha1-YUc6Mmvh5zSrrG0U1U4YgO7TVHE=", + "dev": true, + "requires": { + "jimp": "^0.6.4" + } + }, "prebuild-install": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", @@ -17620,6 +26322,12 @@ "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", "dev": true }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "http://r.cnpmjs.org/pretty-bytes/download/pretty-bytes-5.3.0.tgz", + "integrity": "sha1-8oSeJ9t5+01s/iR2T8QTTxZZifI=", + "dev": true + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -17656,6 +26364,12 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, + "prism-themes": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/prism-themes/download/prism-themes-1.3.0.tgz", + "integrity": "sha1-cuaDPDKWohErmJ+mMgjAznpNo6g=", + "dev": true + }, "prismjs": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", @@ -17671,6 +26385,20 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "probe-image-size": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/probe-image-size/download/probe-image-size-4.1.1.tgz", + "integrity": "sha1-yDbFMVS23QTbz2avK71QCHsV4dw=", + "dev": true, + "requires": { + "any-promise": "^1.3.0", + "deepmerge": "^4.0.0", + "inherits": "^2.0.3", + "next-tick": "^1.0.0", + "request": "^2.83.0", + "stream-parser": "~0.3.1" + } + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -17683,6 +26411,12 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "progress": { + "version": "2.0.3", + "resolved": "http://r.cnpmjs.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true + }, "promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -17771,6 +26505,12 @@ "reflect.ownkeys": "^0.2.0" } }, + "property-expr": { + "version": "1.5.1", + "resolved": "http://r.cnpmjs.org/property-expr/download/property-expr-1.5.1.tgz", + "integrity": "sha1-IuhwaJSgyOKNWHNYBPa6OjZzMU8=", + "dev": true + }, "property-information": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.3.0.tgz", @@ -17829,6 +26569,24 @@ "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", "dev": true }, + "ptz-i18n": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/ptz-i18n/download/ptz-i18n-1.0.0.tgz", + "integrity": "sha1-gD300PXOmncy9dHYBepiTGofXow=", + "dev": true, + "requires": { + "folktale": "^2.0.1", + "ramda": "^0.24.1" + }, + "dependencies": { + "ramda": { + "version": "0.24.1", + "resolved": "http://r.cnpmjs.org/ramda/download/ramda-0.24.1.tgz", + "integrity": "sha1-w7d1UZfzW43DUCIoJixMkd22uFc=", + "dev": true + } + } + }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -18032,6 +26790,661 @@ } } }, + "rc-align": { + "version": "2.4.5", + "resolved": "http://r.cnpmjs.org/rc-align/download/rc-align-2.4.5.tgz", + "integrity": "sha1-yUGlhvWdEBfyOkKPC0aGY/txAqs=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "dom-align": "^1.7.0", + "prop-types": "^15.5.8", + "rc-util": "^4.0.4" + } + }, + "rc-animate": { + "version": "2.10.1", + "resolved": "http://r.cnpmjs.org/rc-animate/download/rc-animate-2.10.1.tgz", + "integrity": "sha1-wMT6q1DlVTXpA+ZvIH5JiRuobZQ=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "css-animation": "^1.3.2", + "prop-types": "15.x", + "raf": "^3.4.0", + "rc-util": "^4.8.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-calendar": { + "version": "9.15.6", + "resolved": "http://r.cnpmjs.org/rc-calendar/download/rc-calendar-9.15.6.tgz", + "integrity": "sha1-iCMjZyjD+JKoIrlpHOheGyswhIU=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "2.x", + "moment": "2.x", + "prop-types": "^15.5.8", + "rc-trigger": "^2.2.0", + "rc-util": "^4.1.1", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-cascader": { + "version": "0.17.5", + "resolved": "http://r.cnpmjs.org/rc-cascader/download/rc-cascader-0.17.5.tgz", + "integrity": "sha1-T96R0jt2CMQgJjw47unAaH+A99w=", + "dev": true, + "requires": { + "array-tree-filter": "^2.1.0", + "prop-types": "^15.5.8", + "rc-trigger": "^2.2.0", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.4", + "shallow-equal": "^1.0.0", + "warning": "^4.0.1" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-checkbox": { + "version": "2.1.8", + "resolved": "http://r.cnpmjs.org/rc-checkbox/download/rc-checkbox-2.1.8.tgz", + "integrity": "sha1-7t2e+cLzr1s7jlzeUlSqia0aiAo=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "2.x", + "prop-types": "15.x", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-collapse": { + "version": "1.11.7", + "resolved": "http://r.cnpmjs.org/rc-collapse/download/rc-collapse-1.11.7.tgz", + "integrity": "sha1-Cw1iGqw2qYCRDPtFNlrCx2lFXts=", + "dev": true, + "requires": { + "classnames": "2.x", + "css-animation": "1.x", + "prop-types": "^15.5.6", + "rc-animate": "2.x", + "react-is": "^16.7.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "rc-dialog": { + "version": "7.5.12", + "resolved": "http://r.cnpmjs.org/rc-dialog/download/rc-dialog-7.5.12.tgz", + "integrity": "sha1-b4S4CbNpzW0lesS1m4RllUtXRVM=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "rc-animate": "2.x", + "rc-util": "^4.8.1" + } + }, + "rc-drawer": { + "version": "3.0.2", + "resolved": "http://r.cnpmjs.org/rc-drawer/download/rc-drawer-3.0.2.tgz", + "integrity": "sha1-HEKyt3kAQDRPjwXx0TKx7w6Xt4M=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.6", + "rc-util": "^4.11.2", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-dropdown": { + "version": "2.4.1", + "resolved": "http://r.cnpmjs.org/rc-dropdown/download/rc-dropdown-2.4.1.tgz", + "integrity": "sha1-qu9us6UVLN2ZgolcKnjZtfBGzew=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.6", + "prop-types": "^15.5.8", + "rc-trigger": "^2.5.1", + "react-lifecycles-compat": "^3.0.2" + } + }, + "rc-editor-core": { + "version": "0.8.10", + "resolved": "http://r.cnpmjs.org/rc-editor-core/download/rc-editor-core-0.8.10.tgz", + "integrity": "sha1-byFbxd+cM/+p9sWzDKc6favoq3w=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.5", + "draft-js": "^0.10.0", + "immutable": "^3.7.4", + "lodash": "^4.16.5", + "prop-types": "^15.5.8", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "immutable": { + "version": "3.8.2", + "resolved": "http://r.cnpmjs.org/immutable/download/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + } + } + }, + "rc-editor-mention": { + "version": "1.1.13", + "resolved": "http://r.cnpmjs.org/rc-editor-mention/download/rc-editor-mention-1.1.13.tgz", + "integrity": "sha1-nxyrEGX4awFSOEAyF5DCqxKsXos=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "^2.2.5", + "dom-scroll-into-view": "^1.2.0", + "draft-js": "~0.10.0", + "immutable": "~3.7.4", + "prop-types": "^15.5.8", + "rc-animate": "^2.3.0", + "rc-editor-core": "~0.8.3" + }, + "dependencies": { + "immutable": { + "version": "3.7.6", + "resolved": "http://r.cnpmjs.org/immutable/download/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "dev": true + } + } + }, + "rc-footer": { + "version": "0.5.0", + "resolved": "http://r.cnpmjs.org/rc-footer/download/rc-footer-0.5.0.tgz", + "integrity": "sha1-edDXrYk/5Pjf5Syillpe9m4BqLs=", + "dev": true, + "requires": { + "classnames": "^2.2.1" + } + }, + "rc-form": { + "version": "2.4.9", + "resolved": "http://r.cnpmjs.org/rc-form/download/rc-form-2.4.9.tgz", + "integrity": "sha1-aISwa72NapNOXyqifocwiCxwhAw=", + "dev": true, + "requires": { + "async-validator": "~1.11.3", + "babel-runtime": "6.x", + "create-react-class": "^15.5.3", + "dom-scroll-into-view": "1.x", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.4", + "warning": "^4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-hammerjs": { + "version": "0.6.9", + "resolved": "http://r.cnpmjs.org/rc-hammerjs/download/rc-hammerjs-0.6.9.tgz", + "integrity": "sha1-mk3b2hsuyPm5WWCRpqmJhCokOQc=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "hammerjs": "^2.0.8", + "prop-types": "^15.5.9" + } + }, + "rc-input-number": { + "version": "4.5.1", + "resolved": "http://r.cnpmjs.org/rc-input-number/download/rc-input-number-4.5.1.tgz", + "integrity": "sha1-/LA8HdqLeypp+7cY+cE8ZmyuvXk=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.0", + "prop-types": "^15.5.7", + "rc-util": "^4.5.1", + "rmc-feedback": "^2.0.0" + } + }, + "rc-mentions": { + "version": "0.4.1", + "resolved": "http://r.cnpmjs.org/rc-mentions/download/rc-mentions-0.4.1.tgz", + "integrity": "sha1-0mHHHinwYHdvDEZsgabkMDEBkjk=", + "dev": true, + "requires": { + "@ant-design/create-react-context": "^0.2.4", + "classnames": "^2.2.6", + "rc-menu": "^7.4.22", + "rc-trigger": "^2.6.2", + "rc-util": "^4.6.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-menu": { + "version": "7.5.3", + "resolved": "http://r.cnpmjs.org/rc-menu/download/rc-menu-7.5.3.tgz", + "integrity": "sha1-C9tx7x8LRgiiXrmEj6n2c/U1NXk=", + "dev": true, + "requires": { + "classnames": "2.x", + "dom-scroll-into-view": "1.x", + "mini-store": "^2.0.0", + "mutationobserver-shim": "^0.3.2", + "rc-animate": "^2.10.1", + "rc-trigger": "^2.3.0", + "rc-util": "^4.13.0", + "resize-observer-polyfill": "^1.5.0", + "shallowequal": "^1.1.0" + } + }, + "rc-notification": { + "version": "3.3.1", + "resolved": "http://r.cnpmjs.org/rc-notification/download/rc-notification-3.3.1.tgz", + "integrity": "sha1-C6o+cPjUCrAVzo+njCYMSQ/HvrQ=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "2.x", + "prop-types": "^15.5.8", + "rc-animate": "2.x", + "rc-util": "^4.0.4" + } + }, + "rc-pagination": { + "version": "1.20.10", + "resolved": "http://r.cnpmjs.org/rc-pagination/download/rc-pagination-1.20.10.tgz", + "integrity": "sha1-oPp3aYy606svHyMSjc2YYnhU8Ik=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "prop-types": "^15.5.7", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-progress": { + "version": "2.5.2", + "resolved": "http://r.cnpmjs.org/rc-progress/download/rc-progress-2.5.2.tgz", + "integrity": "sha1-qwG6Tl0vo2/J9vBYsQtyDnMVVgw=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "prop-types": "^15.5.8" + } + }, + "rc-rate": { + "version": "2.5.0", + "resolved": "http://r.cnpmjs.org/rc-rate/download/rc-rate-2.5.0.tgz", + "integrity": "sha1-ctSYSgPQp6Dmd5x6ee/OonYmq/Y=", + "dev": true, + "requires": { + "classnames": "^2.2.5", + "prop-types": "^15.5.8", + "rc-util": "^4.3.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-resize-observer": { + "version": "0.1.3", + "resolved": "http://r.cnpmjs.org/rc-resize-observer/download/rc-resize-observer-0.1.3.tgz", + "integrity": "sha1-CXGR+cOrGG7ZB7VTum71Zd8Rwkk=", + "dev": true, + "requires": { + "classnames": "^2.2.1", + "rc-util": "^4.13.0", + "resize-observer-polyfill": "^1.5.1" + } + }, + "rc-select": { + "version": "9.2.1", + "resolved": "http://r.cnpmjs.org/rc-select/download/rc-select-9.2.1.tgz", + "integrity": "sha1-D79HqTPDbh5u92yI+rMvWAKeagE=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "2.x", + "component-classes": "1.x", + "dom-scroll-into-view": "1.x", + "prop-types": "^15.5.8", + "raf": "^3.4.0", + "rc-animate": "2.x", + "rc-menu": "^7.3.0", + "rc-trigger": "^2.5.4", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.2", + "warning": "^4.0.2" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-slider": { + "version": "8.7.1", + "resolved": "http://r.cnpmjs.org/rc-slider/download/rc-slider-8.7.1.tgz", + "integrity": "sha1-ntBzYtyTSJo45lSyG4EirXD9PEI=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.5", + "prop-types": "^15.5.4", + "rc-tooltip": "^3.7.0", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0", + "warning": "^4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-steps": { + "version": "3.5.0", + "resolved": "http://r.cnpmjs.org/rc-steps/download/rc-steps-3.5.0.tgz", + "integrity": "sha1-NrKn8fSZB7DZA2OISxhiPK+ftgA=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "^2.2.3", + "lodash": "^4.17.5", + "prop-types": "^15.5.7" + } + }, + "rc-switch": { + "version": "1.9.0", + "resolved": "http://r.cnpmjs.org/rc-switch/download/rc-switch-1.9.0.tgz", + "integrity": "sha1-qyuHjycTxoE1ikUzkZdsm5WykPc=", + "dev": true, + "requires": { + "classnames": "^2.2.1", + "prop-types": "^15.5.6", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-table": { + "version": "6.9.5", + "resolved": "http://r.cnpmjs.org/rc-table/download/rc-table-6.9.5.tgz", + "integrity": "sha1-tzlMN4DUrSOY0I0gWaukVPGVJz8=", + "dev": true, + "requires": { + "classnames": "^2.2.5", + "component-classes": "^1.2.6", + "lodash": "^4.17.5", + "mini-store": "^2.0.0", + "prop-types": "^15.5.8", + "rc-util": "^4.13.0", + "react-lifecycles-compat": "^3.0.2", + "shallowequal": "^1.0.2" + } + }, + "rc-tabs": { + "version": "9.6.7", + "resolved": "http://r.cnpmjs.org/rc-tabs/download/rc-tabs-9.6.7.tgz", + "integrity": "sha1-xUYRWjUfXtd56lUkFDFX9I7gwBU=", + "dev": true, + "requires": { + "@ant-design/create-react-context": "^0.2.4", + "babel-runtime": "6.x", + "classnames": "2.x", + "lodash": "^4.17.5", + "prop-types": "15.x", + "raf": "^3.4.1", + "rc-hammerjs": "~0.6.0", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.4", + "resize-observer-polyfill": "^1.5.1", + "warning": "^4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-time-picker": { + "version": "3.7.2", + "resolved": "http://r.cnpmjs.org/rc-time-picker/download/rc-time-picker-3.7.2.tgz", + "integrity": "sha1-+r5VAa3xN00xotO0fxuon8LcJGc=", + "dev": true, + "requires": { + "classnames": "2.x", + "moment": "2.x", + "prop-types": "^15.5.8", + "raf": "^3.4.1", + "rc-trigger": "^2.2.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-tooltip": { + "version": "3.7.3", + "resolved": "http://r.cnpmjs.org/rc-tooltip/download/rc-tooltip-3.7.3.tgz", + "integrity": "sha1-KArsavyqROjf8EgPuv+eh/wArsw=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "prop-types": "^15.5.8", + "rc-trigger": "^2.2.2" + } + }, + "rc-tree": { + "version": "2.1.3", + "resolved": "http://r.cnpmjs.org/rc-tree/download/rc-tree-2.1.3.tgz", + "integrity": "sha1-UhSrGyGhhI65ot3LkZ47xG1tOQs=", + "dev": true, + "requires": { + "@ant-design/create-react-context": "^0.2.4", + "classnames": "2.x", + "prop-types": "^15.5.8", + "rc-animate": "^2.6.0", + "rc-util": "^4.5.1", + "react-lifecycles-compat": "^3.0.4", + "warning": "^4.0.3" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-tree-select": { + "version": "2.9.1", + "resolved": "http://r.cnpmjs.org/rc-tree-select/download/rc-tree-select-2.9.1.tgz", + "integrity": "sha1-0Ha4zlv0Mt8/3YpqAc3ZyTyOc5k=", + "dev": true, + "requires": { + "classnames": "^2.2.1", + "dom-scroll-into-view": "^1.2.1", + "prop-types": "^15.5.8", + "raf": "^3.4.0", + "rc-animate": "^2.8.2", + "rc-tree": "~2.0.0", + "rc-trigger": "^3.0.0-rc.2", + "rc-util": "^4.5.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.0.2", + "warning": "^4.0.1" + }, + "dependencies": { + "rc-tree": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/rc-tree/download/rc-tree-2.0.0.tgz", + "integrity": "sha1-aPxMmraWlDsnmhQ2GeLs8FkY+1M=", + "dev": true, + "requires": { + "babel-runtime": "^6.23.0", + "classnames": "2.x", + "prop-types": "^15.5.8", + "rc-animate": "^2.6.0", + "rc-util": "^4.5.1", + "react-lifecycles-compat": "^3.0.4", + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/warning/download/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-trigger": { + "version": "3.0.0-rc.3", + "resolved": "http://r.cnpmjs.org/rc-trigger/download/rc-trigger-3.0.0-rc.3.tgz", + "integrity": "sha1-NYQt8WdNJTFeFCakSIKkyXZSJYs=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "prop-types": "15.x", + "raf": "^3.4.0", + "rc-align": "^2.4.1", + "rc-animate": "^3.0.0-rc.1", + "rc-util": "^4.4.0" + }, + "dependencies": { + "rc-animate": { + "version": "3.0.0-rc.6", + "resolved": "http://r.cnpmjs.org/rc-animate/download/rc-animate-3.0.0-rc.6.tgz", + "integrity": "sha1-BCiO76EY4MriFFNsipA/+qwbw/s=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.5", + "component-classes": "^1.2.6", + "fbjs": "^0.8.16", + "prop-types": "15.x", + "raf": "^3.4.0", + "rc-util": "^4.5.0", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-trigger": { + "version": "2.6.5", + "resolved": "http://r.cnpmjs.org/rc-trigger/download/rc-trigger-2.6.5.tgz", + "integrity": "sha1-FAqFfPKL0PoBua7LHialCnAOmIU=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "prop-types": "15.x", + "rc-align": "^2.4.0", + "rc-animate": "2.x", + "rc-util": "^4.4.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "rc-upload": { + "version": "2.9.1", + "resolved": "http://r.cnpmjs.org/rc-upload/download/rc-upload-2.9.1.tgz", + "integrity": "sha1-KuYLw2BUIxvZZ7XhspM5j3IiIHg=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.5", + "prop-types": "^15.5.7", + "warning": "4.x" + }, + "dependencies": { + "warning": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/warning/download/warning-4.0.3.tgz", + "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "rc-util": { + "version": "4.14.4", + "resolved": "http://r.cnpmjs.org/rc-util/download/rc-util-4.14.4.tgz", + "integrity": "sha1-5+AJVZ6Tu6AixJsNCuxiZl1qDn8=", + "dev": true, + "requires": { + "add-dom-event-listener": "^1.1.0", + "babel-runtime": "6.x", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^0.2.2" + }, + "dependencies": { + "shallowequal": { + "version": "0.2.2", + "resolved": "http://r.cnpmjs.org/shallowequal/download/shallowequal-0.2.2.tgz", + "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", + "dev": true, + "requires": { + "lodash.keys": "^3.1.2" + } + } + } + }, "react": { "version": "16.11.0", "resolved": "https://registry.npmjs.org/react/-/react-16.11.0.tgz", @@ -18063,6 +27476,12 @@ "@babel/runtime": "^7.0.0" } }, + "react-codemirror2": { + "version": "6.0.0", + "resolved": "http://r.cnpmjs.org/react-codemirror2/download/react-codemirror2-6.0.0.tgz", + "integrity": "sha1-GABl31emQCYCbN5WmpcI/fdlZSU=", + "dev": true + }, "react-color": { "version": "2.17.3", "resolved": "https://registry.npmjs.org/react-color/-/react-color-2.17.3.tgz", @@ -18391,6 +27810,24 @@ "react-clientside-effect": "^1.2.0" } }, + "react-github-corner": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/react-github-corner/download/react-github-corner-2.3.0.tgz", + "integrity": "sha1-c6sXMktnDJzZVVZ7CWY9OFz7Be8=", + "dev": true + }, + "react-helmet": { + "version": "5.2.1", + "resolved": "http://r.cnpmjs.org/react-helmet/download/react-helmet-5.2.1.tgz", + "integrity": "sha1-FqcZL90JlR+OD+Iv/Mv5uz5ZH/o=", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.5.4", + "react-fast-compare": "^2.0.2", + "react-side-effect": "^1.1.0" + } + }, "react-helmet-async": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.4.tgz", @@ -18404,6 +27841,30 @@ "shallowequal": "^1.1.0" } }, + "react-hot-loader": { + "version": "4.12.15", + "resolved": "http://r.cnpmjs.org/react-hot-loader/download/react-hot-loader-4.12.15.tgz", + "integrity": "sha1-a/OYTlLtvfAuqJUnd/U9obPGjJU=", + "dev": true, + "requires": { + "fast-levenshtein": "^2.0.6", + "global": "^4.3.0", + "hoist-non-react-statics": "^3.3.0", + "loader-utils": "^1.1.0", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "http://r.cnpmjs.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, "react-hotkeys": { "version": "2.0.0-pre4", "resolved": "https://registry.npmjs.org/react-hotkeys/-/react-hotkeys-2.0.0-pre4.tgz", @@ -18413,6 +27874,16 @@ "prop-types": "^15.6.1" } }, + "react-i18next": { + "version": "11.0.1", + "resolved": "http://r.cnpmjs.org/react-i18next/download/react-i18next-11.0.1.tgz", + "integrity": "sha1-F5sQzwAmZ3c5+pbfCntUlN9DW9E=", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.1", + "html-parse-stringify2": "2.0.1" + } + }, "react-input-autosize": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.2.tgz", @@ -18439,6 +27910,18 @@ "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==", "dev": true }, + "react-lazy-load": { + "version": "3.0.13", + "resolved": "http://r.cnpmjs.org/react-lazy-load/download/react-lazy-load-3.0.13.tgz", + "integrity": "sha1-OwqS0zbUPT8Nc8vm81sXBQsIuCQ=", + "dev": true, + "requires": { + "eventlistener": "0.0.1", + "lodash.debounce": "^4.0.0", + "lodash.throttle": "^4.0.0", + "prop-types": "^15.5.8" + } + }, "react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -18490,6 +27973,32 @@ "react-popper": "^1.3.4" } }, + "react-reconciler": { + "version": "0.21.0", + "resolved": "http://r.cnpmjs.org/react-reconciler/download/react-reconciler-0.21.0.tgz", + "integrity": "sha1-gYA0KrPIKV+GACWobQoDdCopTqc=", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" + }, + "dependencies": { + "scheduler": { + "version": "0.15.0", + "resolved": "http://r.cnpmjs.org/scheduler/download/scheduler-0.15.0.tgz", + "integrity": "sha1-a/z4D/hQsoD+1K7sxlE7wLTxf44=", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, "react-select": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.0.8.tgz", @@ -18506,6 +28015,15 @@ "react-transition-group": "^2.2.1" } }, + "react-side-effect": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/react-side-effect/download/react-side-effect-1.2.0.tgz", + "integrity": "sha1-DpQMePq6DHO5sOupzT3ajft+fa4=", + "dev": true, + "requires": { + "shallowequal": "^1.0.1" + } + }, "react-sizeme": { "version": "2.6.10", "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.10.tgz", @@ -18518,6 +28036,19 @@ "throttle-debounce": "^2.1.0" } }, + "react-slick": { + "version": "0.25.2", + "resolved": "http://r.cnpmjs.org/react-slick/download/react-slick-0.25.2.tgz", + "integrity": "sha1-VjMbZ9R9i8/i3OtqyrHI/VvR9rw=", + "dev": true, + "requires": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + } + }, "react-syntax-highlighter": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-8.1.0.tgz", @@ -18583,6 +28114,24 @@ "mute-stream": "~0.0.4" } }, + "read-chunk": { + "version": "3.2.0", + "resolved": "http://r.cnpmjs.org/read-chunk/download/read-chunk-3.2.0.tgz", + "integrity": "sha1-KYSv54ypv7vbdLGTh7+ehiicFso=", + "dev": true, + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } + } + }, "read-cmd-shim": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.4.tgz", @@ -18683,6 +28232,12 @@ "readable-stream": "^2.0.2" } }, + "reading-time": { + "version": "1.2.0", + "resolved": "http://r.cnpmjs.org/reading-time/download/reading-time-1.2.0.tgz", + "integrity": "sha1-ztccBnFXYvgFUGMo3MH9RdgkmsQ=", + "dev": true + }, "realpath-native": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", @@ -18740,6 +28295,22 @@ "strip-indent": "^2.0.0" } }, + "redux": { + "version": "4.0.4", + "resolved": "http://r.cnpmjs.org/redux/download/redux-4.0.4.tgz", + "integrity": "sha1-TuGusWS2PWobzFeuSqC25vp6N5Y=", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/redux-thunk/download/redux-thunk-2.3.0.tgz", + "integrity": "sha1-UcLBmhhe1Rh6qpotCLZm0NZGdiI=", + "dev": true + }, "reflect.ownkeys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", @@ -18806,6 +28377,12 @@ "define-properties": "^1.1.2" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/regexpp/download/regexpp-2.0.1.tgz", + "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "dev": true + }, "regexpu-core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", @@ -18820,6 +28397,25 @@ "unicode-match-property-value-ecmascript": "^1.1.0" } }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "http://r.cnpmjs.org/registry-auth-token/download/registry-auth-token-3.4.0.tgz", + "integrity": "sha1-10RoFUM/XV7WQxzV3KIQSPZrOX4=", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/registry-url/download/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, "regjsgen": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", @@ -18849,6 +28445,34 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, + "relay-runtime": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/relay-runtime/download/relay-runtime-2.0.0.tgz", + "integrity": "sha1-DkLfkDZcxp8QT35LIP3Pl19anAs=", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "fbjs": "^1.0.0" + }, + "dependencies": { + "fbjs": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/fbjs/download/fbjs-1.0.0.tgz", + "integrity": "sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=", + "dev": true, + "requires": { + "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" + } + } + } + }, "remark": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", @@ -18883,6 +28507,15 @@ "xtend": "^4.0.1" } }, + "remark-retext": { + "version": "3.1.3", + "resolved": "http://r.cnpmjs.org/remark-retext/download/remark-retext-3.1.3.tgz", + "integrity": "sha1-dxc7HZ0T2rFc5bONmWGV/qUi7n8=", + "dev": true, + "requires": { + "mdast-util-to-nlcst": "^3.2.0" + } + }, "remark-stringify": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", @@ -19129,6 +28762,15 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/responselike/download/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -19145,6 +28787,16 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retext-english": { + "version": "3.0.3", + "resolved": "http://r.cnpmjs.org/retext-english/download/retext-english-3.0.3.tgz", + "integrity": "sha1-rrBEv/vqIhS5WdB8Hc6XmeAdy9o=", + "dev": true, + "requires": { + "parse-english": "^4.0.0", + "unherit": "^1.0.4" + } + }, "retry": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", @@ -19157,6 +28809,18 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, "right-pad": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", @@ -19182,6 +28846,16 @@ "inherits": "^2.0.1" } }, + "rmc-feedback": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/rmc-feedback/download/rmc-feedback-2.0.0.tgz", + "integrity": "sha1-y8bLOuY8emNe7w4l5PuvWsNm7qo=", + "dev": true, + "requires": { + "babel-runtime": "6.x", + "classnames": "^2.2.5" + } + }, "rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", @@ -19228,6 +28902,21 @@ "aproba": "^1.1.1" } }, + "rx-lite": { + "version": "4.0.8", + "resolved": "http://r.cnpmjs.org/rx-lite/download/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "http://r.cnpmjs.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, "rxjs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", @@ -19320,6 +29009,24 @@ } } }, + "sanitize-html": { + "version": "1.20.1", + "resolved": "http://r.cnpmjs.org/sanitize-html/download/sanitize-html-1.20.1.tgz", + "integrity": "sha1-9u/99V3TmIBxcSFaYr/CGBG6z4U=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "htmlparser2": "^3.10.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.mergewith": "^4.6.1", + "postcss": "^7.0.5", + "srcset": "^1.0.0", + "xtend": "^4.0.1" + } + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -19577,6 +29284,16 @@ "ajv-keywords": "^3.1.0" } }, + "scroll-behavior": { + "version": "0.9.10", + "resolved": "http://r.cnpmjs.org/scroll-behavior/download/scroll-behavior-0.9.10.tgz", + "integrity": "sha1-yJU63us1hgYLkDMo2GCqg0bWKGE=", + "dev": true, + "requires": { + "dom-helpers": "^3.2.1", + "invariant": "^2.2.2" + } + }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", @@ -19598,6 +29315,47 @@ } } }, + "section-matter": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/section-matter/download/section-matter-1.0.0.tgz", + "integrity": "sha1-6QQZU1BngOwB1Z8pKhnHuFC4QWc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "http://r.cnpmjs.org/seek-bzip/download/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "requires": { + "commander": "~2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "http://r.cnpmjs.org/commander/download/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, "seekout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/seekout/-/seekout-1.0.2.tgz", @@ -19638,6 +29396,30 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "semver-diff": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/semver-diff/download/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "semver-regex": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/semver-regex/download/semver-regex-2.0.0.tgz", + "integrity": "sha1-qTwsWERTmncCMzeRB7OMe0rJ0zg=", + "dev": true + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/semver-truncate/download/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", @@ -19833,6 +29615,12 @@ } } }, + "shallow-compare": { + "version": "1.2.2", + "resolved": "http://r.cnpmjs.org/shallow-compare/download/shallow-compare-1.2.2.tgz", + "integrity": "sha1-+keUYnv0VaR8T1aIHYphMtWB/9s=", + "dev": true + }, "shallow-equal": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz", @@ -19845,6 +29633,79 @@ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", "dev": true }, + "sharp": { + "version": "0.23.2", + "resolved": "http://r.cnpmjs.org/sharp/download/sharp-0.23.2.tgz", + "integrity": "sha1-X4t3UTqh9+TQ3ZaaOQTO11SGwdc=", + "dev": true, + "requires": { + "color": "^3.1.2", + "detect-libc": "^1.0.3", + "nan": "^2.14.0", + "npmlog": "^4.1.2", + "prebuild-install": "^5.3.2", + "semver": "^6.3.0", + "simple-get": "^3.1.0", + "tar": "^5.0.5", + "tunnel-agent": "^0.6.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/fs-minipass/download/fs-minipass-2.0.0.tgz", + "integrity": "sha1-pkFe2rAvrkuekjC8h+4uRHIAPNE=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/minipass/download/minipass-3.1.1.tgz", + "integrity": "sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU=", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/minizlib/download/minizlib-2.1.0.tgz", + "integrity": "sha1-/VLGRTAe8JpjosIJaXwpTGzgLPM=", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "tar": { + "version": "5.0.5", + "resolved": "http://r.cnpmjs.org/tar/download/tar-5.0.5.tgz", + "integrity": "sha1-A/zbcQW8jqPObIZkK5yUJJWwT5M=", + "dev": true, + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^0.5.0", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + } + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -19883,12 +29744,24 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, + "sift": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/sift/download/sift-5.1.0.tgz", + "integrity": "sha1-G78t+w63HlbEzH+1Z/vRNRtlAV4=", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "signedsource": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/signedsource/download/signedsource-1.0.0.tgz", + "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=", + "dev": true + }, "simple-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", @@ -19906,6 +29779,23 @@ "simple-concat": "^1.0.0" } }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "http://r.cnpmjs.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "http://r.cnpmjs.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + } + } + }, "simplebar": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-4.2.3.tgz", @@ -20075,6 +29965,162 @@ } } }, + "socket.io": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/socket.io/download/socket.io-2.3.0.tgz", + "integrity": "sha1-zXYu1qT67KWbwfPiQ8CWkxHrc/s=", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/socket.io-adapter/download/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "http://r.cnpmjs.org/socket.io-client/download/socket.io-client-2.3.0.tgz", + "integrity": "sha1-FNW6LgC5vNFFrkQ6uWs/hsvMG7Q=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/isarray/download/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "http://r.cnpmjs.org/socket.io-parser/download/socket.io-parser-3.3.0.tgz", + "integrity": "sha1-K1KpalCf3zFEC6QP7WCUx9TxJi8=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/debug/download/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.0", + "resolved": "http://r.cnpmjs.org/socket.io-parser/download/socket.io-parser-3.4.0.tgz", + "integrity": "sha1-Nwu0oVHfL3fOM0X/VacHLMbpVlo=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/component-emitter/download/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/isarray/download/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, "sockjs": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", @@ -20167,6 +30213,15 @@ "is-plain-obj": "^1.0.0" } }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/sort-keys-length/download/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "requires": { + "sort-keys": "^1.0.0" + } + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -20365,6 +30420,54 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "squeak": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/squeak/download/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "http://r.cnpmjs.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "srcset": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/srcset/download/srcset-1.0.0.tgz", + "integrity": "sha1-pWad4StC87HV6D7QPHEEb8SPQe8=", + "dev": true, + "requires": { + "array-uniq": "^1.0.2", + "number-is-nan": "^1.0.0" + } + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -20397,12 +30500,24 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, + "stack-trace": { + "version": "0.0.10", + "resolved": "http://r.cnpmjs.org/stack-trace/download/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "stack-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", "dev": true }, + "stackframe": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/stackframe/download/stackframe-1.1.0.tgz", + "integrity": "sha1-4/wuuRIllHnJgi99Hx/zZb1cvIM=", + "dev": true + }, "state-toggle": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", @@ -20490,6 +30605,15 @@ "xtend": "^4.0.0" } }, + "stream-parser": { + "version": "0.3.1", + "resolved": "http://r.cnpmjs.org/stream-parser/download/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "dev": true, + "requires": { + "debug": "2" + } + }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", @@ -20508,6 +30632,12 @@ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, + "string-convert": { + "version": "0.2.1", + "resolved": "http://r.cnpmjs.org/string-convert/download/string-convert-0.2.1.tgz", + "integrity": "sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c=", + "dev": true + }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -20535,6 +30665,19 @@ } } }, + "string-similarity": { + "version": "1.2.2", + "resolved": "http://r.cnpmjs.org/string-similarity/download/string-similarity-1.2.2.tgz", + "integrity": "sha1-mbLCCjybuzkDlk6uHYmFbbPY25s=", + "dev": true, + "requires": { + "lodash.every": "^4.6.0", + "lodash.flattendeep": "^4.4.0", + "lodash.foreach": "^4.5.0", + "lodash.map": "^4.6.0", + "lodash.maxby": "^4.6.0" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -20659,6 +30802,31 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/strip-bom-string/download/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "http://r.cnpmjs.org/strip-comments/download/strip-comments-1.0.2.tgz", + "integrity": "sha1-grnEXn8FhzvuU/NxaK+TCqNoZ50=", + "dev": true, + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/strip-dirs/download/strip-dirs-2.1.0.tgz", + "integrity": "sha1-SYdzYmT8NEzyD2w0rKnRPR1O1sU=", + "dev": true, + "requires": { + "is-natural-number": "^4.0.1" + } + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -20683,6 +30851,21 @@ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true }, + "strip-outer": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/strip-outer/download/strip-outer-1.0.1.tgz", + "integrity": "sha1-sv0qv2YEudHmATBXGV34Nrip1jE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/strip-url-auth/download/strip-url-auth-1.0.1.tgz", + "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", + "dev": true + }, "strong-log-transformer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", @@ -20730,6 +30913,15 @@ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, + "style-to-object": { + "version": "0.2.3", + "resolved": "http://r.cnpmjs.org/style-to-object/download/style-to-object-0.2.3.tgz", + "integrity": "sha1-r89CvAOEax4xGIDFVjKiatJ4C8s=", + "dev": true, + "requires": { + "inline-style-parser": "0.1.1" + } + }, "styled-components": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.4.10.tgz", @@ -20780,6 +30972,39 @@ } } }, + "stylehacks": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "http://r.cnpmjs.org/dot-prop/download/dot-prop-4.2.0.tgz", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "http://r.cnpmjs.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, "stylelint": { "version": "9.10.1", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.10.1.tgz", @@ -21160,6 +31385,12 @@ "has-symbols": "^1.0.0" } }, + "synchronous-promise": { + "version": "1.0.18", + "resolved": "http://r.cnpmjs.org/synchronous-promise/download/synchronous-promise-1.0.18.tgz", + "integrity": "sha1-k26HY+ZVQIjNz3jcZPdHO5cvzvw=", + "dev": true + }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -21339,6 +31570,16 @@ } } }, + "tempfile": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/tempfile/download/tempfile-2.0.0.tgz", + "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "dev": true, + "requires": { + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + } + }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", @@ -21534,6 +31775,12 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "timed-out": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/timed-out/download/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "timers-browserify": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", @@ -21543,6 +31790,18 @@ "setimmediate": "^1.0.4" } }, + "timm": { + "version": "1.6.2", + "resolved": "http://r.cnpmjs.org/timm/download/timm-1.6.2.tgz", + "integrity": "sha1-39jGcZ97ofz8YpWjJnChxtFmwL0=", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "http://r.cnpmjs.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, "tiny-emitter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", @@ -21571,12 +31830,24 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, + "to-array": { + "version": "0.1.4", + "resolved": "http://r.cnpmjs.org/to-array/download/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, + "to-buffer": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/to-buffer/download/to-buffer-1.1.1.tgz", + "integrity": "sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA=", + "dev": true + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -21676,6 +31947,12 @@ "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, + "trim-lines": { + "version": "1.1.2", + "resolved": "http://r.cnpmjs.org/trim-lines/download/trim-lines-1.1.2.tgz", + "integrity": "sha1-yK29va4hu1wnZiQKZh9pOv4j5Zs=", + "dev": true + }, "trim-newlines": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", @@ -21688,6 +31965,15 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/trim-repeated/download/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "trim-trailing-lines": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", @@ -21846,6 +32132,18 @@ "mime-types": "~2.1.24" } }, + "type-name": { + "version": "2.0.2", + "resolved": "http://r.cnpmjs.org/type-name/download/type-name-2.0.2.tgz", + "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", + "dev": true + }, + "type-of": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/type-of/download/type-of-2.0.1.tgz", + "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=", + "dev": true + }, "typed-styles": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", @@ -21858,6 +32156,15 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "http://r.cnpmjs.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "3.7.0-dev.20191021", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.0-dev.20191021.tgz", @@ -21900,6 +32207,44 @@ "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", "dev": true }, + "unbzip2-stream": { + "version": "1.3.3", + "resolved": "http://r.cnpmjs.org/unbzip2-stream/download/unbzip2-stream-1.3.3.tgz", + "integrity": "sha1-0VbSBeZw2NjDk+HALr1QZCKHP2o=", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.4.3", + "resolved": "http://r.cnpmjs.org/buffer/download/buffer-5.4.3.tgz", + "integrity": "sha1-P7ycaetxPTI+P8Gole7gcQwHIRU=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "http://r.cnpmjs.org/unc-path-regex/download/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "http://r.cnpmjs.org/underscore.string/download/underscore.string-3.3.5.tgz", + "integrity": "sha1-/CrSVbi9MJ4jnLxYFv0jqbfqQCM=", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, "unfetch": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", @@ -21978,6 +32323,12 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, + "uniqs": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", @@ -21996,6 +32347,113 @@ "imurmurhash": "^0.1.4" } }, + "unique-string": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/unique-string/download/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unist-builder": { + "version": "1.0.4", + "resolved": "http://r.cnpmjs.org/unist-builder/download/unist-builder-1.0.4.tgz", + "integrity": "sha1-4YCK7TC9cq3DYH8lr+zr703Vnhc=", + "dev": true, + "requires": { + "object-assign": "^4.1.0" + } + }, + "unist-util-find": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/unist-util-find/download/unist-util-find-1.0.1.tgz", + "integrity": "sha1-EGK7tpKMepfGrcibU3RdTEbCIqI=", + "dev": true, + "requires": { + "lodash.iteratee": "^4.5.0", + "remark": "^5.0.1", + "unist-util-visit": "^1.1.0" + }, + "dependencies": { + "longest-streak": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/longest-streak/download/longest-streak-1.0.0.tgz", + "integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=", + "dev": true + }, + "markdown-table": { + "version": "0.4.0", + "resolved": "http://r.cnpmjs.org/markdown-table/download/markdown-table-0.4.0.tgz", + "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=", + "dev": true + }, + "remark": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/remark/download/remark-5.1.0.tgz", + "integrity": "sha1-y0Y709vLS5l5STXu4c9x16jjBow=", + "dev": true, + "requires": { + "remark-parse": "^1.1.0", + "remark-stringify": "^1.1.0", + "unified": "^4.1.1" + } + }, + "remark-parse": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/remark-parse/download/remark-parse-1.1.0.tgz", + "integrity": "sha1-w8oQ+ajaBGFcKPCapOMEUQUm7CE=", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.0", + "extend": "^3.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0" + } + }, + "remark-stringify": { + "version": "1.1.0", + "resolved": "http://r.cnpmjs.org/remark-stringify/download/remark-stringify-1.1.0.tgz", + "integrity": "sha1-pxBeJbnuK/mkm3XSxCPxGwauIJI=", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "extend": "^3.0.0", + "longest-streak": "^1.0.0", + "markdown-table": "^0.4.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4" + } + }, + "unified": { + "version": "4.2.1", + "resolved": "http://r.cnpmjs.org/unified/download/unified-4.2.1.tgz", + "integrity": "sha1-dv9Dqo2kMPbn5KVchOusKtLPzS4=", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "has": "^1.0.1", + "once": "^1.3.3", + "trough": "^1.0.0", + "vfile": "^1.0.0" + } + }, + "vfile": { + "version": "1.4.0", + "resolved": "http://r.cnpmjs.org/vfile/download/vfile-1.4.0.tgz", + "integrity": "sha1-wP1vpIT43r23cfaMMe112I2pf+c=", + "dev": true + } + } + }, "unist-util-find-all-after": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz", @@ -22005,12 +32463,33 @@ "unist-util-is": "^3.0.0" } }, + "unist-util-generated": { + "version": "1.1.4", + "resolved": "http://r.cnpmjs.org/unist-util-generated/download/unist-util-generated-1.1.4.tgz", + "integrity": "sha1-ImHAM9n8I/rkGHLNt2Y3Rulywac=", + "dev": true + }, "unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", "dev": true }, + "unist-util-modify-children": { + "version": "1.1.4", + "resolved": "http://r.cnpmjs.org/unist-util-modify-children/download/unist-util-modify-children-1.1.4.tgz", + "integrity": "sha1-+d0x6TiEw74GtDySkdYDJNXfX2g=", + "dev": true, + "requires": { + "array-iterate": "^1.0.0" + } + }, + "unist-util-position": { + "version": "3.0.3", + "resolved": "http://r.cnpmjs.org/unist-util-position/download/unist-util-position-3.0.3.tgz", + "integrity": "sha1-//lCuHlTiyQglsFIFTgmZksco3M=", + "dev": true + }, "unist-util-remove-position": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz", @@ -22020,6 +32499,17 @@ "unist-util-visit": "^1.1.0" } }, + "unist-util-select": { + "version": "1.5.0", + "resolved": "http://r.cnpmjs.org/unist-util-select/download/unist-util-select-1.5.0.tgz", + "integrity": "sha1-qTwr6MD2U4J4A7gTMa3sKqJM2TM=", + "dev": true, + "requires": { + "css-selector-parser": "^1.1.0", + "debug": "^2.2.0", + "nth-check": "^1.0.1" + } + }, "unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", @@ -22035,6 +32525,12 @@ "unist-util-visit-parents": "^2.0.0" } }, + "unist-util-visit-children": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/unist-util-visit-children/download/unist-util-visit-children-1.1.3.tgz", + "integrity": "sha1-krpYB+P1Rje+XelQJj+UaJQudQM=", + "dev": true + }, "unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", @@ -22111,12 +32607,120 @@ } } }, + "unzip-response": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/unzip-response/download/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-notifier": { + "version": "2.5.0", + "resolved": "http://r.cnpmjs.org/update-notifier/download/update-notifier-2.5.0.tgz", + "integrity": "sha1-0HRFk+E/Fh5AassdlAi3LK0Ir/Y=", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-align": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/ansi-align/download/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "boxen": { + "version": "1.3.0", + "resolved": "http://r.cnpmjs.org/boxen/download/boxen-1.3.0.tgz", + "integrity": "sha1-VcbDmouljZxhrSLNh3Uy3rZlogs=", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "http://r.cnpmjs.org/ci-info/download/ci-info-1.6.0.tgz", + "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", + "dev": true + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/cli-boxes/download/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/import-lazy/download/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "http://r.cnpmjs.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -22195,12 +32799,36 @@ "requires-port": "^1.0.0" } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "http://r.cnpmjs.org/url-parse-lax/download/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/url-to-options/download/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "utif": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/utif/download/utif-2.0.1.tgz", + "integrity": "sha1-nhWC2bvSABGmWIVI7TJmKY5xF1k=", + "dev": true, + "requires": { + "pako": "^1.0.5" + } + }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -22267,6 +32895,12 @@ "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", "dev": true }, + "valid-url": { + "version": "1.0.9", + "resolved": "http://r.cnpmjs.org/valid-url/download/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -22292,6 +32926,12 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vendors": { + "version": "1.0.3", + "resolved": "http://r.cnpmjs.org/vendors/download/vendors-1.0.3.tgz", + "integrity": "sha1-pkZ3gavTZiF8BQ+CAuflDMnu+MA=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -22344,6 +32984,12 @@ "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", "dev": true }, + "void-elements": { + "version": "2.0.1", + "resolved": "http://r.cnpmjs.org/void-elements/download/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", @@ -22400,6 +33046,12 @@ "defaults": "^1.0.3" } }, + "web-namespaces": { + "version": "1.1.3", + "resolved": "http://r.cnpmjs.org/web-namespaces/download/web-namespaces-1.1.3.tgz", + "integrity": "sha1-m79cmf8JCNLaAx8dcySSqWVxqD8=", + "dev": true + }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -23102,6 +33754,12 @@ } } }, + "webpack-stats-plugin": { + "version": "0.3.0", + "resolved": "http://r.cnpmjs.org/webpack-stats-plugin/download/webpack-stats-plugin-0.3.0.tgz", + "integrity": "sha1-aVL2P+uaU5OjKNd0+z7MrHjS9Rs=", + "dev": true + }, "websocket-driver": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", @@ -23271,6 +33929,31 @@ } } }, + "with-open-file": { + "version": "0.1.6", + "resolved": "http://r.cnpmjs.org/with-open-file/download/with-open-file-0.1.6.tgz", + "integrity": "sha1-C8F47Kt19rqsiuEcheB0RdaQ6lA=", + "dev": true, + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "p-try": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "http://r.cnpmjs.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -23283,6 +33966,182 @@ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, + "workbox-background-sync": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-background-sync/download/workbox-background-sync-4.3.1.tgz", + "integrity": "sha1-JoIbm/Funjf9HWQCie3dwIr9GVA=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-broadcast-update": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-broadcast-update/download/workbox-broadcast-update-4.3.1.tgz", + "integrity": "sha1-4sAoCxSeOlBJg7dXYGrQQfMyw1s=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-build": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-build/download/workbox-build-4.3.1.tgz", + "integrity": "sha1-QU9w+01t5H9lOGCLgOxSQS0jPmQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.4", + "@hapi/joi": "^15.0.0", + "common-tags": "^1.8.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.3", + "lodash.template": "^4.4.0", + "pretty-bytes": "^5.1.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^4.3.1", + "workbox-broadcast-update": "^4.3.1", + "workbox-cacheable-response": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-expiration": "^4.3.1", + "workbox-google-analytics": "^4.3.1", + "workbox-navigation-preload": "^4.3.1", + "workbox-precaching": "^4.3.1", + "workbox-range-requests": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1", + "workbox-streams": "^4.3.1", + "workbox-sw": "^4.3.1", + "workbox-window": "^4.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "http://r.cnpmjs.org/fs-extra/download/fs-extra-4.0.3.tgz", + "integrity": "sha1-DYUhIuW8W+tFP7Ao6cDJvzY0DJQ=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "workbox-cacheable-response": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-cacheable-response/download/workbox-cacheable-response-4.3.1.tgz", + "integrity": "sha1-9T4HkXnAlaPxnlMTsoSXXJFCjJE=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-core": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-core/download/workbox-core-4.3.1.tgz", + "integrity": "sha1-AF0sagahcUN6/WyikEpXJ+zXO+Y=", + "dev": true + }, + "workbox-expiration": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-expiration/download/workbox-expiration-4.3.1.tgz", + "integrity": "sha1-15BDNWICnlaDfzQdf1U8Snjr6SE=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-google-analytics": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-google-analytics/download/workbox-google-analytics-4.3.1.tgz", + "integrity": "sha1-ntoBg7EDiQtcJW5vTqFaHxVIUZo=", + "dev": true, + "requires": { + "workbox-background-sync": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1" + } + }, + "workbox-navigation-preload": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-navigation-preload/download/workbox-navigation-preload-4.3.1.tgz", + "integrity": "sha1-Kcjk21hDgDs0zZbcFV+evZr6RT0=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-precaching": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-precaching/download/workbox-precaching-4.3.1.tgz", + "integrity": "sha1-n8Re0SLZS74fDqlYT/WUCWB3HLo=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-range-requests": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-range-requests/download/workbox-range-requests-4.3.1.tgz", + "integrity": "sha1-+KRwGIkiFFy/DAmpotXjVkUkTnQ=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-routing": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-routing/download/workbox-routing-4.3.1.tgz", + "integrity": "sha1-pnWEGvYj4LsMZ85O2OckrAvtDNo=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-strategies": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-strategies/download/workbox-strategies-4.3.1.tgz", + "integrity": "sha1-0r4DxO8hTBFeGrKcnHWcn+Pp5kY=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-streams": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-streams/download/workbox-streams-4.3.1.tgz", + "integrity": "sha1-C1facOmCVy3gnIdC3Qy0Cmt8LMM=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-sw": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-sw/download/workbox-sw-4.3.1.tgz", + "integrity": "sha1-32njlcR5700USZNyvNhMD14kYWQ=", + "dev": true + }, + "workbox-window": { + "version": "4.3.1", + "resolved": "http://r.cnpmjs.org/workbox-window/download/workbox-window-4.3.1.tgz", + "integrity": "sha1-7mBRvxDwavpUg8m436BTGZTt4PM=", + "dev": true, + "requires": { + "workbox-core": "^4.3.1" + } + }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", @@ -23516,17 +34375,88 @@ "path-extra": "^1.0.2" } }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/xdg-basedir/download/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xhr": { + "version": "2.5.0", + "resolved": "http://r.cnpmjs.org/xhr/download/xhr-2.5.0.tgz", + "integrity": "sha1-vtjRZ21co2EIZnaSt0sxbEluSd0=", + "dev": true, + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "http://r.cnpmjs.org/global/download/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "process": { + "version": "0.5.2", + "resolved": "http://r.cnpmjs.org/process/download/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + } + } + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "http://r.cnpmjs.org/xml-parse-from-string/download/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", + "dev": true + }, + "xml2js": { + "version": "0.4.22", + "resolved": "http://r.cnpmjs.org/xml2js/download/xml2js-0.4.22.tgz", + "integrity": "sha1-T6LYRuyAMjfehvMKqbX3C2YA3gI=", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "util.promisify": "~1.0.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "http://r.cnpmjs.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz", + "integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM=", + "dev": true + }, "xmldom": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "http://r.cnpmjs.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xstate": { + "version": "4.6.7", + "resolved": "http://r.cnpmjs.org/xstate/download/xstate-4.6.7.tgz", + "integrity": "sha1-HzJd8H11Z2yQ1lsXo6VmkvJZ/UE=", + "dev": true + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -23545,6 +34475,15 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yaml-loader": { + "version": "0.5.0", + "resolved": "http://r.cnpmjs.org/yaml-loader/download/yaml-loader-0.5.0.tgz", + "integrity": "sha1-hrGYLYSo5CnmZH2T3poBaeHBWCc=", + "dev": true, + "requires": { + "js-yaml": "^3.5.2" + } + }, "yargs": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", @@ -23664,6 +34603,256 @@ "requires": { "camelcase": "^4.1.0" } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "http://r.cnpmjs.org/yauzl/download/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "http://r.cnpmjs.org/yeast/download/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yoga-layout-prebuilt": { + "version": "1.9.3", + "resolved": "http://r.cnpmjs.org/yoga-layout-prebuilt/download/yoga-layout-prebuilt-1.9.3.tgz", + "integrity": "sha1-EeO+KQlq/jwoTl2WPMLWKBSME3I=", + "dev": true, + "optional": true + }, + "yup": { + "version": "0.24.1", + "resolved": "http://r.cnpmjs.org/yup/download/yup-0.24.1.tgz", + "integrity": "sha1-LIqBtfkp7ymq93qLfJrPpSq2p9E=", + "dev": true, + "requires": { + "case": "^1.2.1", + "fn-name": "~1.0.1", + "lodash": "^4.17.0", + "property-expr": "^1.2.0", + "synchronous-promise": "^1.0.18", + "toposort": "^0.2.10", + "type-name": "^2.0.1" + }, + "dependencies": { + "toposort": { + "version": "0.2.12", + "resolved": "http://r.cnpmjs.org/toposort/download/toposort-0.2.12.tgz", + "integrity": "sha1-x9KYTz1IwhcxXMMtdwiIt3lJHoE=", + "dev": true + } + } + }, + "yurnalist": { + "version": "1.1.1", + "resolved": "http://r.cnpmjs.org/yurnalist/download/yurnalist-1.1.1.tgz", + "integrity": "sha1-cB/qTWoC96RNV7wNz3UThZBUncs=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "chalk": "^2.4.2", + "cli-table3": "^0.5.1", + "debug": "^4.1.1", + "deep-equal": "^1.1.0", + "detect-indent": "^6.0.0", + "inquirer": "^7.0.0", + "invariant": "^2.2.0", + "is-builtin-module": "^3.0.0", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "loud-rejection": "^2.2.0", + "node-emoji": "^1.10.0", + "object-path": "^0.11.2", + "read": "^1.0.7", + "rimraf": "^3.0.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.2.1", + "resolved": "http://r.cnpmjs.org/ansi-escapes/download/ansi-escapes-4.2.1.tgz", + "integrity": "sha1-TczbhGw+7hD21k3qZic+q5DDcig=", + "dev": true, + "requires": { + "type-fest": "^0.5.2" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/cli-cursor/download/cli-cursor-3.1.0.tgz", + "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "http://r.cnpmjs.org/debug/download/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "http://r.cnpmjs.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "figures": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/figures/download/figures-3.1.0.tgz", + "integrity": "sha1-SxmN0H2NcVMGQoZK8tRd2eRZxOw=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "inquirer": { + "version": "7.0.0", + "resolved": "http://r.cnpmjs.org/inquirer/download/inquirer-7.0.0.tgz", + "integrity": "sha1-nisDLd532h2124BHWLj+o6lwUZo=", + "dev": true, + "requires": { + "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" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "http://r.cnpmjs.org/loud-rejection/download/loud-rejection-2.2.0.tgz", + "integrity": "sha1-QlXrbpx0BFsO3AIfpzl6tlWoUXw=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "http://r.cnpmjs.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "http://r.cnpmjs.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "http://r.cnpmjs.org/mute-stream/download/mute-stream-0.0.8.tgz", + "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "http://r.cnpmjs.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "http://r.cnpmjs.org/restore-cursor/download/restore-cursor-3.1.0.tgz", + "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "3.0.0", + "resolved": "http://r.cnpmjs.org/rimraf/download/rimraf-3.0.0.tgz", + "integrity": "sha1-YUF21LMBC3Xlw5DrDulvbcDOu5s=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "http://r.cnpmjs.org/semver/download/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "4.1.0", + "resolved": "http://r.cnpmjs.org/string-width/download/string-width-4.1.0.tgz", + "integrity": "sha1-uoRtHaqXw8WWFVMIBj4HXtHJmv8=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "http://r.cnpmjs.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "http://r.cnpmjs.org/strip-bom/download/strip-bom-4.0.0.tgz", + "integrity": "sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=", + "dev": true + }, + "type-fest": { + "version": "0.5.2", + "resolved": "http://r.cnpmjs.org/type-fest/download/type-fest-0.5.2.tgz", + "integrity": "sha1-1u9CoDVsbNRfSUhcO2KB/BSOSKI=", + "dev": true + } + } + }, + "zwitch": { + "version": "1.0.4", + "resolved": "http://r.cnpmjs.org/zwitch/download/zwitch-1.0.4.tgz", + "integrity": "sha1-k7G5k7E8iSZ1OkGvr48nu/rGvos=", + "dev": true } } } diff --git a/package.json b/package.json index 9b2c796cb2..bfc9d4ca78 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,11 @@ { "private": true, + "repository": { + "type": "git", + "url": "https://github.com/antvis/L7" + }, "devDependencies": { + "@antv/gatsby-theme-antv": "^0.9.7", "@babel/cli": "^7.6.4", "@babel/core": "^7.6.4", "@babel/plugin-proposal-decorators": "^7.6.0", @@ -33,6 +38,7 @@ "babel-plugin-css-modules-transform": "^1.6.2", "babel-plugin-inline-import": "^3.0.0", "babel-plugin-transform-postcss": "^0.3.0", + "babel-preset-gatsby": "^0.2.20", "clean-webpack-plugin": "^0.1.19", "commitizen": "^4.0.3", "copy-webpack-plugin": "^4.5.2", @@ -43,6 +49,8 @@ "enzyme": "^3.6.0", "enzyme-adapter-react-16": "^1.5.0", "enzyme-to-json": "^3.0.0-beta6", + "gatsby": "^2.17.7", + "gh-pages": "^2.1.1", "gl": "^4.4.0", "html-webpack-plugin": "^3.2.0", "husky": "^3.0.9", @@ -59,6 +67,7 @@ "react": "^16.8.6", "react-docgen-typescript-loader": "^3.1.0", "react-dom": "^16.8.6", + "react-i18next": "^11.0.1", "rimraf": "^2.6.2", "sass-loader": "^7.1.0", "style-loader": "^1.0.0", @@ -81,6 +90,11 @@ "worker-loader": "^2.0.0" }, "scripts": { + "start": "export NODE_ENV=site && npm run site:develop", + "site:develop": "gatsby develop --open -H 0.0.0.0", + "site:build": "npm run site:clean && export NODE_ENV=site && gatsby build --prefix-paths", + "site:clean": "gatsby clean", + "site:deploy": "npm run site:build && gh-pages -d public", "prebuild": "run-p tsc lint", "build": "lerna exec --parallel 'BABEL_ENV=build babel src --root-mode upward --out-dir dist --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments'", "postbuild": "yarn build:declarations", diff --git a/packages/component/src/control/BaseControl.ts b/packages/component/src/control/BaseControl.ts index 17fe8b01cc..d3ce12e732 100644 --- a/packages/component/src/control/BaseControl.ts +++ b/packages/component/src/control/BaseControl.ts @@ -1,6 +1,14 @@ -import { IControlService, IMapService, lazyInject, TYPES } from '@l7/core'; +import { + IControlService, + ILayerService, + IMapService, + IRendererService, + lazyInject, + TYPES, +} from '@l7/core'; import { DOM } from '@l7/utils'; import { EventEmitter } from 'eventemitter3'; +import { inject } from 'inversify'; export enum PositionType { 'TOPRIGHT' = 'topright', @@ -20,9 +28,15 @@ export interface IControlOption { export default class Control extends EventEmitter { public controlOption: IControlOption; protected mapsService: IMapService; + protected container: HTMLElement; + + @lazyInject(TYPES.IRendererService) + protected readonly renderService: IRendererService; + @lazyInject(TYPES.ILayerService) + protected readonly layerService: ILayerService; @lazyInject(TYPES.IControlService) private readonly controlService: IControlService; - private container: HTMLElement; + private isShow: boolean; constructor(cfg?: Partial) { diff --git a/packages/component/src/control/layer.ts b/packages/component/src/control/layer.ts index ff8b233c95..9aaab7ee7a 100644 --- a/packages/component/src/control/layer.ts +++ b/packages/component/src/control/layer.ts @@ -10,12 +10,22 @@ export interface ILayerControlOption extends IControlOption { autoZIndex: boolean; hideSingleBase: boolean; sortLayers: boolean; + + sortFunction: (...args: any[]) => any; +} +interface IInputItem extends HTMLInputElement { + layerId: string; } export default class Layers extends Control { private layerControlInputs: any[]; private layers: any[]; private lastZIndex: number; private handlingClick: boolean; + private layersLink: HTMLElement; + private baseLayersList: HTMLElement; + private separator: HTMLElement; + private overlaysList: HTMLElement; + private form: HTMLElement; constructor(cfg: Partial) { super(cfg); @@ -23,16 +33,25 @@ export default class Layers extends Control { this.layers = []; this.lastZIndex = 0; this.handlingClick = false; - // const baseLayers = this.get('baseLayers'); - // const overlays = this.get('overlayers'); - // for (const i in baseLayers) { - // this._addLayer(baseLayers[i], i); - // } + const { baseLayers = {}, overlayers = {} } = this.controlOption; - // for (const i in overlays) { - // this._addLayer(overlays[i], i, true); - // } - // bindAll([ '_checkDisabledLayers', '_onLayerChange', 'collapse', 'extend', 'expand', '_onInputClick' ], this); + Object.keys(baseLayers).forEach((name: string, index: number) => { + this.addLayer(baseLayers[name], name, false); + }); + Object.keys(overlayers).forEach((name: any, index: number) => { + this.addLayer(overlayers[name], name, true); + }); + bindAll( + [ + 'checkDisabledLayers', + 'onLayerChange', + 'collapse', + 'extend', + 'expand', + 'onInputClick', + ], + this, + ); } public getDefault() { @@ -44,4 +63,248 @@ export default class Layers extends Control { sortLayers: false, }; } + public onAdd(MapService: IMapService) { + this.initLayout(); + this.update(); + this.mapsService.on('zoomend', this.checkDisabledLayers); + this.layers.forEach((layerItem) => { + layerItem.layer.on('remove', this.onLayerChange); + layerItem.layer.on('add', this.onLayerChange); + }); + return this.container; + } + + public addVisualLayer(layer: any, name: string | number) { + this.addLayer(layer, name, true); + return this.mapsService ? this.update() : this; + } + public expand() { + const { height } = this.renderService.getViewportSize(); + DOM.addClass(this.container, 'l7-control-layers-expanded'); + this.form.style.height = 'null'; + const acceptableHeight = height - (this.container.offsetTop + 50); + if (acceptableHeight < this.form.clientHeight) { + DOM.addClass(this.form, 'l7-control-layers-scrollbar'); + this.form.style.height = acceptableHeight + 'px'; + } else { + DOM.removeClass(this.form, 'l7-control-layers-scrollbar'); + } + this.checkDisabledLayers(); + return this; + } + + public collapse() { + DOM.removeClass(this.container, 'l7-control-layers-expanded'); + return this; + } + + private initLayout() { + const className = 'l7-control-layers'; + const container = (this.container = DOM.create('div', className)); + const { collapsed } = this.controlOption; + + // makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released + container.setAttribute('aria-haspopup', 'true'); + + const form = (this.form = DOM.create( + 'form', + className + '-list', + ) as HTMLElement); + + if (collapsed) { + this.mapsService.on('click', this.collapse); + container.addEventListener('mouseenter', this.expand); + container.addEventListener('mouseleave', this.collapse); + } + + this.layersLink = DOM.create('a', className + '-toggle', container); + const link = this.layersLink; + // link.href = '#'; + link.title = 'Layers'; + if (!collapsed) { + this.expand(); + } + + this.baseLayersList = DOM.create('div', className + '-base', form); + this.separator = DOM.create('div', className + '-separator', form); + this.overlaysList = DOM.create('div', className + '-overlays', form); + container.appendChild(form); + } + + private update() { + if (!this.container) { + return this; + } + + DOM.empty(this.baseLayersList); + DOM.empty(this.overlaysList); + + this.layerControlInputs = []; + let baseLayersPresent; + let overlaysPresent; + let i; + let obj; + let baseLayersCount = 0; + + for (i = 0; i < this.layers.length; i++) { + obj = this.layers[i]; + this.addItem(obj); + overlaysPresent = overlaysPresent || obj.overlay; + baseLayersPresent = baseLayersPresent || !obj.overlay; + baseLayersCount += !obj.overlay ? 1 : 0; + } + + // Hide base layers section if there's only one layer. + if (this.controlOption.hideSingleBase) { + baseLayersPresent = baseLayersPresent && baseLayersCount > 1; + this.baseLayersList.style.display = baseLayersPresent ? '' : 'none'; + } + + this.separator.style.display = + overlaysPresent && baseLayersPresent ? '' : 'none'; + + return this; + } + + private checkDisabledLayers() { + const inputs = this.layerControlInputs; + let input: IInputItem; + let layer; + const zoom = this.mapsService.getZoom(); + + for (let i = inputs.length - 1; i >= 0; i--) { + input = inputs[i]; + layer = this.layerService.getLayer(input.layerId); + if (layer) { + input.disabled = layer.visible && !layer.isVisible(); + } + } + } + + private addLayer(layer: any, name: string | number, overlay: boolean) { + if (this.mapsService) { + layer.on('add', this.onLayerChange); + layer.on('remove', this.onLayerChange); + } + this.layers.push({ + layer, + name, + overlay, + }); + const { sortLayers, sortFunction, autoZIndex } = this.controlOption; + if (sortLayers) { + this.layers.sort((a, b) => { + return sortFunction(a.layer, b.layer, a.name, b.name); + }); + } + + if (autoZIndex && layer.setZIndex) { + this.lastZIndex++; + layer.setZIndex(this.lastZIndex); + } + + this.expandIfNotCollapsed(); + } + + private expandIfNotCollapsed() { + if (this.mapsService && !this.controlOption.collapsed) { + this.expand(); + } + return this; + } + + private onLayerChange(e: any) { + if (!this.handlingClick) { + this.update(); + } + + const obj = this.layerService.getLayer(e.target.layerId); + + const type = obj.overlay + ? e.type === 'add' + ? 'overlayadd' + : 'overlayremove' + : e.type === 'add' + ? 'baselayerchange' + : null; + + if (type) { + this.emit(type, obj); // TODO:图 + } + } + + private createRadioElement(name: string, checked: boolean): ChildNode { + const radioHtml = + ''; + + const radioFragment = document.createElement('div'); + radioFragment.innerHTML = radioHtml; + + return radioFragment.firstChild as ChildNode; + } + + private addItem(obj: any) { + const label = document.createElement('label'); + const checked = + this.layerService.getLayer(obj.layer.id) && obj.layer.isVisible(); + let input: IInputItem; + + if (obj.overlay) { + input = document.createElement('input') as IInputItem; + input.type = 'checkbox'; + input.className = 'l7-control-layers-selector'; + input.defaultChecked = checked; + } else { + input = this.createRadioElement('l7-base-layers', checked) as IInputItem; + } + this.layerControlInputs.push(input); + input.layerId = obj.layer.id; + input.addEventListener('click', this.onInputClick); + + const name = document.createElement('span'); + name.innerHTML = ' ' + obj.name; + + const holder = document.createElement('div'); + + label.appendChild(holder); + holder.appendChild(input); + holder.appendChild(name); + + const container = obj.overlay ? this.overlaysList : this.baseLayersList; + container.appendChild(label); + + this.checkDisabledLayers(); + return label; + } + + private onInputClick() { + const inputs = this.layerControlInputs; + let input; + let layer; + const addedLayers = []; + const removedLayers = []; + this.handlingClick = true; + for (let i = inputs.length - 1; i >= 0; i--) { + input = inputs[i]; + layer = this.layerService.getLayer(input.layerId); + + if (input.checked) { + addedLayers.push(layer); + } else if (!input.checked) { + removedLayers.push(layer); + } + } + removedLayers.forEach((l: any) => { + l.hide(); + }); + addedLayers.forEach((l: any) => { + l.show(); + }); + + this.handlingClick = false; + } } diff --git a/packages/component/src/control/logo.ts b/packages/component/src/control/logo.ts new file mode 100644 index 0000000000..75b07eda59 --- /dev/null +++ b/packages/component/src/control/logo.ts @@ -0,0 +1,25 @@ +import { IMapService } from '@l7/core'; +import { bindAll, DOM } from '@l7/utils'; +import Control, { IControlOption, PositionType } from './BaseControl'; +export default class Logo extends Control { + public getDefault() { + return { + position: PositionType.BOTTOMLEFT, + }; + } + public onAdd(MapService: IMapService) { + const className = 'l7-control-logo'; + const container = DOM.create('div', className); + const anchor: HTMLLinkElement = DOM.create( + 'a', + 'l7-ctrl-logo', + ) as HTMLLinkElement; + anchor.target = '_blank'; + anchor.rel = 'noopener nofollow'; + anchor.href = 'https://antv.alipay.com/l7'; + anchor.setAttribute('aria-label', 'AntV logo'); + anchor.setAttribute('rel', 'noopener nofollow'); + container.appendChild(anchor); + return container; + } +} diff --git a/packages/component/src/css/l7.css b/packages/component/src/css/l7.css index 329ae393df..3026f3b9ca 100644 --- a/packages/component/src/css/l7.css +++ b/packages/component/src/css/l7.css @@ -279,7 +279,7 @@ .l7-right .l7-control { margin-right: 10px; } - + /* attribution and scale controls */ .l7-control-container .l7-control-attribution { @@ -350,6 +350,406 @@ background: #fff; border-radius: 5px; } +.l7-control-layers-toggle { + background-image: url(../images/layers.png); + width: 36px; + height: 36px; + } +.l7-retina .l7-control-layers-toggle { + background-image: url(../images/layers.png); + background-size: 26px 26px; + } +.l7-touch .l7-control-layers-toggle { + width: 44px; + height: 44px; + } +.l7-control-layers .l7-control-layers-list, +.l7-control-layers-expanded .l7-control-layers-toggle { + display: none; + } +.l7-control-layers-expanded .l7-control-layers-list { + display: block; + position: relative; + font-size: 19px; + padding: 8px; + } +.l7-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.l7-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.l7-cont.l7-marker { + position: absolute !important; + top: 0; + left: 0; + z-index: 5; +} +.l7-popup-anchor-top, +.l7-popup-anchor-top-left, +.l7-popup-anchor-top-right { + -webkit-flex-direction: column; + flex-direction: column; +} + +.l7-popup-anchor-bottom, +.l7-popup-anchor-bottom-left, +.l7-popup-anchor-bottom-right { + -webkit-flex-direction: column-reverse; + flex-direction: column-reverse; +} + +.l7-popup-anchor-left { + -webkit-flex-direction: row; + flex-direction: row; +} + +.l7-popup-anchor-right { + -webkit-flex-direction: row-reverse; + flex-direction: row-reverse; +} +.l7-popup { + position: absolute; + top: 0; + left: 0; + display: -webkit-flex; + display: flex; + will-change: transform; + pointer-events: none; + z-index: 5; +} +.l7-popup-tip { + width: 0; + height: 0; + border: 10px solid transparent; + z-index: 1; +} +.l7-popup-anchor-top .l7-popup-tip { + -webkit-align-self: center; + align-self: center; + border-top: none; + border-bottom-color: #fff; +} + +.l7-popup-anchor-top-left .l7-popup-tip { + -webkit-align-self: flex-start; + align-self: flex-start; + border-top: none; + border-left: none; + border-bottom-color: #fff; +} + +.l7-popup-anchor-top-right .l7-popup-tip { + -webkit-align-self: flex-end; + align-self: flex-end; + border-top: none; + border-right: none; + border-bottom-color: #fff; +} + +.l7-popup-anchor-bottom .l7-popup-tip { + -webkit-align-self: center; + align-self: center; + border-bottom: none; + border-top-color: #fff; +} + +.l7-popup-anchor-bottom-left .l7-popup-tip { + -webkit-align-self: flex-start; + align-self: flex-start; + border-bottom: none; + border-left: none; + border-top-color: #fff; +} + +.l7-popup-anchor-bottom-right .l7-popup-tip { + -webkit-align-self: flex-end; + align-self: flex-end; + border-bottom: none; + border-right: none; + border-top-color: #fff; +} + +.l7-popup-anchor-left .l7-popup-tip { + -webkit-align-self: center; + align-self: center; + border-left: none; + border-right-color: #fff; +} + +.l7-popup-anchor-right .l7-popup-tip { + -webkit-align-self: center; + align-self: center; + border-right: none; + border-left-color: #fff; +} + +.l7-popup-close-button { + position: absolute; + right: 0; + top: 0; + border: 0; + padding: 0; + font-size: 25px; + line-height: 20px; + border-radius: 0 3px 0 0; + cursor: pointer; + background-color: transparent; +} + +.l7-popup-close-button:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.l7-popup-content { + position: relative; + background: #fff; + border-radius: 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); + padding: 10px 10px 15px; + pointer-events: auto; +} + +.l7-popup-anchor-top-left .l7-popup-content { + border-top-left-radius: 0; +} + +.l7-popup-anchor-top-right .l7-popup-content { + border-top-right-radius: 0; +} + +.l7-popup-anchor-bottom-left .l7-popup-content { + border-bottom-left-radius: 0; +} + +.l7-popup-anchor-bottom-right .l7-popup-content { + border-bottom-right-radius: 0; +} + +.l7-popup-track-pointer { + display: none; +} + +.l7-popup-track-pointer * { + pointer-events: none; + user-select: none; +} + +.l7-map:hover .l7-popup-track-pointer { + display: flex; +} + +.l7-map:active .l7-popup-track-pointer { + display: none; +} + +.l7-popup-close-button { + position: absolute; + right: 0; + top: 0; + border: 0; + border-radius: 0 3px 0 0; + cursor: pointer; + background-color: transparent; +} + +.l7-popup-close-button:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.l7-popup-content { + position: relative; + background: #fff; + border-radius: 3px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); + padding: 10px 10px 15px; + pointer-events: auto; +} + +/* general toolbar styles */ + +.l7-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.l7-bar a, +.l7-bar a:hover { + background-color: #fff; + width: 36px; + height: 36px; + line-height: 30px; + font-size: 30px; + display: block; + text-align: center; + text-decoration: none; + color: #8E9DAB; + } +.l7-bar a, +.l7-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.l7-bar a:hover { + background-color: #f4f4f4; + } +.l7-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.l7-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.l7-bar a.l7-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + + +/* control positioning */ + +.l7-control-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; +} +.l7-control-hide { + display: none; +} +.l7-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.l7-top, +.l7-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.l7-top { + top: 0; + } +.l7-right { + right: 0; + } +.l7-bottom { + bottom: 0; + } +.l7-left { + left: 0; + } +.l7-control { + float: left; + clear: both; + } +.l7-right .l7-control { + float: right; + } +.l7-top .l7-control { + margin-top: 10px; + } +.l7-bottom .l7-control { + margin-bottom: 10px; + } +.l7-left .l7-control { + margin-left: 10px; + } +.l7-right .l7-control { + margin-right: 10px; + } + + /* attribution and scale controls */ + +.l7-control-container .l7-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.l7-control-attribution, +.l7-control-scale-line { + padding: 0 5px; + color: #333; + } +.l7-control-attribution a { + text-decoration: none; + } +.l7-control-attribution a:hover { + text-decoration: underline; + } +.l7-container .l7-control-attribution, +.l7-container .l7-control-scale { + font-size: 11px; + padding: 5px 5px 2px 5px; + background: rgba(255, 255, 255, 0.7); + } +.l7-left .l7-control-scale { + margin-left: 5px; + } +.l7-bottom .l7-control-scale { + margin-bottom: 5px; + } +.l7-control-scale-line { + border: 2px solid #8E9DAB; + border-top: none; + color: #8e9dab; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.8); + } +.l7-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.l7-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.l7-touch .l7-control-attribution, +.l7-touch .l7-control-layers, +.l7-touch .l7-bar { + box-shadow: none; + } +.l7-touch .l7-control-layers, +.l7-touch .l7-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + /*logo */ + + .l7-ctrl-logo { + background-size: 100% 100%; + width: 89px; + height: 16px; + margin: 0 0 -3px -3px; + display: block; + background-repeat: no-repeat; + cursor: pointer; + background-image: url('../images/logo.png'); +} + + + /* layers control */ + +.l7-control-layers { + box-shadow: 0 1px 8px rgba(0,0,0,0.4); + background: #fff; + border-radius: 2px; + } .l7-control-layers-toggle { background-image: url(../images/layers.svg); width: 36px; @@ -373,7 +773,7 @@ } .l7-control-layers-expanded { padding: 6px 10px 6px 6px; - color: #333; + color: #59626B; background: #fff; } .l7-control-layers-scrollbar { @@ -387,11 +787,27 @@ top: 1px; } .l7-control-layers label { - display: block; - } + display: block; + padding: 8px; + } +.l7-control-layers label input[type="radio"], input[type="checkbox"]{ + width: 19px; + height: 19px; + margin: 0; + vertical-align: middle; + -ms-transform: scale(1.5); /* IE 9 */ + -webkit-transform: scale(1.5); /* Chrome, Safari, Opera */ + transform: scale(1.5); +} .l7-control-layers-separator { height: 0; - border-top: 1px solid #ddd; + border-top: 1px solid #D8D8D8; margin: 5px -10px 5px -6px; +} + +.l7-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; } diff --git a/packages/component/src/images/layers.png b/packages/component/src/images/layers.png new file mode 100644 index 0000000000..4e9f67b6d2 Binary files /dev/null and b/packages/component/src/images/layers.png differ diff --git a/packages/component/src/images/layers.svg b/packages/component/src/images/layers.svg new file mode 100644 index 0000000000..615f4172d7 --- /dev/null +++ b/packages/component/src/images/layers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/component/src/images/logo.png b/packages/component/src/images/logo.png new file mode 100644 index 0000000000..7599f280a0 Binary files /dev/null and b/packages/component/src/images/logo.png differ diff --git a/packages/component/src/index.ts b/packages/component/src/index.ts index b31d6fbd0b..21eaa07aae 100644 --- a/packages/component/src/index.ts +++ b/packages/component/src/index.ts @@ -1,6 +1,9 @@ import Control from './control/BaseControl'; +import Layers from './control/layer'; +import Logo from './control/logo'; import Scale from './control/scale'; import Zoom from './control/zoom'; import Marker from './marker'; import Popup from './popup'; -export { Control, Scale, Zoom, Marker, Popup }; + +export { Control, Logo, Scale, Zoom, Layers, Marker, Popup }; diff --git a/packages/core/src/inversify.config.ts b/packages/core/src/inversify.config.ts index 71f4a8980f..be2e81e98d 100644 --- a/packages/core/src/inversify.config.ts +++ b/packages/core/src/inversify.config.ts @@ -53,7 +53,7 @@ const container = new Container(); container .bind(TYPES.ISceneService) .to(SceneService) - .inSingletonScope(); + .inTransientScope(); container .bind(TYPES.IGlobalConfigService) .to(GlobalConfigService) @@ -100,7 +100,7 @@ container // @see https://github.com/inversify/InversifyJS/blob/master/wiki/inheritance.md#what-can-i-do-when-my-base-class-is-provided-by-a-third-party-module decorate(injectable(), EventEmitter); - +container.bind(TYPES.IEventEmitter).to(EventEmitter); // 支持 L7 使用 new 而非容器实例化的场景,同时禁止 lazyInject cache // @see https://github.com/inversify/inversify-inject-decorators#caching-vs-non-caching-behaviour const DECORATORS = getDecorators(container, false); diff --git a/packages/core/src/services/asset/FontService.ts b/packages/core/src/services/asset/FontService.ts index 045e5787af..656fffc5e2 100644 --- a/packages/core/src/services/asset/FontService.ts +++ b/packages/core/src/services/asset/FontService.ts @@ -64,6 +64,7 @@ export default class FontService implements IFontService { private key: string; private cache: LRUCache = new LRUCache(CACHE_LIMIT); public init() { + this.cache.clear(); this.fontOptions = { fontFamily: DEFAULT_FONT_FAMILY, fontWeight: DEFAULT_FONT_WEIGHT, diff --git a/packages/core/src/services/asset/IIconService.ts b/packages/core/src/services/asset/IIconService.ts index 5327519aa4..f71632015f 100644 --- a/packages/core/src/services/asset/IIconService.ts +++ b/packages/core/src/services/asset/IIconService.ts @@ -5,11 +5,11 @@ export type Listener = (...args: any[]) => void; export interface IIconValue { x: number; y: number; - image: HTMLImageElement; + image?: HTMLImageElement; } export interface IIcon { id: string; - image: HTMLImageElement; + image?: HTMLImageElement; height: number; width: number; } diff --git a/packages/core/src/services/asset/IconService.ts b/packages/core/src/services/asset/IconService.ts index f165bfeee2..2b593388a8 100644 --- a/packages/core/src/services/asset/IconService.ts +++ b/packages/core/src/services/asset/IconService.ts @@ -33,15 +33,26 @@ export default class IconService extends EventEmitter implements IIconService { if (this.hasImage(id)) { throw new Error('Image Id already exists'); } - + this.iconData.push({ + id, + width: imageSize, + height: imageSize, + }); + this.updateIconMap(); this.loadImage(image).then((img) => { imagedata = img as HTMLImageElement; - this.iconData.push({ - id, - image: imagedata, - width: imageSize, - height: imageSize, + const iconImage = this.iconData.find((icon: IIcon) => { + return icon.id === id; }); + if (iconImage) { + iconImage.image = imagedata; + } + // this.iconData.push({ + // id, + // image: imagedata, + // width: imageSize, + // height: imageSize, + // }); this.update(); }); } @@ -86,7 +97,9 @@ export default class IconService extends EventEmitter implements IIconService { this.canvas.height = this.canvasHeight; Object.keys(this.iconMap).forEach((item: string) => { const { x, y, image } = this.iconMap[item]; - this.ctx.drawImage(image, x, y, imageSize, imageSize); + if (image) { + this.ctx.drawImage(image, x, y, imageSize, imageSize); + } }); } diff --git a/packages/core/src/services/component/ControlService.ts b/packages/core/src/services/component/ControlService.ts index 6775b1fb06..f2024d4fe4 100644 --- a/packages/core/src/services/component/ControlService.ts +++ b/packages/core/src/services/component/ControlService.ts @@ -15,6 +15,7 @@ export default class ControlService implements IControlService { public controlContainer: HTMLElement; private controls: IControl[] = []; public init(cfg: IControlServiceCfg) { + this.destroy(); this.container = cfg.container; this.initControlPos(); } @@ -23,7 +24,6 @@ export default class ControlService implements IControlService { ctr.addTo(mapService); // scene对象 this.controls.push(ctr); } - public removeControl(ctr: IControl): this { const index = this.controls.indexOf(ctr); if (index > -1) { @@ -68,7 +68,9 @@ export default class ControlService implements IControlService { DOM.remove(this.controlCorners[i]); } } - DOM.remove(this.controlContainer); + if (this.controlContainer) { + DOM.remove(this.controlContainer); + } delete this.controlCorners; delete this.controlContainer; } diff --git a/packages/core/src/services/interaction/InteractionService.ts b/packages/core/src/services/interaction/InteractionService.ts index e1860a3297..b4a8d064b2 100644 --- a/packages/core/src/services/interaction/InteractionService.ts +++ b/packages/core/src/services/interaction/InteractionService.ts @@ -23,6 +23,7 @@ export default class InteractionService extends EventEmitter public init() { // 注册事件在地图底图上 + this.clear(); this.addEventListenerOnMap(); } @@ -68,4 +69,11 @@ export default class InteractionService extends EventEmitter private onHover = ({ x, y }: MouseEvent) => { this.emit(InteractionEvent.Hover, { x, y }); }; + private clear() { + if (this.hammertime) { + this.hammertime.destroy(); + } + this.removeEventListenerOnMap(); + this.off(InteractionEvent.Hover); + } } diff --git a/packages/core/src/services/layer/ILayerService.ts b/packages/core/src/services/layer/ILayerService.ts index ff8462936a..40da3c56fc 100644 --- a/packages/core/src/services/layer/ILayerService.ts +++ b/packages/core/src/services/layer/ILayerService.ts @@ -6,6 +6,7 @@ import { ISource, ISourceCFG } from '../source/ISourceService'; import { IEncodeFeature, IScale, + IScaleOptions, IStyleAttributeService, StyleAttrField, StyleAttributeOption, @@ -32,8 +33,10 @@ export interface IPickedFeature { export interface ILayer { id: string; // 一个场景中同一类型 Layer 可能存在多个 name: string; // 代表 Layer 的类型 - // visible: boolean; - // zIndex: number; + visible: boolean; + zIndex: number; + minZoom: number; + maxZoom: number; configService: IGlobalConfigService; plugins: ILayerPlugin[]; hooks: { @@ -62,8 +65,12 @@ export interface ILayer { // filter(field: string, value: StyleAttributeOption): ILayer; // active(option: ActiveOption): ILayer; style(options: unknown): ILayer; - // hide(): ILayer; - // show(): ILayer; + hide(): ILayer; + show(): ILayer; + setIndex(index: number): ILayer; + isVisible(): boolean; + setMaxZoom(min: number): ILayer; + setMinZoom(max: number): ILayer; // animate(field: string, option: any): ILayer; render(): ILayer; destroy(): void; @@ -74,6 +81,13 @@ export interface ILayer { setEncodedData(encodedData: IEncodeFeature[]): void; getEncodedData(): IEncodeFeature[]; getStyleOptions(): Partial; + getScaleOptions(): IScaleOptions; + /** + * 事件 + */ + on(type: string, hander: (...args: any[]) => void): void; + off(type: string, hander: (...args: any[]) => void): void; + once(type: string, hander: (...args: any[]) => void): void; /** * JSON Schema 用于校验配置项 */ @@ -96,6 +110,10 @@ export interface ILayerPlugin { * Layer 初始化参数 */ export interface ILayerInitializationOptions { + minZoom: number; + maxZoom: number; + visible: boolean; + zIndex: number; enableMultiPassRenderer: boolean; passes: Array; @@ -129,6 +147,10 @@ export interface ILayerInitializationOptions { export interface ILayerService { add(layer: ILayer): void; initLayers(): void; + getLayers(): ILayer[]; + getLayer(name: string): ILayer | undefined; + remove(layer: ILayer): void; + updateRenderOrder(): void; renderLayers(): void; destroy(): void; } diff --git a/packages/core/src/services/layer/IStyleAttributeService.ts b/packages/core/src/services/layer/IStyleAttributeService.ts index 03f8b69533..410fd946ee 100644 --- a/packages/core/src/services/layer/IStyleAttributeService.ts +++ b/packages/core/src/services/layer/IStyleAttributeService.ts @@ -46,6 +46,9 @@ export interface IScaleOption { format?: () => any; domain?: any[]; } +export interface IScaleOptions { + [key: string]: IScale; +} export interface IStyleScale { scale: any; field: string; diff --git a/packages/core/src/services/layer/LayerService.ts b/packages/core/src/services/layer/LayerService.ts index aa83486282..c3bc886389 100644 --- a/packages/core/src/services/layer/LayerService.ts +++ b/packages/core/src/services/layer/LayerService.ts @@ -17,6 +17,10 @@ export default class LayerService implements ILayerService { public add(layer: ILayer) { this.layers.push(layer); + this.initPlugin(layer); + layer.init(); + // 添加完成需要触发重绘 + // this.renderLayers(); } public initLayers() { @@ -29,10 +33,29 @@ export default class LayerService implements ILayerService { }); } + public getLayers(): ILayer[] { + return this.layers; + } + + public getLayer(id: string): ILayer | undefined { + return this.layers.find((layer) => layer.id === id); + } + + public remove(layer: ILayer): void { + const layerIndex = this.layers.indexOf(layer); + if (layerIndex > -1) { + this.layers.splice(layerIndex, 1); + } + layer.destroy(); + this.renderLayers(); + } + public renderLayers() { // TODO:脏检查,只渲染发生改变的 Layer + // + this.clear(); this.layers - // .filter((layer) => layer.isDirty()) + .filter((layer) => layer.isVisible()) .forEach((layer) => { // trigger hooks layer.hooks.beforeRender.call(); @@ -41,8 +64,27 @@ export default class LayerService implements ILayerService { }); } + public updateRenderOrder() { + this.layers.sort((pre: ILayer, next: ILayer) => { + return pre.zIndex - next.zIndex; + }); + this.renderLayers(); + } + public destroy() { this.layers.forEach((layer) => layer.destroy()); this.layers = []; } + private initPlugin(layer: ILayer) { + for (const plugin of layer.plugins) { + plugin.apply(layer); + } + } + private clear() { + this.renderService.clear({ + color: [0, 0, 0, 0], + depth: 1, + framebuffer: null, + }); + } } diff --git a/packages/core/src/services/log/LogService.ts b/packages/core/src/services/log/LogService.ts index 179e50d735..92c739bc20 100644 --- a/packages/core/src/services/log/LogService.ts +++ b/packages/core/src/services/log/LogService.ts @@ -2,7 +2,7 @@ import { injectable } from 'inversify'; import { Log } from 'probe.gl'; import { ILogService } from './ILogService'; -const Logger = new Log({ id: 'L7' }).enable(); +const Logger = new Log({ id: 'L7' }).enable(false); @injectable() export default class LogService implements ILogService { diff --git a/packages/core/src/services/map/IMapService.ts b/packages/core/src/services/map/IMapService.ts index de2998f0d0..ad374006a6 100644 --- a/packages/core/src/services/map/IMapService.ts +++ b/packages/core/src/services/map/IMapService.ts @@ -22,6 +22,7 @@ export interface IMapService { on(type: string, hander: (...args: any[]) => void): void; off(type: string, hander: (...args: any[]) => void): void; + once(type: string, hander: (...args: any[]) => void): void; // get dom getContainer(): HTMLElement | null; getSize(): [number, number]; @@ -59,6 +60,8 @@ export enum MapType { mapbox = 'mapbox', } +export const MapServiceEvent = ['mapload']; + /** * 地图初始化配置项 */ diff --git a/packages/core/src/services/renderer/IModel.ts b/packages/core/src/services/renderer/IModel.ts index 7441227450..280491fc2d 100644 --- a/packages/core/src/services/renderer/IModel.ts +++ b/packages/core/src/services/renderer/IModel.ts @@ -54,6 +54,8 @@ export interface IModelInitializationOptions { */ instances?: number; + colorMask?: [boolean, boolean, boolean, boolean]; + /** * depth buffer */ diff --git a/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts b/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts index 785f7e82f5..52bcb3eda8 100644 --- a/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts +++ b/packages/core/src/services/renderer/passes/BasePostProcessingPass.ts @@ -87,7 +87,6 @@ export default class BasePostProcessingPass const postProcessor = layer.multiPassRenderer.getPostProcessor(); const { useFramebuffer, getViewportSize } = this.rendererService; const { width, height } = getViewportSize(); - useFramebuffer( this.renderToScreen ? null : postProcessor.getWriteFBO(), () => { diff --git a/packages/core/src/services/renderer/passes/PixelPickingPass.ts b/packages/core/src/services/renderer/passes/PixelPickingPass.ts index 415c65e058..dd5f9f22da 100644 --- a/packages/core/src/services/renderer/passes/PixelPickingPass.ts +++ b/packages/core/src/services/renderer/passes/PixelPickingPass.ts @@ -97,7 +97,7 @@ export default class PixelPickingPass implements IPa depth: 1, }); - this.logger.info(`picking fbo cleared ${width} ${height}`); + // this.logger.info(`picking fbo cleared ${width} ${height}`); /** * picking pass 不需要 multipass,原因如下: diff --git a/packages/core/src/services/renderer/passes/PostProcessor.ts b/packages/core/src/services/renderer/passes/PostProcessor.ts index ba65064f79..f76437f3e5 100644 --- a/packages/core/src/services/renderer/passes/PostProcessor.ts +++ b/packages/core/src/services/renderer/passes/PostProcessor.ts @@ -52,7 +52,6 @@ export default class PostProcessor implements IPostProcessor { public async render(layer: ILayer) { for (let i = 0; i < this.passes.length; i++) { const pass = this.passes[i]; - // last pass should render to screen pass.setRenderToScreen(this.isLastEnabledPass(i)); await pass.render(layer); diff --git a/packages/core/src/services/renderer/passes/TAAPass.ts b/packages/core/src/services/renderer/passes/TAAPass.ts index 7dd63fbedb..0a33a02a49 100644 --- a/packages/core/src/services/renderer/passes/TAAPass.ts +++ b/packages/core/src/services/renderer/passes/TAAPass.ts @@ -232,7 +232,7 @@ export default class TAAPass this.blendModel.draw({ uniforms: { // @ts-ignore - u_Opacity: layerStyleOptions.opacity || 1, + u_opacity: layerStyleOptions.opacity || 1, u_MixRatio: this.frame === 0 ? 1 : 0.9, u_Diffuse1: this.sampleRenderTarget, u_Diffuse2: diff --git a/packages/core/src/services/scene/ISceneService.ts b/packages/core/src/services/scene/ISceneService.ts index b9ead753fa..e0b742e5d4 100644 --- a/packages/core/src/services/scene/ISceneService.ts +++ b/packages/core/src/services/scene/ISceneService.ts @@ -13,4 +13,5 @@ export interface ISceneService { render(): void; destroy(): void; } -export const SceneEventList = ['loaded', 'resize', 'destroy']; +// scene 事件 +export const SceneEventList = ['loaded', 'maploaded', 'resize', 'destroy']; diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts index 2eccda0f9a..4f3ca3853a 100644 --- a/packages/core/src/services/scene/SceneService.ts +++ b/packages/core/src/services/scene/SceneService.ts @@ -72,7 +72,6 @@ export default class Scene extends EventEmitter implements ISceneService { public constructor() { super(); - // @see https://github.com/webpack/tapable#usage this.hooks = { /** @@ -86,6 +85,7 @@ export default class Scene extends EventEmitter implements ISceneService { } public init(globalConfig: IGlobalConfig) { + this.initClear(); this.configService.setAndCheckConfig(globalConfig); // 初始化资源管理 图片 @@ -148,23 +148,25 @@ export default class Scene extends EventEmitter implements ISceneService { public addLayer(layer: ILayer) { this.logger.info(`add layer ${layer.name}`); + this.layerService.add(layer); } public async render() { + // 首次初始化,或者地图的容器被强制销毁的需要重新初始化 if (!this.inited) { // 首次渲染需要等待底图、相机初始化 await this.hooks.init.promise(this.configService.getConfig()); // 初始化marker 容器 this.map.addMarkerContainer(); - this.emit('loaded'); this.inited = true; - this.layerService.initLayers(); + this.layerService.renderLayers(); + this.emit('loaded'); } this.layerService.renderLayers(); - this.logger.info('render'); + // this.logger.info('render'); } public destroy() { @@ -205,4 +207,14 @@ export default class Scene extends EventEmitter implements ISceneService { this.cameraService.update(viewport); this.render(); }; + private initClear() { + this.inited = false; + this.layerService.destroy(); + this.configService.reset(); + this.interactionService.destroy(); + this.controlService.destroy(); + this.removeAllListeners(); + this.map.destroy(); + window.removeEventListener('resize', this.handleWindowResized, false); + } } diff --git a/packages/core/src/services/shader/IShaderModuleService.ts b/packages/core/src/services/shader/IShaderModuleService.ts index 223aeb6d8a..7a0a4089ed 100644 --- a/packages/core/src/services/shader/IShaderModuleService.ts +++ b/packages/core/src/services/shader/IShaderModuleService.ts @@ -20,4 +20,5 @@ export interface IShaderModuleService { * 注册 L7 内置 shader module */ registerBuiltinModules(): void; + destroy(): void; } diff --git a/packages/core/src/services/shader/ShaderModuleService.ts b/packages/core/src/services/shader/ShaderModuleService.ts index 56660717d1..24476daf36 100644 --- a/packages/core/src/services/shader/ShaderModuleService.ts +++ b/packages/core/src/services/shader/ShaderModuleService.ts @@ -22,6 +22,7 @@ export default class ShaderModuleService implements IShaderModuleService { private rawContentCache: { [key: string]: IModuleParams } = {}; public registerBuiltinModules() { + this.destroy(); this.registerModule('common', { vs: common, fs: common }); this.registerModule('decode', { vs: decode, fs: '' }); this.registerModule('projection', { vs: projection, fs: '' }); @@ -50,7 +51,10 @@ export default class ShaderModuleService implements IShaderModuleService { vs: extractedVS, }; } - + public destroy() { + this.moduleCache = {}; + this.rawContentCache = {}; + } public getModule(moduleName: string): IModuleParams { if (this.moduleCache[moduleName]) { return this.moduleCache[moduleName]; diff --git a/packages/core/src/shaders/post-processing/blend.glsl b/packages/core/src/shaders/post-processing/blend.glsl index 98d595cedb..2a8cbf98dd 100644 --- a/packages/core/src/shaders/post-processing/blend.glsl +++ b/packages/core/src/shaders/post-processing/blend.glsl @@ -1,4 +1,4 @@ -uniform float u_Opacity : 1.0; +uniform float u_opacity : 1.0; uniform float u_MixRatio : 0.5; uniform sampler2D u_Diffuse1; @@ -9,5 +9,5 @@ varying vec2 v_UV; void main() { vec4 texel1 = texture2D(u_Diffuse1, v_UV); vec4 texel2 = texture2D(u_Diffuse2, v_UV); - gl_FragColor = u_Opacity * mix(texel1, texel2, u_MixRatio); -} \ No newline at end of file + gl_FragColor = u_opacity * mix(texel1, texel2, u_MixRatio); +} diff --git a/packages/core/src/shaders/projection.glsl b/packages/core/src/shaders/projection.glsl index ef4c8fa490..53ef0fdf52 100644 --- a/packages/core/src/shaders/projection.glsl +++ b/packages/core/src/shaders/projection.glsl @@ -63,6 +63,14 @@ vec3 project_offset_normal(vec3 vector) { return project_normal(vector); } +// reverse Y +vec3 reverse_offset_normal(vec3 vector) { + if (u_CoordinateSystem == COORDINATE_SYSTEM_P20) { + return vector * vec3(1.0,-1.0, 1.0); + } + return vector; +} + vec4 project_position(vec4 position) { if (u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) { @@ -120,4 +128,14 @@ vec4 project_common_position_to_clipspace(vec4 position) { u_ViewProjectionMatrix, u_ViewportCenterProjection ); -} \ No newline at end of file +} + +vec4 unproject_clipspace_to_position(vec4 clipspacePos, mat4 u_InverseViewProjectionMatrix) { + vec4 pos = u_InverseViewProjectionMatrix * (clipspacePos - u_ViewportCenterProjection); + if (u_CoordinateSystem == COORDINATE_SYSTEM_METER_OFFSET || + u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) { + // Needs to be divided with project_uCommonUnitsPerMeter + pos.w /= u_PixelsPerMeter.z; + } + return pos; +} diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index eead635857..388c2fdf5d 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -1,4 +1,5 @@ const TYPES = { + IEventEmitter: Symbol.for('IEventEmitter'), ISceneService: Symbol.for('ISceneService'), IGlobalConfigService: Symbol.for('IGlobalConfigService'), ICameraService: Symbol.for('ICameraService'), diff --git a/packages/layers/src/core/BaseLayer.ts b/packages/layers/src/core/BaseLayer.ts index 13d60d574d..c46e5cbf8e 100644 --- a/packages/layers/src/core/BaseLayer.ts +++ b/packages/layers/src/core/BaseLayer.ts @@ -1,4 +1,5 @@ import { + gl, ICameraService, IEncodeFeature, IFontService, @@ -8,11 +9,14 @@ import { ILayer, ILayerInitializationOptions, ILayerPlugin, + ILayerService, IMapService, IModel, IModelInitializationOptions, IMultiPassRenderer, IRendererService, + IScale, + IScaleOptions, IShaderModuleService, ISourceCFG, IStyleAttributeService, @@ -25,7 +29,8 @@ import { TYPES, } from '@l7/core'; import Source from '@l7/source'; -import { isFunction } from 'lodash'; +import { EventEmitter } from 'eventemitter3'; +import { isFunction, isObject } from 'lodash'; // @ts-ignore import mergeJsonSchemas from 'merge-json-schemas'; import { SyncBailHook, SyncHook } from 'tapable'; @@ -50,7 +55,11 @@ let layerIdCounter = 0; const defaultLayerInitializationOptions: Partial< ILayerInitializationOptions > = { - enableMultiPassRenderer: true, + minZoom: 0, + maxZoom: 20, + visible: true, + zIndex: 0, + enableMultiPassRenderer: false, enablePicking: false, enableHighlight: false, highlightColor: 'red', @@ -58,9 +67,14 @@ const defaultLayerInitializationOptions: Partial< jitterScale: 1, }; -export default class BaseLayer implements ILayer { +export default class BaseLayer extends EventEmitter + implements ILayer { public id: string = `${layerIdCounter++}`; public name: string; + public visible: boolean = true; + public zIndex: number = 0; + public minZoom: number; + public maxZoom: number; // 生命周期钩子 public hooks = { @@ -113,6 +127,9 @@ export default class BaseLayer implements ILayer { @lazyInject(TYPES.IMapService) protected readonly map: IMapService; + @lazyInject(TYPES.ILayerService) + protected readonly layerService: ILayerService; + private encodedData: IEncodeFeature[]; private configSchema: object; @@ -123,6 +140,13 @@ export default class BaseLayer implements ILayer { private styleOptions: Partial< ILayerInitializationOptions & ChildLayerStyleOptions >; + private scaleOptions: IScaleOptions = {}; + + private enodeOptions: { + [type: string]: { + field: string; + }; + }; @lazyInject(TYPES.IInteractionService) private readonly interactionService: IInteractionService; @@ -130,10 +154,17 @@ export default class BaseLayer implements ILayer { constructor( styleOptions: Partial, ) { + super(); this.styleOptions = { ...defaultLayerInitializationOptions, ...styleOptions, }; + const { minZoom, maxZoom, zIndex, visible } = this + .styleOptions as ILayerInitializationOptions; + this.visible = visible; + this.zIndex = zIndex; + this.minZoom = minZoom; + this.maxZoom = maxZoom; } public addPlugin(plugin: ILayerPlugin) { @@ -254,6 +285,17 @@ export default class BaseLayer implements ILayer { }; return this; } + public scale(field: string | IScaleOptions, cfg: IScale) { + if (isObject(field)) { + this.scaleOptions = { + ...this.scaleOptions, + ...field, + }; + } else { + this.scaleOptions[field] = cfg; + } + return this; + } public render(): ILayer { if (this.multiPassRenderer && this.multiPassRenderer.getRenderFlag()) { this.multiPassRenderer.render(); @@ -262,6 +304,39 @@ export default class BaseLayer implements ILayer { } return this; } + + public show(): ILayer { + this.visible = true; + this.layerService.renderLayers(); + return this; + } + + public hide(): ILayer { + this.visible = false; + this.layerService.renderLayers(); + return this; + } + + public setIndex(index: number): ILayer { + this.zIndex = index; + this.layerService.updateRenderOrder(); + return this; + } + + public isVisible(): boolean { + const zoom = this.map.getZoom(); + return this.visible && zoom >= this.minZoom && zoom <= this.maxZoom; + } + + public setMinZoom(min: number): ILayer { + this.minZoom = min; + return this; + } + + public setMaxZoom(max: number): ILayer { + this.maxZoom = max; + return this; + } /** * zoom to layer Bounds */ @@ -303,6 +378,9 @@ export default class BaseLayer implements ILayer { public getStyleOptions() { return this.styleOptions; } + public getScaleOptions() { + return this.scaleOptions; + } public setEncodedData(encodedData: IEncodeFeature[]) { this.encodedData = encodedData; @@ -358,6 +436,15 @@ export default class BaseLayer implements ILayer { fs, vs, elements, + blend: { + enable: true, + func: { + srcRGB: gl.SRC_ALPHA, + srcAlpha: 1, + dstRGB: gl.ONE_MINUS_SRC_ALPHA, + dstAlpha: 1, + }, + }, ...rest, }); } diff --git a/packages/layers/src/core/triangulation.ts b/packages/layers/src/core/triangulation.ts index 8ddedad28c..0cbb42e72a 100644 --- a/packages/layers/src/core/triangulation.ts +++ b/packages/layers/src/core/triangulation.ts @@ -61,10 +61,10 @@ export function LineTriangulation(feature: IEncodeFeature) { const { coordinates } = feature; const line = getNormals(coordinates as number[][], false, 0); return { - vertices: line.attrPos, // [ x,y,z, distance, miter ] + vertices: line.attrPos, // [ x,y,z, distance, miter,total ] indices: line.attrIndex, normals: line.normals, - size: 5, + size: 6, }; } @@ -87,7 +87,7 @@ export function HeatmapGridTriangulation(feature: IEncodeFeature) { | ShapeType2D | ShapeType3D); return { - vertices: positions, // [ x, y, z ] + vertices: positions, // [ x, y, z ] 多边形顶点 indices: index, normals: Array.from(computeVertexNormals(positions, index)), size: 3, diff --git a/packages/layers/src/heatmap/grid.ts b/packages/layers/src/heatmap/grid.ts index 388f4ff8ec..0061eceaf2 100644 --- a/packages/layers/src/heatmap/grid.ts +++ b/packages/layers/src/heatmap/grid.ts @@ -27,7 +27,7 @@ export default class HeatMapGrid extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, u_coverage: coverage || 1.0, u_radius: [ this.getSource().data.xOffset, @@ -43,19 +43,11 @@ export default class HeatMapGrid extends BaseLayer { this.registerBuiltinAttributes(this); this.models = [ this.buildLayerModel({ - moduleName: 'pointExtrude', + moduleName: 'gridheatmap', vertexShader: heatmapGridVert, fragmentShader: heatmapGridFrag, triangulation: HeatmapGridTriangulation, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, + depth: { enable: false }, }), ]; } diff --git a/packages/layers/src/heatmap/heatmap.ts b/packages/layers/src/heatmap/heatmap.ts index ddd039c596..747da07589 100644 --- a/packages/layers/src/heatmap/heatmap.ts +++ b/packages/layers/src/heatmap/heatmap.ts @@ -106,8 +106,8 @@ export default class HeatMapLayer extends BaseLayer { height: imageData.height, wrapS: gl.CLAMP_TO_EDGE, wrapT: gl.CLAMP_TO_EDGE, - min: gl.NEAREST, - mag: gl.NEAREST, + min: gl.LINEAR, + mag: gl.LINEAR, flipY: true, }); } @@ -223,6 +223,15 @@ export default class HeatMapLayer extends BaseLayer { depth: { enable: false, }, + blend: { + enable: true, + func: { + srcRGB: gl.SRC_ALPHA, + srcAlpha: 1, + dstRGB: gl.ONE_MINUS_SRC_ALPHA, + dstAlpha: 1, + }, + }, count: 6, elements: createElements({ data: [0, 2, 1, 2, 3, 1], @@ -235,7 +244,7 @@ export default class HeatMapLayer extends BaseLayer { const { opacity, intensity = 10, radius = 5 } = this.getStyleOptions(); this.intensityModel.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, u_radius: radius, u_intensity: intensity, }, @@ -246,7 +255,7 @@ export default class HeatMapLayer extends BaseLayer { const { opacity } = this.getStyleOptions(); this.colorModel.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, u_colorTexture: this.colorTexture, u_texture: this.heatmapFramerBuffer, }, @@ -254,7 +263,6 @@ export default class HeatMapLayer extends BaseLayer { } private draw3DHeatMap() { const { opacity } = this.getStyleOptions(); - const mapbounds = this.map.getBounds(); const invert = mat4.invert( mat4.create(), // @ts-ignore @@ -262,10 +270,9 @@ export default class HeatMapLayer extends BaseLayer { ) as mat4; this.colorModel.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, u_colorTexture: this.colorTexture, u_texture: this.heatmapFramerBuffer, - u_extent: [-179.9476, -60.0959, 179.9778, 79.5651], u_InverseViewProjectionMatrix: [...invert], }, }); @@ -273,7 +280,7 @@ export default class HeatMapLayer extends BaseLayer { private build3dHeatMap() { const { getViewportSize } = this.rendererService; const { width, height } = getViewportSize(); - const triangulation = heatMap3DTriangulation(256, 128); + const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0); this.shaderModuleService.registerModule('heatmap3dColor', { vs: heatmap3DVert, fs: heatmap3DFrag, @@ -312,7 +319,16 @@ export default class HeatMapLayer extends BaseLayer { ...uniforms, }, depth: { - enable: false, + enable: true, + }, + blend: { + enable: true, + func: { + srcRGB: gl.SRC_ALPHA, + srcAlpha: 1, + dstRGB: gl.ONE_MINUS_SRC_ALPHA, + dstAlpha: 1, + }, }, elements: createElements({ data: triangulation.indices, diff --git a/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl b/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl index f2c35866d3..f3b00b62b1 100644 --- a/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap_3d_frag.glsl @@ -1,16 +1,18 @@ uniform sampler2D u_texture; uniform sampler2D u_colorTexture; -uniform float u_Opacity; +uniform float u_opacity; varying vec2 v_texCoord; +varying float v_intensity; void main(){ float intensity = texture2D(u_texture, v_texCoord).r; vec2 ramp_pos = vec2( - fract(16.0 * (1.0 - intensity)), - floor(16.0 * (1.0 - intensity)) / 16.0); + fract(16.0 * (1.0 - v_intensity)), + floor(16.0 * (1.0 - v_intensity)) / 16.0); // vec4 color = texture2D(u_colorTexture,vec2(0.5,1.0-intensity)); vec4 color = texture2D(u_colorTexture,ramp_pos); gl_FragColor = color; - // gl_FragColor.a = color.a * smoothstep(0.0,0.12,intensity) * u_Opacity; + // gl_FragColor.a = color.a * smoothstep(0.0, 0.01, v_intensity) * u_opacity; + // gl_FragColor.a = 0.2; } diff --git a/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl b/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl index 087e4328bd..e00eec61a5 100644 --- a/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap_3d_vert.glsl @@ -2,41 +2,44 @@ precision highp float; attribute vec3 a_Position; attribute vec2 a_Uv; uniform sampler2D u_texture; -uniform vec4 u_extent; varying vec2 v_texCoord; uniform mat4 u_ModelMatrix; uniform mat4 u_InverseViewProjectionMatrix; +varying float v_intensity; + +vec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) { + float t2 = t * t; + float one_minus_t = 1.0 - t; + float one_minus_t2 = one_minus_t * one_minus_t; + return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t); +} +vec2 toBezier(float t, vec4 p){ + return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0)); +} #pragma include "projection" void main() { v_texCoord = a_Uv; - vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); + vec2 pos = 1.8 * (a_Uv * vec2(2.0) - vec2(1.0)); - vec4 n_0 = vec4(pos, 0.0, 1.0) - u_ViewportCenterProjection; - vec4 n_1 = vec4(pos, 1.0, 1.0) - u_ViewportCenterProjection; - vec4 m_0 = u_InverseViewProjectionMatrix * n_0 ; - vec4 m_1 = u_InverseViewProjectionMatrix * n_1; - m_0 = m_0 / m_0.w; - m_1 = m_1 / m_1.w; + vec4 p1 = vec4(pos, 0.0, 1.0); + vec4 p2 = vec4(pos, 1.0, 1.0); - float zPos = (0.0 - m_0.z) / (m_1.z - m_0.z); - vec4 mapCoord = m_0 + zPos * (m_1 - m_0); + vec4 inverseP1 = unproject_clipspace_to_position(p1, u_InverseViewProjectionMatrix); + vec4 inverseP2 = unproject_clipspace_to_position(p2, u_InverseViewProjectionMatrix) ; - // vec4 p = u_InverseViewProjectionMatrix * (vec4(pos,0,1) - u_ViewportCenterProjection); - // p = p /p.w; - // pos.y = 1.0 -pos.y; - // vec2 minxy = project_position(vec4(u_extent.xy, 0, 1.0)).xy; - // vec2 maxxy = project_position(vec4(u_extent.zw, 0, 1.0)).xy; + inverseP1 = inverseP1 / inverseP1.w; + inverseP2 = inverseP2 / inverseP2.w; - // vec2 step = (maxxy - minxy); + float zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); + vec4 position = inverseP1 + zPos * (inverseP2 - inverseP1); - // vec2 pos = minxy + (vec2(a_Position.x, a_Position.y ) + vec2(1.0)) / vec2(2.0) * step; + vec4 b= vec4(0.5000, 0, 1, 0.5000); + float fh; - float intensity = texture2D(u_texture, v_texCoord).r; - gl_Position = project_common_position_to_clipspace(vec4(mapCoord.xy, intensity * 100., 1.0)); - // gl_Position = vec4(pos,0.,1.0); - // v_texCoord = (gl_Position.xy + vec2(1.0)) / vec2(2.0) / gl_Position.w; - // v_texCoord.y = 1.0 - v_texCoord.y; + v_intensity = texture2D(u_texture, v_texCoord).r; + fh = toBezier(v_intensity, b).y; + gl_Position = project_common_position_to_clipspace(vec4(position.xy, v_intensity * 50., 1.0)); } diff --git a/packages/layers/src/heatmap/shaders/heatmap_frag.glsl b/packages/layers/src/heatmap/shaders/heatmap_frag.glsl index f3f83b7c2a..8e817872e3 100644 --- a/packages/layers/src/heatmap/shaders/heatmap_frag.glsl +++ b/packages/layers/src/heatmap/shaders/heatmap_frag.glsl @@ -1,6 +1,6 @@ uniform sampler2D u_texture; uniform sampler2D u_colorTexture; -uniform float u_Opacity; +uniform float u_opacity; varying vec2 v_texCoord; void main(){ @@ -11,6 +11,6 @@ void main(){ // vec4 color = texture2D(u_colorTexture,vec2(0.5,1.0-intensity)); vec4 color = texture2D(u_colorTexture,ramp_pos); gl_FragColor = color; - gl_FragColor.a = color.a * smoothstep(0.1,0.5,intensity) * u_Opacity; + gl_FragColor.a = color.a * smoothstep(0.,0.01,intensity) * u_opacity; } diff --git a/packages/layers/src/heatmap/shaders/hexagon_frag.glsl b/packages/layers/src/heatmap/shaders/hexagon_frag.glsl index 9bc316c11d..540a73c75e 100644 --- a/packages/layers/src/heatmap/shaders/hexagon_frag.glsl +++ b/packages/layers/src/heatmap/shaders/hexagon_frag.glsl @@ -1,7 +1,7 @@ precision highp float; varying vec4 v_color; -uniform float u_Opacity: 0.1; +uniform float u_opacity: 0.1; void main() { gl_FragColor = v_color; - gl_FragColor.a *= u_Opacity; + gl_FragColor.a *= u_opacity; } diff --git a/packages/layers/src/heatmap/shaders/hexagon_vert.glsl b/packages/layers/src/heatmap/shaders/hexagon_vert.glsl index 2f68a0d4e4..65ec9461a3 100644 --- a/packages/layers/src/heatmap/shaders/hexagon_vert.glsl +++ b/packages/layers/src/heatmap/shaders/hexagon_vert.glsl @@ -12,7 +12,7 @@ varying vec4 v_color; void main() { v_color = a_Color; mat2 rotationMatrix = mat2(cos(u_angle), sin(u_angle), -sin(u_angle), cos(u_angle)); - vec2 offset =(vec2(a_Position.xy * u_radius * u_coverage * rotationMatrix)); + vec2 offset =(vec2(a_Position.xy * u_radius * rotationMatrix )); vec4 project_pos = project_position(vec4(a_Pos.xy + offset, 0, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, 0., 1.0)); } diff --git a/packages/layers/src/index.ts b/packages/layers/src/index.ts index acd403c13b..e5301a2fbb 100644 --- a/packages/layers/src/index.ts +++ b/packages/layers/src/index.ts @@ -4,10 +4,12 @@ import HeatMapGridLayer from './heatmap/grid'; import HeatMapLayer from './heatmap/heatmap'; import ArcLineLayer from './line/arc'; import Arc2DLineLayer from './line/arc2d'; +import Arc3DLineLayer from './line/arc3d'; +import DashLineLayer from './line/dash'; import LineLayer from './line/index'; import Point3dLayer from './point/extrude'; +import PointLayer from './point/fill'; import PointImageLayer from './point/image'; -import PointLayer from './point/index'; import TextLayer from './point/text'; // import Point from './point/point'; import PolygonLayer from './polygon'; @@ -79,11 +81,13 @@ export { Point3dLayer, PointImageLayer, LineLayer, + DashLineLayer, Polygon3DLayer, ImageLayer, HeatMapGridLayer, ArcLineLayer, Arc2DLineLayer, + Arc3DLineLayer, RasterLayer, HeatMapLayer, TextLayer, diff --git a/packages/layers/src/line/arc.ts b/packages/layers/src/line/arc.ts index 5813156a68..aa325cfc13 100644 --- a/packages/layers/src/line/arc.ts +++ b/packages/layers/src/line/arc.ts @@ -2,10 +2,11 @@ import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; import BaseLayer from '../core/BaseLayer'; import { LineArcTriangulation } from '../core/triangulation'; import line_arc_frag from './shaders/line_arc_frag.glsl'; -import line_arc_vert from './shaders/line_arc_vert.glsl'; +import line_arc2d_vert from './shaders/line_bezier_vert.glsl'; interface IArcLayerStyleOptions { opacity: number; segmentNumber: number; + blur: number; } export default class ArcLineLayer extends BaseLayer { public name: string = 'LineLayer'; @@ -23,12 +24,13 @@ export default class ArcLineLayer extends BaseLayer { } protected renderModels() { - const { opacity } = this.getStyleOptions(); + const { opacity, blur = 0.99 } = this.getStyleOptions(); this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1, + u_opacity: opacity || 1, segmentNumber: 30, + u_blur: blur, }, }), ); @@ -39,10 +41,11 @@ export default class ArcLineLayer extends BaseLayer { this.registerBuiltinAttributes(this); this.models = [ this.buildLayerModel({ - moduleName: 'arcline', - vertexShader: line_arc_vert, + moduleName: 'arc2dline', + vertexShader: line_arc2d_vert, fragmentShader: line_arc_frag, triangulation: LineArcTriangulation, + depth: { enable: false }, blend: { enable: true, func: { diff --git a/packages/layers/src/line/arc2d.ts b/packages/layers/src/line/arc2d.ts index 18e3c7a16d..c35b23edba 100644 --- a/packages/layers/src/line/arc2d.ts +++ b/packages/layers/src/line/arc2d.ts @@ -6,8 +6,11 @@ import line_arc_frag from './shaders/line_arc_frag.glsl'; interface IArcLayerStyleOptions { opacity: number; segmentNumber: number; + blur: number; } -export default class Arc2DLineLayer extends BaseLayer { +export default class ArcCircleLineLayer extends BaseLayer< + IArcLayerStyleOptions +> { public name: string = 'LineLayer'; protected getConfigSchema() { @@ -23,12 +26,13 @@ export default class Arc2DLineLayer extends BaseLayer { } protected renderModels() { - const { opacity } = this.getStyleOptions(); + const { opacity, blur = 0.99 } = this.getStyleOptions(); this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1, + u_opacity: opacity || 1, segmentNumber: 30, + u_blur: blur, }, }), ); diff --git a/packages/layers/src/line/arc3d.ts b/packages/layers/src/line/arc3d.ts new file mode 100644 index 0000000000..369ca56356 --- /dev/null +++ b/packages/layers/src/line/arc3d.ts @@ -0,0 +1,107 @@ +import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; +import BaseLayer from '../core/BaseLayer'; +import { LineArcTriangulation } from '../core/triangulation'; +import line_arc_frag from './shaders/line_arc_frag.glsl'; +import line_arc_vert from './shaders/line_arc_vert.glsl'; +interface IArcLayerStyleOptions { + opacity: number; + segmentNumber: number; +} +export default class Arc3DLineLayer extends BaseLayer { + public name: string = 'LineLayer'; + + protected getConfigSchema() { + return { + properties: { + opacity: { + type: 'number', + minimum: 0, + maximum: 1, + }, + }, + }; + } + + protected renderModels() { + const { opacity } = this.getStyleOptions(); + this.models.forEach((model) => + model.draw({ + uniforms: { + u_opacity: opacity || 1, + segmentNumber: 30, + }, + }), + ); + return this; + } + + protected buildModels() { + this.registerBuiltinAttributes(this); + this.models = [ + this.buildLayerModel({ + moduleName: 'arcline', + vertexShader: line_arc_vert, + fragmentShader: line_arc_frag, + triangulation: LineArcTriangulation, + blend: { + enable: true, + func: { + srcRGB: gl.ONE, + srcAlpha: 1, + dstRGB: gl.ONE, + dstAlpha: 1, + }, + }, + }), + ]; + } + + private registerBuiltinAttributes(layer: ILayer) { + // point layer size; + layer.styleAttributeService.registerStyleAttribute({ + name: 'size', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Size', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const { size } = feature; + return Array.isArray(size) ? [size[0]] : [size as number]; + }, + }, + }); + + layer.styleAttributeService.registerStyleAttribute({ + name: 'instance', // 弧线起始点信息 + type: AttributeType.Attribute, + descriptor: { + name: 'a_Instance', + buffer: { + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 4, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + return [vertex[3], vertex[4], vertex[5], vertex[6]]; + }, + }, + }); + } +} diff --git a/packages/layers/src/line/dash.ts b/packages/layers/src/line/dash.ts new file mode 100644 index 0000000000..56c9a47e12 --- /dev/null +++ b/packages/layers/src/line/dash.ts @@ -0,0 +1,206 @@ +import { AttributeType, gl, IEncodeFeature, ILayer } from '@l7/core'; +import BaseLayer from '../core/BaseLayer'; +import { LineTriangulation } from '../core/triangulation'; +import line_dash_frag from './shaders/line_dash_frag.glsl'; +import line_dash_vert from './shaders/line_dash_vert.glsl'; +interface IDashLineLayerStyleOptions { + opacity: number; + dashArray: [number, number]; +} +export default class DashLineLayer extends BaseLayer< + IDashLineLayerStyleOptions +> { + public name: string = 'LineLayer'; + + protected getConfigSchema() { + return { + properties: { + opacity: { + type: 'number', + minimum: 0, + maximum: 1, + }, + }, + }; + } + + protected renderModels() { + const { opacity, dashArray = [10, 5] } = this.getStyleOptions(); + this.models.forEach((model) => + model.draw({ + uniforms: { + u_opacity: opacity || 1.0, + u_dash_array: dashArray, + }, + }), + ); + return this; + } + + protected buildModels() { + this.registerBuiltinAttributes(this); + this.models = [ + this.buildLayerModel({ + moduleName: 'line_dash', + vertexShader: line_dash_vert, + fragmentShader: line_dash_frag, + triangulation: LineTriangulation, + blend: { + enable: true, + func: { + srcRGB: gl.SRC_ALPHA, + srcAlpha: 1, + dstRGB: gl.ONE_MINUS_SRC_ALPHA, + dstAlpha: 1, + }, + }, + }), + ]; + } + + private registerBuiltinAttributes(layer: ILayer) { + // point layer size; + layer.styleAttributeService.registerStyleAttribute({ + name: 'size', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Size', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const { size } = feature; + return Array.isArray(size) ? [size[0]] : [size as number]; + }, + }, + }); + + // point layer size; + layer.styleAttributeService.registerStyleAttribute({ + name: 'normal', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Normal', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.STATIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 3, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + normal: number[], + ) => { + return normal; + }, + }, + }); + + layer.styleAttributeService.registerStyleAttribute({ + name: 'miter', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Miter', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + return [vertex[4]]; + }, + }, + }); + + layer.styleAttributeService.registerStyleAttribute({ + name: 'startPos', + type: AttributeType.Attribute, + descriptor: { + name: 'a_StartPos', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 3, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const coordinates = feature.coordinates as number[][]; + const coord = coordinates[0]; + return coord.length === 3 ? coord : [...coord, 0.0]; + }, + }, + }); + + layer.styleAttributeService.registerStyleAttribute({ + name: 'distance', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Distance', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + return [vertex[3]]; + }, + }, + }); + + layer.styleAttributeService.registerStyleAttribute({ + name: 'total_distance', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Total_Distance', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + return [vertex[5]]; + }, + }, + }); + } +} diff --git a/packages/layers/src/line/index.ts b/packages/layers/src/line/index.ts index 9524f8c49f..6048748cf6 100644 --- a/packages/layers/src/line/index.ts +++ b/packages/layers/src/line/index.ts @@ -26,7 +26,7 @@ export default class LineLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, }, }), ); @@ -127,28 +127,5 @@ export default class LineLayer extends BaseLayer { }, }, }); - - layer.styleAttributeService.registerStyleAttribute({ - name: 'distance', - type: AttributeType.Attribute, - descriptor: { - name: 'a_Distance', - buffer: { - // give the WebGL driver a hint that this buffer may change - usage: gl.DYNAMIC_DRAW, - data: [], - type: gl.FLOAT, - }, - size: 1, - update: ( - feature: IEncodeFeature, - featureIdx: number, - vertex: number[], - attributeIdx: number, - ) => { - return [vertex[3]]; - }, - }, - }); } } diff --git a/packages/layers/src/line/shaders/arc_chunks.vert.glsl b/packages/layers/src/line/shaders/arc_chunks.vert.glsl new file mode 100644 index 0000000000..f0d2689c4c --- /dev/null +++ b/packages/layers/src/line/shaders/arc_chunks.vert.glsl @@ -0,0 +1,21 @@ +vec2 interpolate (vec2 source, vec2 target, float t) { + // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation + vec2 mid = midPoint(source, target); + vec3 x = vec3(source.x, mid.x, target.x); + vec3 y = vec3(source.y, mid.y, target.y) + return vec2(bezier3(x ,t), bezier3(y,t)); +} +float bezier3(vec3 arr, float t) { + float ut = 1 - t + return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t +} +vec2 midPoint(vec2 source, vec2 target) { + vec2 center = target - source; + float r = length(center); + float theta = atan(center.y, center.x); + float thetaOffset = 0.314; + float r2 = r / 2.0 / cos(thetaOffset); + float theta2 = theta + thetaOffset; + vec2 mid = vec2(r2*cos(theta2) + source.x, r2*sin(theta2) + source.y); + return mid; +} diff --git a/packages/layers/src/line/shaders/line_arc2d_vert.glsl b/packages/layers/src/line/shaders/line_arc2d_vert.glsl index 360aed1ee5..6bb16a07f9 100644 --- a/packages/layers/src/line/shaders/line_arc2d_vert.glsl +++ b/packages/layers/src/line/shaders/line_arc2d_vert.glsl @@ -6,6 +6,7 @@ attribute float a_Size; uniform mat4 u_ModelMatrix; uniform float segmentNumber; varying vec4 v_color; +varying vec2 v_normal; #pragma include "projection" @@ -39,7 +40,14 @@ vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { // rotate by 90 degrees dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); vec2 offset = dir_screenspace * offset_direction * a_Size / 2.0; - return offset; + return offset * vec2(1.0, -1.0); +} +vec2 getNormal(vec2 line_clipspace, float offset_direction) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); } float getAngularDist (vec2 source, vec2 target) { vec2 delta = source - target; @@ -77,12 +85,10 @@ void main() { float segmentRatio = getSegmentRatio(segmentIndex); float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); - vec4 curr = project_position(vec4(degrees(interpolate(source, target, angularDist, segmentRatio)), 0.0, 1.0)); vec4 next = project_position(vec4(degrees(interpolate(source, target, angularDist, nextSegmentRatio)), 0.0, 1.0)); - - vec2 offset = getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y); - + v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); + vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); // vec4 project_pos = project_position(vec4(curr.xy, 0, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0)); } diff --git a/packages/layers/src/line/shaders/line_arc_frag.glsl b/packages/layers/src/line/shaders/line_arc_frag.glsl index b8f0e5bbb4..e60a9710cd 100644 --- a/packages/layers/src/line/shaders/line_arc_frag.glsl +++ b/packages/layers/src/line/shaders/line_arc_frag.glsl @@ -1,10 +1,13 @@ precision mediump float; - uniform float u_Opacity; + uniform float u_opacity; varying vec4 v_color; + uniform float u_blur : 0.90; + varying vec2 v_normal; void main() { gl_FragColor = v_color; - gl_FragColor.a = v_color.a * u_Opacity; + float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)); + gl_FragColor.a *= (blur * u_opacity); } diff --git a/packages/layers/src/line/shaders/line_arc_vert.glsl b/packages/layers/src/line/shaders/line_arc_vert.glsl index abefcf54bd..5a548d510d 100644 --- a/packages/layers/src/line/shaders/line_arc_vert.glsl +++ b/packages/layers/src/line/shaders/line_arc_vert.glsl @@ -8,6 +8,7 @@ attribute float a_Size; uniform mat4 u_ModelMatrix; uniform float segmentNumber; varying vec4 v_color; +varying vec2 v_normal; #pragma include "projection" float maps (float value, float start1, float stop1, float start2, float stop2) { @@ -44,7 +45,13 @@ vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { return offset; } - +vec2 getNormal(vec2 line_clipspace, float offset_direction) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); +} void main() { v_color = a_Color; @@ -58,9 +65,8 @@ void main() { vec3 curr = getPos(source, target, segmentRatio); vec3 next = getPos(source, target, nextSegmentRatio); vec2 offset = getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y); + v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); - // vec4 project_pos = project_position(vec4(curr, 1.0)); - - gl_Position = project_common_position_to_clipspace(vec4(curr.xy + project_pixel(offset), curr.z, 1.0)); + gl_Position = project_common_position_to_clipspace(vec4(curr.xy + project_pixel(offset), curr.z, 1.0)); } diff --git a/packages/layers/src/line/shaders/line_bezier_vert.glsl b/packages/layers/src/line/shaders/line_bezier_vert.glsl new file mode 100644 index 0000000000..c20ad08621 --- /dev/null +++ b/packages/layers/src/line/shaders/line_bezier_vert.glsl @@ -0,0 +1,67 @@ +precision mediump float; +attribute vec4 a_Color; +attribute vec3 a_Position; +attribute vec4 a_Instance; +attribute float a_Size; +uniform mat4 u_ModelMatrix; +uniform float segmentNumber; +varying vec4 v_color; +varying vec2 v_normal; +#pragma include "projection" + +float bezier3(vec3 arr, float t) { + float ut = 1. - t; + return (arr.x * ut + arr.y * t) * ut + (arr.y * ut + arr.z * t) * t; +} +vec2 midPoint(vec2 source, vec2 target) { + vec2 center = target - source; + float r = length(center); + float theta = atan(center.y, center.x); + float thetaOffset = 0.314; + float r2 = r / 2.0 / cos(thetaOffset); + float theta2 = theta + thetaOffset; + vec2 mid = vec2(r2*cos(theta2) + source.x, r2*sin(theta2) + source.y); + return mid; +} +float getSegmentRatio(float index) { + return smoothstep(0.0, 1.0, index / (segmentNumber - 1.)); +} +vec2 interpolate (vec2 source, vec2 target, float t) { + // if the angularDist is PI, linear interpolation is applied. otherwise, use spherical interpolation + vec2 mid = midPoint(source, target); + vec3 x = vec3(source.x, mid.x, target.x); + vec3 y = vec3(source.y, mid.y, target.y); + return vec2(bezier3(x ,t), bezier3(y,t)); +} +vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + vec2 offset = dir_screenspace * offset_direction * a_Size / 2.0; + return offset * vec2(1.0, -1.0); +} +vec2 getNormal(vec2 line_clipspace, float offset_direction) { + // normalized direction of the line + vec2 dir_screenspace = normalize(line_clipspace); + // rotate by 90 degrees + dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); + return reverse_offset_normal(vec3(dir_screenspace,1.0)).xy * sign(offset_direction); +} + +void main() { + v_color = a_Color; + vec2 source = a_Instance.rg; + vec2 target = a_Instance.ba; + float segmentIndex = a_Position.x; + float segmentRatio = getSegmentRatio(segmentIndex); + float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); + float nextSegmentRatio = getSegmentRatio(segmentIndex + indexDir); + + vec4 curr = project_position(vec4(interpolate(source, target, segmentRatio), 0.0, 1.0)); + vec4 next = project_position(vec4(interpolate(source, target, nextSegmentRatio), 0.0, 1.0)); + v_normal = getNormal((next.xy - curr.xy) * indexDir, a_Position.y); + vec2 offset = project_pixel(getExtrusionOffset((next.xy - curr.xy) * indexDir, a_Position.y)); + + gl_Position = project_common_position_to_clipspace(vec4(curr.xy + offset, 0, 1.0)); +} diff --git a/packages/layers/src/line/shaders/line_dash_frag.glsl b/packages/layers/src/line/shaders/line_dash_frag.glsl new file mode 100644 index 0000000000..2dbee9d6d1 --- /dev/null +++ b/packages/layers/src/line/shaders/line_dash_frag.glsl @@ -0,0 +1,18 @@ +uniform float u_blur : 0.9; +uniform float u_opacity : 1.0; +uniform float u_dash_offset : 0.0; +uniform float u_dash_ratio : 0.1; +varying vec4 v_color; +varying vec2 v_normal; + +varying float v_distance_ratio; +varying vec2 v_dash_array; +void main() { + gl_FragColor = v_color; + // gl_FragColor.a = v_distance_ratio; + // anti-alias + float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)) * u_opacity; + // gl_FragColor.a *= blur * ceil(mod(v_distance_ratio, v_dash_array.x) - v_dash_array.y); + gl_FragColor.a *= blur * (1.0- step(v_dash_array.x, mod(v_distance_ratio, v_dash_array.x +v_dash_array.y))); + +} diff --git a/packages/layers/src/line/shaders/line_dash_vert.glsl b/packages/layers/src/line/shaders/line_dash_vert.glsl new file mode 100644 index 0000000000..34e6b9b1ab --- /dev/null +++ b/packages/layers/src/line/shaders/line_dash_vert.glsl @@ -0,0 +1,32 @@ + +attribute float a_Miter; +attribute vec4 a_Color; +attribute float a_Size; +attribute vec3 a_Normal; +attribute float a_Total_Distance; +attribute vec3 a_Position; +attribute float a_Distance; +uniform mat4 u_ModelMatrix; +uniform vec2 u_dash_array: [10.0, 5.]; +uniform float u_dash_offset: 0; + +varying vec4 v_color; +varying vec2 v_dash_array; +varying vec2 v_normal; + +varying float v_distance_ratio; + +#pragma include "projection" +void main() { + + v_distance_ratio = a_Distance / a_Total_Distance; + + v_dash_array = pow(2.0, 20.0 - u_Zoom) * u_dash_array / a_Total_Distance; + + v_normal = vec2(reverse_offset_normal(a_Normal) * sign(a_Miter)); + v_color = a_Color; + vec3 size = a_Miter * a_Size * reverse_offset_normal(a_Normal); //v_normal * vec3(1., -1., 1.0); + vec2 offset = project_pixel(size.xy); + vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); + gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0, 1.0)); +} diff --git a/packages/layers/src/line/shaders/line_frag.glsl b/packages/layers/src/line/shaders/line_frag.glsl index 8379af0d5e..0af8c88906 100644 --- a/packages/layers/src/line/shaders/line_frag.glsl +++ b/packages/layers/src/line/shaders/line_frag.glsl @@ -1,9 +1,16 @@ -uniform float u_blur : 0.99; +uniform float u_blur : 0.9; +uniform float u_opacity : 1.0; +uniform float u_dash_offset : 0.0; +uniform float u_dash_ratio : 0.0; varying vec4 v_color; -varying vec3 v_normal; +varying vec2 v_normal; + +varying float v_distance_ratio; +varying float v_dash_array; void main() { gl_FragColor = v_color; // anti-alias - float blur = smoothstep(u_blur, 1., length(v_normal.xy)); + float blur = 1.- smoothstep(u_blur, 1., length(v_normal.xy)) * u_opacity; gl_FragColor.a *= blur; -} \ No newline at end of file + +} diff --git a/packages/layers/src/line/shaders/line_vert.glsl b/packages/layers/src/line/shaders/line_vert.glsl index 75f3992525..dd7f9a1792 100644 --- a/packages/layers/src/line/shaders/line_vert.glsl +++ b/packages/layers/src/line/shaders/line_vert.glsl @@ -2,22 +2,17 @@ attribute float a_Miter; attribute vec4 a_Color; attribute float a_Size; -attribute float a_Distance; -attribute float a_dash_array; -attribute float a_total_distance; attribute vec3 a_Normal; attribute vec3 a_Position; uniform mat4 u_ModelMatrix; - +#pragma include "projection" varying vec4 v_color; varying float v_dash_array; -varying vec3 v_normal; - -#pragma include "projection" +varying vec2 v_normal; void main() { - v_normal = a_Normal; + v_normal = vec2(reverse_offset_normal(a_Normal) * sign(a_Miter)); v_color = a_Color; - vec3 size = a_Miter * a_Size * v_normal; + vec3 size = a_Miter * a_Size * reverse_offset_normal(a_Normal); //v_normal * vec3(1., -1., 1.0); vec2 offset = project_pixel(size.xy); vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0)); gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0, 1.0)); diff --git a/packages/layers/src/plugins/DataMappingPlugin.ts b/packages/layers/src/plugins/DataMappingPlugin.ts index f864dfddfe..b4db541cb3 100644 --- a/packages/layers/src/plugins/DataMappingPlugin.ts +++ b/packages/layers/src/plugins/DataMappingPlugin.ts @@ -85,16 +85,14 @@ export default class DataMappingPlugin implements ILayerPlugin { if (!attribute.scale) { return []; } - const scalers = attribute?.scale?.scalers || []; const params: unknown[] = []; scalers.forEach(({ field }) => { - if (record[field]) { + if (record.hasOwnProperty(field) || attribute.scale?.type ==='variable') { params.push(record[field]); } }); - return attribute.mapping ? attribute.mapping(params) : []; } } diff --git a/packages/layers/src/plugins/FeatureScalePlugin.ts b/packages/layers/src/plugins/FeatureScalePlugin.ts index 93abe798ba..8147ca885b 100644 --- a/packages/layers/src/plugins/FeatureScalePlugin.ts +++ b/packages/layers/src/plugins/FeatureScalePlugin.ts @@ -4,6 +4,7 @@ import { ILayerPlugin, ILogService, IScale, + IScaleOptions, IStyleAttribute, IStyleScale, lazyInject, @@ -47,14 +48,18 @@ export default class FeatureScalePlugin implements ILayerPlugin { [field: string]: IStyleScale; } = {}; + private scaleOptions: IScaleOptions = {} + public apply(layer: ILayer) { layer.hooks.init.tap('FeatureScalePlugin', () => { + this.scaleOptions = layer.getScaleOptions(); const attributes = layer.styleAttributeService.getLayerStyleAttributes(); const { dataArray } = layer.getSource().data; this.caculateScalesForAttributes(attributes || [], dataArray); }); layer.hooks.beforeRender.tap('FeatureScalePlugin', () => { + this.scaleOptions = layer.getScaleOptions(); const attributes = layer.styleAttributeService.getLayerStyleAttributes(); if (attributes) { const { dataArray } = layer.getSource().data; @@ -154,15 +159,13 @@ export default class FeatureScalePlugin implements ILayerPlugin { private createScale(field: string, data?: IParseDataItem[]): IStyleScale { // 首先查找全局默认配置例如 color - const scaleOption: IScale | undefined = this.configService.getConfig()?.scales?.[field]; - + const scaleOption: IScale | undefined = this.scaleOptions[field]; const styleScale: IStyleScale = { field, scale: undefined, type: StyleScaleType.VARIABLE, option: scaleOption, }; - if (!data || !data.length) { if (scaleOption && scaleOption.type) { @@ -214,6 +217,8 @@ export default class FeatureScalePlugin implements ILayerPlugin { cfg.domain = extent(values); } else if (type === ScaleTypes.CAT) { cfg.domain = uniq(values); + } else if(type === ScaleTypes.QUANTILE) { + cfg.domain = values } return cfg; } diff --git a/packages/layers/src/plugins/MultiPassRendererPlugin.ts b/packages/layers/src/plugins/MultiPassRendererPlugin.ts index 9a9a9b5d29..02bff96d62 100644 --- a/packages/layers/src/plugins/MultiPassRendererPlugin.ts +++ b/packages/layers/src/plugins/MultiPassRendererPlugin.ts @@ -76,13 +76,6 @@ export default class MultiPassRendererPlugin implements ILayerPlugin { // 渲染前根据 viewport 调整 FBO size const { width, height } = this.rendererService.getViewportSize(); layer.multiPassRenderer.resize(width, height); - } else { - // 未开启 MultiPassRenderer,由于没有 ClearPass,渲染前需要手动 clear - this.rendererService.clear({ - color: [0, 0, 0, 0], - depth: 1, - framebuffer: null, - }); } }); } @@ -99,7 +92,7 @@ export default class MultiPassRendererPlugin implements ILayerPlugin { const { enablePicking, enableTAA } = layer.getStyleOptions(); // clear first - multiPassRenderer.add(new ClearPass()); + // multiPassRenderer.add(new ClearPass()); // picking pass if enabled if (enablePicking) { diff --git a/packages/layers/src/point/extrude.ts b/packages/layers/src/point/extrude.ts index 2d8d3fcade..82d4cf7ce3 100644 --- a/packages/layers/src/point/extrude.ts +++ b/packages/layers/src/point/extrude.ts @@ -26,7 +26,7 @@ export default class PointLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, }, }), ); @@ -78,7 +78,6 @@ export default class PointLayer extends BaseLayer { if (size) { let buffersize: number[] = []; if (Array.isArray(size)) { - // TODO 多维size支持 buffersize = size.length === 2 ? [size[0], size[0], size[1]] : size; } diff --git a/packages/layers/src/point/fill.ts b/packages/layers/src/point/fill.ts new file mode 100644 index 0000000000..a94fefbe69 --- /dev/null +++ b/packages/layers/src/point/fill.ts @@ -0,0 +1,154 @@ +import { + AttributeType, + gl, + IEncodeFeature, + ILayer, + ILayerPlugin, + ILogService, + IStyleAttributeService, + lazyInject, + TYPES, +} from '@l7/core'; +import BaseLayer from '../core/BaseLayer'; +import { rgb2arr } from '../utils/color'; +import pointFillFrag from './shaders/fill_frag.glsl'; +import pointFillVert from './shaders/fill_vert.glsl'; +interface IPointLayerStyleOptions { + opacity: number; + strokeWidth: number; + strokeColor: string; +} +export function PointTriangulation(feature: IEncodeFeature) { + const coordinates = feature.coordinates as number[]; + return { + vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates], + extrude: [-1, -1, 1, -1, 1, 1, -1, 1], + indices: [0, 1, 2, 2, 3, 0], + size: coordinates.length, + }; +} +export default class PointLayer extends BaseLayer { + public name: string = 'PointLayer'; + + protected getConfigSchema() { + return { + properties: { + opacity: { + type: 'number', + minimum: 0, + maximum: 1, + }, + }, + }; + } + + protected renderModels() { + const { + opacity = 1, + strokeColor = 'rgb(0,0,0,0)', + strokeWidth = 1, + } = this.getStyleOptions(); + this.models.forEach((model) => + model.draw({ + uniforms: { + u_opacity: opacity, + u_stroke_width: strokeWidth, + u_stroke_color: rgb2arr(strokeColor), + }, + }), + ); + return this; + } + + protected buildModels() { + this.registerBuiltinAttributes(this); + this.models = [ + this.buildLayerModel({ + moduleName: 'pointfill', + vertexShader: pointFillVert, + fragmentShader: pointFillFrag, + triangulation: PointTriangulation, + depth: { enable: false }, + }), + ]; + } + + private registerBuiltinAttributes(layer: ILayer) { + layer.styleAttributeService.registerStyleAttribute({ + name: 'extrude', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Extrude', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 2, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const extrude = [-1, -1, 1, -1, 1, 1, -1, 1]; + const extrudeIndex = (attributeIdx % 4) * 2; + return [extrude[extrudeIndex], extrude[extrudeIndex + 1]]; + }, + }, + }); + + // point layer size; + layer.styleAttributeService.registerStyleAttribute({ + name: 'size', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Size', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const { size } = feature; + return Array.isArray(size) ? [size[0]] : [size as number]; + }, + }, + }); + + // point layer size; + layer.styleAttributeService.registerStyleAttribute({ + name: 'shape', + type: AttributeType.Attribute, + descriptor: { + name: 'a_Shape', + buffer: { + // give the WebGL driver a hint that this buffer may change + usage: gl.DYNAMIC_DRAW, + data: [], + type: gl.FLOAT, + }, + size: 1, + update: ( + feature: IEncodeFeature, + featureIdx: number, + vertex: number[], + attributeIdx: number, + ) => { + const { shape = 2 } = feature; + const shape2d = layer.configService.getConfig().shape2d as string[]; + const shapeIndex = shape2d.indexOf(shape as string); + return [shapeIndex]; + }, + }, + }); + } +} diff --git a/packages/layers/src/point/image.ts b/packages/layers/src/point/image.ts index 0da6fb6c4d..0112f7be08 100644 --- a/packages/layers/src/point/image.ts +++ b/packages/layers/src/point/image.ts @@ -6,6 +6,7 @@ import { ILayerPlugin, ILogService, IStyleAttributeService, + ITexture2D, lazyInject, TYPES, } from '@l7/core'; @@ -27,7 +28,7 @@ export function PointTriangulation(feature: IEncodeFeature) { } export default class PointLayer extends BaseLayer { public name: string = 'PointLayer'; - + private texture: ITexture2D; protected getConfigSchema() { return { properties: { @@ -46,12 +47,9 @@ export default class PointLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, - u_texture: createTexture2D({ - data: this.iconService.getCanvas(), - width: 1024, - height: this.iconService.canvasHeight || 64, - }), + u_opacity: opacity || 1.0, + u_texture: this.texture, + u_textSize: [1024, this.iconService.canvasHeight || 128], }, }), ); @@ -61,7 +59,9 @@ export default class PointLayer extends BaseLayer { protected buildModels() { this.registerBuiltinAttributes(this); + this.updateTexture(); this.iconService.on('imageUpdate', () => { + this.updateTexture(); this.renderModels(); }); this.models = [ @@ -131,6 +131,7 @@ export default class PointLayer extends BaseLayer { attributeIdx: number, ) => { const iconMap = this.iconService.getIconMap(); + const { shape } = feature; const { x, y } = iconMap[shape as string] || { x: 0, y: 0 }; return [x, y]; @@ -138,4 +139,12 @@ export default class PointLayer extends BaseLayer { }, }); } + private updateTexture() { + const { createTexture2D } = this.rendererService; + this.texture = createTexture2D({ + data: this.iconService.getCanvas(), + width: 1024, + height: this.iconService.canvasHeight || 128, + }); + } } diff --git a/packages/layers/src/point/index.ts b/packages/layers/src/point/index.ts index ee41bcf005..07ea0c83c6 100644 --- a/packages/layers/src/point/index.ts +++ b/packages/layers/src/point/index.ts @@ -10,10 +10,13 @@ import { TYPES, } from '@l7/core'; import BaseLayer from '../core/BaseLayer'; +import { rgb2arr } from '../utils/color'; import pointFillFrag from './shaders/fill_frag.glsl'; import pointFillVert from './shaders/fill_vert.glsl'; interface IPointLayerStyleOptions { opacity: number; + strokeWidth: number; + strokeColor: string; } export function PointTriangulation(feature: IEncodeFeature) { const coordinates = feature.coordinates as number[]; @@ -40,11 +43,17 @@ export default class PointLayer extends BaseLayer { } protected renderModels() { - const { opacity } = this.getStyleOptions(); + const { + opacity = 1, + strokeColor = '#fff', + strokeWidth = 1, + } = this.getStyleOptions(); this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity, + u_stroke_width: strokeWidth, + u_stroke_color: rgb2arr(strokeColor), }, }), ); @@ -60,15 +69,6 @@ export default class PointLayer extends BaseLayer { fragmentShader: pointFillFrag, triangulation: PointTriangulation, depth: { enable: false }, - blend: { - enable: true, - func: { - srcRGB: gl.SRC_ALPHA, - srcAlpha: 1, - dstRGB: gl.ONE_MINUS_SRC_ALPHA, - dstAlpha: 1, - }, - }, }), ]; } diff --git a/packages/layers/src/point/point.ts b/packages/layers/src/point/point.ts deleted file mode 100644 index 59f97bef18..0000000000 --- a/packages/layers/src/point/point.ts +++ /dev/null @@ -1,130 +0,0 @@ -// import { -// gl, -// IIconService, -// IRendererService, -// IShaderModuleService, -// lazyInject, -// TYPES, -// } from '@l7/core'; -// import BaseLayer from '../core/BaseLayer'; -// import ExtrudeBuffer from './buffers/ExtrudeBuffer'; -// import ImageBuffer from './buffers/ImageBuffer'; -// import extrude_frag from './shaders/extrude_frag.glsl'; -// import extrude_vert from './shaders/extrude_vert.glsl'; -// import image_frag from './shaders/image_frag.glsl'; -// import image_vert from './shaders/image_vert.glsl'; - -// export default class PointLayer extends BaseLayer { -// public name: string = 'PointLayer'; - -// @lazyInject(TYPES.IShaderModuleService) -// private readonly shaderModule: IShaderModuleService; - -// @lazyInject(TYPES.IRendererService) -// private readonly renderer: IRendererService; - -// protected renderModels() { -// this.models.forEach((model) => -// model.draw({ -// uniforms: { -// u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], -// }, -// }), -// ); -// return this; -// } - -// protected buildModels(): void { -// this.shaderModule.registerModule('point', { -// vs: extrude_vert, -// fs: extrude_frag, -// }); -// this.shaderModule.registerModule('pointImage', { -// vs: image_vert, -// fs: image_frag, -// }); - -// this.models = []; -// const { vs, fs, uniforms } = this.shaderModule.getModule('pointImage'); -// // const buffer = new ExtrudeBuffer({ -// // data: this.getEncodedData(), -// // }); -// // buffer.computeVertexNormals('miters', false); -// const { -// createAttribute, -// createBuffer, -// createElements, -// createTexture2D, -// createModel, -// } = this.renderer; -// const buffer = new ImageBuffer({ -// data: this.getEncodedData(), -// iconMap: this.iconService.getIconMap(), -// }); -// this.models.push( -// createModel({ -// attributes: { -// a_Position: createAttribute({ -// buffer: createBuffer({ -// data: buffer.attributes.positions, -// type: gl.FLOAT, -// }), -// size: 3, -// }), -// a_normal: createAttribute({ -// buffer: createBuffer({ -// data: buffer.attributes.normals, -// type: gl.FLOAT, -// }), -// size: 3, -// }), -// a_color: createAttribute({ -// buffer: createBuffer({ -// data: buffer.attributes.colors, -// type: gl.FLOAT, -// }), -// size: 4, -// }), -// a_size: createAttribute({ -// buffer: createBuffer({ -// data: buffer.attributes.sizes, -// type: gl.FLOAT, -// }), -// size: 1, -// }), -// a_uv: createAttribute({ -// buffer: createBuffer({ -// data: buffer.attributes.uv, -// type: gl.FLOAT, -// }), -// size: 2, -// }), -// // a_shape: createAttribute({ -// // buffer: createBuffer({ -// // data: buffer.attributes.miters, -// // type: gl.FLOAT, -// // }), -// // size: 3, -// // }), -// }, -// uniforms: { -// ...uniforms, -// u_opacity: this.styleOption.opacity as number, -// u_texture: createTexture2D({ -// data: this.iconService.getCanvas(), -// width: 1024, -// height: this.iconService.canvasHeight, -// }), -// }, -// fs, -// vs, -// primitive: gl.POINTS, -// count: buffer.verticesCount, -// // elements: createElements({ -// // data: buffer.indexArray, -// // type: gl.UNSIGNED_INT, -// // }), -// }), -// ); -// } -// } diff --git a/packages/layers/src/point/shaders/circle_frag.glsl b/packages/layers/src/point/shaders/circle_frag.glsl index 82b8a77362..ca6b845eb1 100644 --- a/packages/layers/src/point/shaders/circle_frag.glsl +++ b/packages/layers/src/point/shaders/circle_frag.glsl @@ -58,4 +58,4 @@ void main() { ); gl_FragColor = opacity_t * mix(v_color * u_opacity, u_stroke_color * u_stroke_opacity, color_t); -} \ No newline at end of file +} diff --git a/packages/layers/src/point/shaders/circle_vert.glsl b/packages/layers/src/point/shaders/circle_vert.glsl index f26e1f34d7..3bea5f4854 100644 --- a/packages/layers/src/point/shaders/circle_vert.glsl +++ b/packages/layers/src/point/shaders/circle_vert.glsl @@ -49,4 +49,4 @@ void main() { // construct point coords v_data = vec4(extrude, antialiasblur, shape_type); -} \ No newline at end of file +} diff --git a/packages/layers/src/point/shaders/extrude_frag.glsl b/packages/layers/src/point/shaders/extrude_frag.glsl index 6f26ac6083..3f0cf17883 100644 --- a/packages/layers/src/point/shaders/extrude_frag.glsl +++ b/packages/layers/src/point/shaders/extrude_frag.glsl @@ -3,4 +3,4 @@ uniform float u_opacity: 1.0; void main() { gl_FragColor = v_color; gl_FragColor.a *= u_opacity; -} \ No newline at end of file +} diff --git a/packages/layers/src/point/shaders/fill_frag.glsl b/packages/layers/src/point/shaders/fill_frag.glsl index ca6b845eb1..b1eecf6211 100644 --- a/packages/layers/src/point/shaders/fill_frag.glsl +++ b/packages/layers/src/point/shaders/fill_frag.glsl @@ -1,7 +1,7 @@ uniform float u_blur : 0; uniform float u_opacity : 1; uniform float u_stroke_width : 1; -uniform vec4 u_stroke_color : [1, 1, 1, 1]; +uniform vec4 u_stroke_color : [0, 0, 0, 0]; uniform float u_stroke_opacity : 1; varying vec4 v_data; @@ -9,6 +9,7 @@ varying vec4 v_color; varying float v_radius; #pragma include "sdf_2d" +#pragma include "picking" void main() { int shape = int(floor(v_data.w + 0.5)); @@ -56,6 +57,7 @@ void main() { 0.0, inner_df ); + vec4 strokeColor = u_stroke_color == vec4(0) ? v_color : u_stroke_color; - gl_FragColor = opacity_t * mix(v_color * u_opacity, u_stroke_color * u_stroke_opacity, color_t); + gl_FragColor = opacity_t * mix(vec4(v_color.rgb, v_color.a * u_opacity), strokeColor * u_stroke_opacity, color_t); } diff --git a/packages/layers/src/point/shaders/fill_vert.glsl b/packages/layers/src/point/shaders/fill_vert.glsl index dc9a93d76e..af5cb17eb2 100644 --- a/packages/layers/src/point/shaders/fill_vert.glsl +++ b/packages/layers/src/point/shaders/fill_vert.glsl @@ -10,7 +10,9 @@ uniform float u_stroke_width : 2; varying vec4 v_data; varying vec4 v_color; varying float v_radius; + #pragma include "projection" +#pragma include "picking" void main() { // unpack color(vec2) @@ -33,4 +35,6 @@ void main() { // construct point coords v_data = vec4(extrude, antialiasblur, shape_type); + + setPickingColor(a_PickingColor); } diff --git a/packages/layers/src/point/shaders/image_frag.glsl b/packages/layers/src/point/shaders/image_frag.glsl index a7a2e01450..58992a075f 100644 --- a/packages/layers/src/point/shaders/image_frag.glsl +++ b/packages/layers/src/point/shaders/image_frag.glsl @@ -1,12 +1,26 @@ + uniform sampler2D u_texture; varying vec4 v_color; varying vec2 v_uv; +uniform vec2 u_textSize; +uniform float u_stroke_width : 1; +uniform vec4 u_stroke_color : [1, 1, 1, 1]; +uniform float u_stroke_opacity : 1; +uniform float u_opacity : 1; + +varying float v_size; void main(){ - vec2 pos= v_uv + gl_PointCoord / vec2(1024.,128.)* 64.; -// pos.y= 1.- pos.y; +vec2 pos= v_uv / u_textSize + gl_PointCoord / u_textSize * 64.; +vec2 fragmentPosition = 2.0*gl_PointCoord - 1.0; +float distance = length(fragmentPosition); +float distanceSqrd = distance * distance; +float radius = 1.; +float r = 1.0 - smoothstep(radius-(radius*0.01), + radius+(radius*0.01), + distanceSqrd); vec4 textureColor=texture2D(u_texture,pos); if(v_color == vec4(0.)){ - gl_FragColor= textureColor; + gl_FragColor= vec4(textureColor.xyz, textureColor.w * r); }else { gl_FragColor= step(0.01, textureColor.x) * v_color; } diff --git a/packages/layers/src/point/shaders/image_vert.glsl b/packages/layers/src/point/shaders/image_vert.glsl index 5b86d4df16..7aa6a25aa7 100644 --- a/packages/layers/src/point/shaders/image_vert.glsl +++ b/packages/layers/src/point/shaders/image_vert.glsl @@ -1,3 +1,4 @@ + precision highp float; attribute vec3 a_Position; attribute vec4 a_Color; @@ -6,12 +7,18 @@ attribute float a_Size; varying vec4 v_color; varying vec2 v_uv; uniform mat4 u_ModelMatrix; +uniform float u_stroke_width : 1; +varying float v_size; + #pragma include "projection" + void main() { v_color = a_Color; v_uv = a_Uv; vec4 project_pos = project_position(vec4(a_Position, 1.0)); + v_size = a_Size; + gl_Position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0)); - gl_PointSize = a_Size; + gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio; } diff --git a/packages/layers/src/point/shaders/text_frag.glsl b/packages/layers/src/point/shaders/text_frag.glsl index c10cd7a96a..d3dfa93034 100644 --- a/packages/layers/src/point/shaders/text_frag.glsl +++ b/packages/layers/src/point/shaders/text_frag.glsl @@ -18,10 +18,10 @@ void main() { lowp float buff = (6.0 - u_strokeWidth / fontScale) / SDF_PX; highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (fontScale * u_gamma_scale); - + highp float gamma_scaled = gamma * v_gamma_scale; highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist); gl_FragColor = mix(v_color * u_opacity, u_stroke, smoothstep(0., 0.5, 1. - dist)) * alpha; -} \ No newline at end of file +} diff --git a/packages/layers/src/point/text.ts b/packages/layers/src/point/text.ts index 21c8958b1c..d31753e987 100644 --- a/packages/layers/src/point/text.ts +++ b/packages/layers/src/point/text.ts @@ -56,7 +56,7 @@ export default class TextLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, }, }), ); diff --git a/packages/layers/src/polygon/index.ts b/packages/layers/src/polygon/index.ts index ec6fee9464..cf37f37f66 100644 --- a/packages/layers/src/polygon/index.ts +++ b/packages/layers/src/polygon/index.ts @@ -40,7 +40,7 @@ export default class PolygonLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, }, }), ); diff --git a/packages/layers/src/polygon/polygon3D.ts b/packages/layers/src/polygon/polygon3D.ts index 9e981a4e19..3c33e2f089 100644 --- a/packages/layers/src/polygon/polygon3D.ts +++ b/packages/layers/src/polygon/polygon3D.ts @@ -26,7 +26,7 @@ export default class PointLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1.0, + u_opacity: opacity || 1.0, }, }), ); diff --git a/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl b/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl index 72a94d2edc..6a07a19084 100644 --- a/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl +++ b/packages/layers/src/polygon/shaders/polygon_extrude_frag.glsl @@ -1,10 +1,10 @@ -uniform float u_Opacity: 1.0; +uniform float u_opacity: 1.0; varying vec4 v_Color; #pragma include "picking" void main() { gl_FragColor = v_Color; - gl_FragColor.a *= u_Opacity; + gl_FragColor.a *= u_opacity; gl_FragColor = filterColor(gl_FragColor); } diff --git a/packages/layers/src/polygon/shaders/polygon_frag.glsl b/packages/layers/src/polygon/shaders/polygon_frag.glsl index 6543d1b4d5..6a07a19084 100644 --- a/packages/layers/src/polygon/shaders/polygon_frag.glsl +++ b/packages/layers/src/polygon/shaders/polygon_frag.glsl @@ -1,10 +1,10 @@ -uniform float u_Opacity: 1.0; +uniform float u_opacity: 1.0; varying vec4 v_Color; #pragma include "picking" void main() { gl_FragColor = v_Color; - gl_FragColor.a *= u_Opacity; + gl_FragColor.a *= u_opacity; gl_FragColor = filterColor(gl_FragColor); -} \ No newline at end of file +} diff --git a/packages/layers/src/raster/image.ts b/packages/layers/src/raster/image.ts index 74a6e84465..38c29f6569 100644 --- a/packages/layers/src/raster/image.ts +++ b/packages/layers/src/raster/image.ts @@ -40,7 +40,7 @@ export default class ImageLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1, + u_opacity: opacity || 1, u_texture: this.texture, }, }), diff --git a/packages/layers/src/raster/raster.ts b/packages/layers/src/raster/raster.ts index 011eaef5bd..8a4d87bc83 100644 --- a/packages/layers/src/raster/raster.ts +++ b/packages/layers/src/raster/raster.ts @@ -48,7 +48,7 @@ export default class RasterLayer extends BaseLayer { this.models.forEach((model) => model.draw({ uniforms: { - u_Opacity: opacity || 1, + u_opacity: opacity || 1, u_texture: this.texture, u_min: min, u_width: width, diff --git a/packages/layers/src/raster/shaders/raster_frag.glsl b/packages/layers/src/raster/shaders/raster_frag.glsl index bc97a61bcb..8c56cd6d8d 100644 --- a/packages/layers/src/raster/shaders/raster_frag.glsl +++ b/packages/layers/src/raster/shaders/raster_frag.glsl @@ -1,9 +1,9 @@ varying vec4 v_color; -uniform float u_Opacity: 1.0; +uniform float u_opacity: 1.0; #define PI 3.141592653589793 void main() { gl_FragColor = v_color; - gl_FragColor.a *= u_Opacity; + gl_FragColor.a *= u_opacity; } diff --git a/packages/layers/src/utils/polylineNormal.ts b/packages/layers/src/utils/polylineNormal.ts index ddfed304a3..3ac7ee0d54 100644 --- a/packages/layers/src/utils/polylineNormal.ts +++ b/packages/layers/src/utils/polylineNormal.ts @@ -48,9 +48,10 @@ function addNext( } function lineSegmentDistance(end: vec2, start: vec2) { - const dx = start[0] - end[0]; - const dy = start[1] - end[1]; - // const dz = start[2] - end[2]; + const a1 = aProjectFlat([start[0], start[1]]); + const b1 = aProjectFlat([end[0], end[1]]); + const dx = a1[0] - b1[0]; + const dy = a1[1] - b1[1]; return Math.sqrt(dx * dx + dy * dy); } @@ -212,12 +213,14 @@ export default function( } const pickData = []; for (let i = 0; i < miters.length; i++) { + const totalDistance = attrDistance[attrDistance.length - 1]; pickData.push( attrPos[i * 3], attrPos[i * 3 + 1], attrPos[i * 3 + 1], attrDistance[i], miters[i], + totalDistance, ); } return { diff --git a/packages/maps/src/amap/Viewport.ts b/packages/maps/src/amap/Viewport.ts index 0338737dd6..d7b63e5ca5 100644 --- a/packages/maps/src/amap/Viewport.ts +++ b/packages/maps/src/amap/Viewport.ts @@ -24,7 +24,6 @@ export default class Viewport implements IViewport { far = 1000, fov = 0, } = mapCamera; - this.zoom = zoom; this.center = center; diff --git a/packages/maps/src/amap/index.ts b/packages/maps/src/amap/index.ts index c1bbd6cb4f..696f06db42 100644 --- a/packages/maps/src/amap/index.ts +++ b/packages/maps/src/amap/index.ts @@ -10,16 +10,18 @@ import { IMapService, IPoint, IViewport, + MapServiceEvent, MapType, TYPES, } from '@l7/core'; import { DOM } from '@l7/utils'; import { inject, injectable } from 'inversify'; import { IAMapEvent, IAMapInstance } from '../../typings/index'; +import { MapTheme } from './theme'; import Viewport from './Viewport'; const AMAP_API_KEY: string = '15cd8a57710d40c9b7c0e3cc120f1200'; -const AMAP_VERSION: string = '1.4.8'; +const AMAP_VERSION: string = '1.4.15'; const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12; /** @@ -31,8 +33,9 @@ export default class AMapService implements IMapService { @inject(TYPES.ICoordinateSystemService) private readonly coordinateSystemService: ICoordinateSystemService; + @inject(TYPES.IEventEmitter) + private eventEmitter: IEventEmitter; private markerContainer: HTMLElement; - private $mapContainer: HTMLElement | null; private $jsapi: HTMLScriptElement; @@ -56,9 +59,12 @@ export default class AMapService implements IMapService { // map event public on(type: string, handle: (...args: any[]) => void): void { - this.map.on(type, handle); + if (MapServiceEvent.indexOf(type) !== -1) { + this.eventEmitter.on(type, handle); + } else { + this.map.on(type, handle); + } } - public off(type: string, handle: (...args: any[]) => void): void { this.map.off(type, handle); } @@ -137,7 +143,7 @@ export default class AMapService implements IMapService { this.map.setZoomAndCenter(zoom, center); } public setMapStyle(style: string): void { - this.setMapStyle(style); + this.map.setMapStyle(this.getMapStyle(style)); } public pixelToLngLat(pixel: [number, number]): ILngLat { const lngLat = this.map.pixelToLngLat(new AMap.Pixel(pixel[0], pixel[1])); @@ -168,10 +174,18 @@ export default class AMapService implements IMapService { } public async init(mapConfig: IMapConfig): Promise { - const { id, style, ...rest } = mapConfig; + const { + id, + style = 'light', + minZoom = 0, + maxZoom = 18, + ...rest + } = mapConfig; this.$mapContainer = document.getElementById(id); + // this.eventEmitter = container.get(TYPES.IEventEmitter); + // tslint:disable-next-line:typedef await new Promise((resolve) => { // 异步加载高德地图 @@ -179,13 +193,15 @@ export default class AMapService implements IMapService { window.onload = (): void => { // @ts-ignore this.map = new AMap.Map(id, { - mapStyle: style, + mapStyle: this.getMapStyle(style), + zooms: [minZoom, maxZoom], viewMode: '3D', ...rest, }); // 监听地图相机时间 this.map.on('camerachange', this.handleCameraChanged); + this.emit('mapload'); resolve(); }; @@ -198,10 +214,20 @@ export default class AMapService implements IMapService { this.viewport = new Viewport(); } + public emit(name: string, ...args: any[]) { + this.eventEmitter.emit(name, ...args); + } + + public once(name: string, ...args: any[]) { + this.eventEmitter.once(name, ...args); + } public destroy() { - this.map.destroy(); - document.head.removeChild(this.$jsapi); + this.eventEmitter.removeAllListeners(); + if (this.map) { + this.map.destroy(); + document.head.removeChild(this.$jsapi); + } } public getMapContainer() { @@ -224,7 +250,6 @@ export default class AMapService implements IMapService { position, } = e.camera; const { lng, lat } = this.getCenter(); - if (this.cameraChangedCallback) { // resync viewport this.viewport.syncWithMapCamera({ @@ -244,15 +269,20 @@ export default class AMapService implements IMapService { }); // set coordinate system - if (this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD) { - this.coordinateSystemService.setCoordinateSystem( - CoordinateSystem.P20_OFFSET, - ); - } else { - this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.P20); - } - + // if (this.viewport.getZoom() > LNGLAT_OFFSET_ZOOM_THRESHOLD) { + // // TODO:偏移坐标系高德地图不支持 pith bear 同步 + // this.coordinateSystemService.setCoordinateSystem( + // CoordinateSystem.P20_OFFSET, + // ); + // } else { + // this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.P20); + // } + this.coordinateSystemService.setCoordinateSystem(CoordinateSystem.P20); this.cameraChangedCallback(this.viewport); } }; + + private getMapStyle(name: string) { + return MapTheme[name] ? MapTheme[name] : name; + } } diff --git a/packages/maps/src/amap/theme.ts b/packages/maps/src/amap/theme.ts new file mode 100644 index 0000000000..ce284d7338 --- /dev/null +++ b/packages/maps/src/amap/theme.ts @@ -0,0 +1,7 @@ +export const MapTheme: { + [key: string]: any; +} = { + dark: 'amap://styles/2a09079c3daac9420ee53b67307a8006?isPublic=true', + light: 'amap://styles/1fd9f8ef9751298f11f5c56968312c70?isPublic=true', + normal: 'amap://styles/12db649ba3493333b098127ed892c0cb?isPublic=true', +}; diff --git a/packages/maps/src/map.ts b/packages/maps/src/map.ts new file mode 100644 index 0000000000..25f1799d7d --- /dev/null +++ b/packages/maps/src/map.ts @@ -0,0 +1,34 @@ +import { + Bounds, + container, + CoordinateSystem, + ICoordinateSystemService, + ILngLat, + IMapConfig, + IMapService, + IPoint, + IViewport, + MapType, + TYPES, +} from '@l7/core'; +import { DOM } from '@l7/utils'; +import { inject, injectable } from 'inversify'; +import { IAMapEvent, IAMapInstance } from '../typings/index'; + +@injectable() +export default class MapService implements IMapService { + public map: MapInstance; + + @inject(TYPES.ICoordinateSystemService) + protected readonly coordinateSystemService: ICoordinateSystemService; + @inject(TYPES.IEventEmitter) + protected eventEmitter: IEventEmitter; + protected markerContainer: HTMLElement; + protected $mapContainer: HTMLElement | null; + + private cameraChangedCallback: (viewport: IViewport) => void; + + public getMarkerContainer(): HTMLElement { + return this.markerContainer; + } +} diff --git a/packages/maps/src/mapbox/index.ts b/packages/maps/src/mapbox/index.ts index 2ce6f0d59c..218a89788b 100644 --- a/packages/maps/src/mapbox/index.ts +++ b/packages/maps/src/mapbox/index.ts @@ -10,6 +10,7 @@ import { IMapService, IPoint, IViewport, + MapServiceEvent, MapType, TYPES, } from '@l7/core'; @@ -24,7 +25,7 @@ const EventMap: { mapmove: 'move', camerachange: 'move', }; - +import { MapTheme } from './theme'; mapboxgl.accessToken = 'pk.eyJ1IjoieGlhb2l2ZXIiLCJhIjoiY2pxcmc5OGNkMDY3cjQzbG42cXk5NTl3YiJ9.hUC5Chlqzzh0FFd_aEc-uQ'; const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12; @@ -37,6 +38,9 @@ export default class MapboxService implements IMapService { public map: Map & IMapboxInstance; @inject(TYPES.ICoordinateSystemService) private readonly coordinateSystemService: ICoordinateSystemService; + + @inject(TYPES.IEventEmitter) + private eventEmitter: IEventEmitter; private viewport: Viewport; private markerContainer: HTMLElement; private cameraChangedCallback: (viewport: IViewport) => void; @@ -55,7 +59,12 @@ export default class MapboxService implements IMapService { // map event public on(type: string, handle: (...args: any[]) => void): void { - this.map.on(EventMap[type] || type, handle); + if (MapServiceEvent.indexOf('mapload') !== -1) { + this.eventEmitter.on(type, handle); + } else { + // 统一事件名称 + this.map.on(EventMap[type] || type, handle); + } } public off(type: string, handle: (...args: any[]) => void): void { this.map.off(EventMap[type] || type, handle); @@ -142,7 +151,7 @@ export default class MapboxService implements IMapService { } public setMapStyle(style: string): void { - this.map.setStyle(style); + this.map.setStyle(this.getMapStyle(style)); } // TODO: 计算像素坐标 public pixelToLngLat(pixel: [number, number]): ILngLat { @@ -162,7 +171,12 @@ export default class MapboxService implements IMapService { } public async init(mapConfig: IMapConfig): Promise { - const { id, attributionControl = false, ...rest } = mapConfig; + const { + id, + attributionControl = false, + style = 'light', + ...rest + } = mapConfig; this.$mapContainer = document.getElementById(id); this.viewport = new Viewport(); @@ -174,9 +188,11 @@ export default class MapboxService implements IMapService { // @ts-ignore this.map = new mapboxgl.Map({ container: id, + style: this.getMapStyle(style), attributionControl, ...rest, }); + this.map.on('load', this.handleCameraChanged); this.map.on('move', this.handleCameraChanged); // 不同于高德地图,需要手动触发首次渲染 @@ -191,9 +207,18 @@ export default class MapboxService implements IMapService { } public destroy() { - document.head.removeChild(this.$link); - this.$mapContainer = null; - this.map.remove(); + this.eventEmitter.removeAllListeners(); + if (this.map) { + this.map.remove(); + document.head.removeChild(this.$link); + this.$mapContainer = null; + } + } + public emit(name: string, ...args: any[]) { + this.eventEmitter.emit(name, ...args); + } + public once(name: string, ...args: any[]) { + this.eventEmitter.once(name, ...args); } public getMapContainer() { @@ -234,6 +259,7 @@ export default class MapboxService implements IMapService { this.cameraChangedCallback(this.viewport); }; + private removeLogoControl(): void { // @ts-ignore const controls = this.map._controls as IControl[]; @@ -246,4 +272,8 @@ export default class MapboxService implements IMapService { this.map.removeControl(logoCtr); } } + + private getMapStyle(name: string) { + return MapTheme[name] ? MapTheme[name] : name; + } } diff --git a/packages/maps/src/mapbox/theme.ts b/packages/maps/src/mapbox/theme.ts new file mode 100644 index 0000000000..9b16ab1e5c --- /dev/null +++ b/packages/maps/src/mapbox/theme.ts @@ -0,0 +1,7 @@ +export const MapTheme: { + [key: string]: any; +} = { + light: 'mapbox://styles/zcxduo/ck233y3ru1di71cnulo9jdg2v', + dark: 'mapbox://styles/zcxduo/ck241p6413s0b1cpayzldv7x7', + normal: 'mapbox://styles/zcxduo/ck2mzfaem0vdw1covi2yy793s', +}; diff --git a/packages/maps/typings/index.d.ts b/packages/maps/typings/index.d.ts index e4dcf73132..2cc081b0c5 100644 --- a/packages/maps/typings/index.d.ts +++ b/packages/maps/typings/index.d.ts @@ -1,4 +1,5 @@ /// +/// import { IControl } from 'mapbox-gl'; @@ -29,3 +30,22 @@ interface IMapboxInstance { height: number; }; } +interface IEventEmitter { + emit(event: EventTypes, ...args: any[]): boolean; + /** + * Add a listener for a given event. + */ + on(event: EventTypes, handle: (...args: any[]) => void, context?: any): this; + + off( + event: EventTypes, + handle: (...args: any[]) => void, + context?: any, + once?: boolean, + ): this; + + /** + * Remove all listeners, or those of the specified event. + */ + removeAllListeners(event?: EventTypes): this; +} diff --git a/packages/renderer/src/regl/ReglModel.ts b/packages/renderer/src/regl/ReglModel.ts index 16730973cb..661d4f4a79 100644 --- a/packages/renderer/src/regl/ReglModel.ts +++ b/packages/renderer/src/regl/ReglModel.ts @@ -85,7 +85,6 @@ export default class ReglModel implements IModel { this.initBlendDrawParams({ blend }, drawParams); this.initStencilDrawParams({ stencil }, drawParams); this.initCullDrawParams({ cull }, drawParams); - this.drawCommand = reGl(drawParams); } @@ -132,7 +131,6 @@ export default class ReglModel implements IModel { | ReglTexture2D).get(); } }); - this.drawCommand(reglDrawProps); } diff --git a/packages/scene/package.json b/packages/scene/package.json index 09fde486c7..1787e32e86 100644 --- a/packages/scene/package.json +++ b/packages/scene/package.json @@ -22,6 +22,7 @@ "@l7/core": "^0.0.1", "@l7/maps": "^0.0.1", "@l7/renderer": "^0.0.1", + "@l7/component": "^0.0.1", "mapbox-gl": "^1.2.1", "inversify": "^5.0.1", "inversify-inject-decorators": "^3.1.0", diff --git a/packages/scene/src/index.ts b/packages/scene/src/index.ts index ca35343e94..3b0243cd73 100644 --- a/packages/scene/src/index.ts +++ b/packages/scene/src/index.ts @@ -1,3 +1,4 @@ +import { Logo } from '@l7/component'; import { Bounds, container, @@ -6,6 +7,7 @@ import { IIconService, IImage, ILayer, + ILayerService, ILngLat, IMapConfig, IMapService, @@ -64,16 +66,16 @@ let mapType: MapType; * scene.render(); */ class Scene { - public map: AMap.Map | Map; + // public map: AMap.Map | Map; private sceneService: ISceneService; private mapService: IMapService; private controlService: IControlService; + private layerService: ILayerService; private iconService: IIconService; public constructor(config: IMapConfig & IRenderConfig) { const { type = MapType.amap } = config; - // 根据用户传入参数绑定地图服务 let mapServiceImpl: new (...args: any[]) => IMapService; if (type === MapType.mapbox) { @@ -104,8 +106,11 @@ class Scene { this.mapService = container.get(TYPES.IMapService); this.iconService = container.get(TYPES.IIconService); this.controlService = container.get(TYPES.IControlService); - this.map = this.mapService.map; // 暴露原生map方法 + this.layerService = container.get(TYPES.ILayerService); mapType = this.mapService.getType(); + // 初始化 scene + + this.init(); } public getMapService(): IMapService { @@ -113,10 +118,26 @@ class Scene { // } + public get map() { + return this.mapService.map; + } + public addLayer(layer: ILayer): void { this.sceneService.addLayer(layer); } + public getLayers(): ILayer[] { + return this.layerService.getLayers(); + } + + public getLayer(id: string): ILayer | undefined { + return this.layerService.getLayer(id); + } + + public removeLayer(layer: ILayer): void { + this.layerService.remove(layer); + } + public render(): void { this.sceneService.render(); } @@ -136,7 +157,13 @@ class Scene { // map control method public addControl(ctr: IControl) { - this.controlService.addControl(ctr, this.mapService); + if (this.mapService.map) { + this.controlService.addControl(ctr, this.mapService); + } else { + this.mapService.once('mapload', () => { + this.controlService.addControl(ctr, this.mapService); + }); + } } public removeControl(ctr: IControl) { @@ -238,6 +265,15 @@ class Scene { // TODO: 清理其他 Service 例如 IconService } + private init(): void { + this.initControl(); + this.render(); + } + + private initControl(): void { + this.addControl(new Logo()); + } + // 资源管理 } diff --git a/packages/source/src/transform/grid.ts b/packages/source/src/transform/grid.ts index 54aada184d..1d829ea49a 100644 --- a/packages/source/src/transform/grid.ts +++ b/packages/source/src/transform/grid.ts @@ -19,8 +19,8 @@ export function aggregatorToGrid(data: IParserData, option: ITransform) { const { gridHash, gridOffset } = _pointsGridHash(dataArray, size); const layerData = _getGridLayerDataFromGridHash(gridHash, gridOffset, option); return { - yOffset: gridOffset.yOffset / 1.8, - xOffset: gridOffset.xOffset / 1.8, + yOffset: gridOffset.yOffset / 1.6, + xOffset: gridOffset.xOffset / 1.6, radius: gridOffset.xOffset, dataArray: layerData, }; diff --git a/site/locale.json b/site/locale.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/site/pages/index.en.ts b/site/pages/index.en.ts new file mode 100644 index 0000000000..4816cd94d3 --- /dev/null +++ b/site/pages/index.en.ts @@ -0,0 +1,2 @@ +import Index from './index.zh'; +export default Index; diff --git a/site/pages/index.zh.ts b/site/pages/index.zh.ts new file mode 100644 index 0000000000..41eb5c9ca2 --- /dev/null +++ b/site/pages/index.zh.ts @@ -0,0 +1,5 @@ +const IndexPage = () => { + return 'test'; +}; + +export default IndexPage; diff --git a/stories/Animation/components/Polygon.tsx b/stories/Animation/components/Polygon.tsx index be6b7594ad..3786c27b78 100644 --- a/stories/Animation/components/Polygon.tsx +++ b/stories/Animation/components/Polygon.tsx @@ -56,7 +56,7 @@ export default class Mapbox extends React.Component { ]) .shape('fill') .style({ - opacity: 0.8, + opacity: 0.3, }); scene.addLayer(layer); scene.render(); diff --git a/stories/Layers/components/Line.tsx b/stories/Layers/components/Line.tsx index 55dd4d5bcb..e3542876d2 100644 --- a/stories/Layers/components/Line.tsx +++ b/stories/Layers/components/Line.tsx @@ -57,7 +57,7 @@ export default class LineDemo extends React.Component { '#002466', ].reverse(), ) - .render(); + scene.addLayer(lineLayer); scene.render(); this.scene = scene; diff --git a/stories/Layers/components/Point.tsx b/stories/Layers/components/Point.tsx index 00c39467ce..303a9217d6 100644 --- a/stories/Layers/components/Point.tsx +++ b/stories/Layers/components/Point.tsx @@ -53,7 +53,11 @@ export default class Point3D extends React.Component { 'rhombus', 'vesica', ]) - .size('scalerank', [2, 4, 6, 8, 10]); + .size('scalerank', [5,10]) + .style({ + opacity: 1.0 + }) + ; scene.addLayer(pointLayer); console.log(pointLayer); scene.render(); diff --git a/stories/Layers/components/heatMap.tsx b/stories/Layers/components/heatMap.tsx index 4dc2c55241..932a838c23 100644 --- a/stories/Layers/components/heatMap.tsx +++ b/stories/Layers/components/heatMap.tsx @@ -23,7 +23,7 @@ export default class HeatMapLayerDemo extends React.Component { zoom: 2, }); const layer = new HeatMapLayer({ - enableTAA: true, + enableTAA: false, }); layer .source(await response.json()) @@ -31,10 +31,9 @@ export default class HeatMapLayerDemo extends React.Component { .style({ intensity: 2, radius: 20, - opacity: 0.5, + opacity: 0.6, rampColors: { colors: [ - 'rgba(0,0,0,0)', '#2E8AE6', '#69D1AB', '#DAF291', @@ -42,7 +41,7 @@ export default class HeatMapLayerDemo extends React.Component { '#FF7A45', '#CF1D49', ], - positions: [0, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0], + positions: [0,0.2, 0.4, 0.6, 0.8, 1.0], }, }); scene.addLayer(layer); diff --git a/stories/Layers/components/pointImage.tsx b/stories/Layers/components/pointImage.tsx index 7d2dcf820f..1d35687395 100644 --- a/stories/Layers/components/pointImage.tsx +++ b/stories/Layers/components/pointImage.tsx @@ -1,4 +1,4 @@ -import { PointImageLayer } from '@l7/layers'; +import { PointImageLayer, PointLayer } from '@l7/layers'; import { Scene } from '@l7/scene'; import * as React from 'react'; import data from '../data/data.json'; @@ -9,39 +9,51 @@ export default class PointImage extends React.Component { this.scene.destroy(); } - public componentDidMount() { + public async componentDidMount() { + const response = await fetch( + 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json', + ); const scene = new Scene({ - center: [120.19382669582967, 30.258134], + center: [121.40, 31.258134], + zoom: 15, id: 'map', pitch: 0, type: 'mapbox', style: 'mapbox://styles/mapbox/streets-v9', - zoom: 1, }); - const pointLayer = new PointImageLayer({}); - const p1 = { - type: 'FeatureCollection', - features: [ - { - type: 'Feature', - properties: {}, - geometry: { - type: 'Point', - coordinates: [83.671875, 44.84029065139799], - }, - }, - ], - }; scene.addImage( '00', - 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*kzTMQqS2QdUAAAAAAAAAAABkARQnAQ', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*Rq6tQ5b4_JMAAAAAAAAAAABkARQnAQ', ); - pointLayer - .source(data) - .shape('00') - .size(30); - scene.addLayer(pointLayer); - scene.render(); + scene.addImage( + '01', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*0D0SQ6AgkRMAAAAAAAAAAABkARQnAQ', + ); + scene.addImage( + '02', + 'https://gw.alipayobjects.com/mdn/antv_site/afts/img/A*o16fSIvcKdUAAAAAAAAAAABkARQnAQ', + ); + this.scene = scene; + scene.on('loaded', () => { + run(); + }); + const imageLayer = new PointImageLayer({}) + .source(await response.json(), { + parser: { + type: 'json', + x: 'longitude', + y: 'latitude', + } + }) + .shape('name', ['00', '01', '02']) + .size(60); + scene.addLayer(imageLayer); + + function run() { + scene.render(); + console.log('render'); + requestAnimationFrame(run); + } this.scene = scene; } diff --git a/stories/Picking/components/Highlight.tsx b/stories/Picking/components/Highlight.tsx index 3211675500..6c004bd8cb 100644 --- a/stories/Picking/components/Highlight.tsx +++ b/stories/Picking/components/Highlight.tsx @@ -38,7 +38,7 @@ export default class Highlight extends React.Component { highlightColor: [0, 0, 1, 1], onHover: (pickedFeature) => { // tslint:disable-next-line:no-console - console.log(pickedFeature); + // console.log(pickedFeature); }, }); @@ -59,7 +59,7 @@ export default class Highlight extends React.Component { }); scene.addLayer(layer); scene.render(); - + console.log(layer); this.scene = scene; /*** 运行时修改样式属性 ***/ diff --git a/stories/Picking/components/Tooltip.tsx b/stories/Picking/components/Tooltip.tsx index 120f0dc957..d833036b65 100644 --- a/stories/Picking/components/Tooltip.tsx +++ b/stories/Picking/components/Tooltip.tsx @@ -29,7 +29,7 @@ export default class Mapbox extends React.Component { enableHighlight: false, onHover: (pickedFeature) => { // tslint:disable-next-line:no-console - console.log(pickedFeature); + // console.log(pickedFeature); }, }); diff --git a/tslint.json b/tslint.json index 8cd0ecd6f6..25de824011 100644 --- a/tslint.json +++ b/tslint.json @@ -17,5 +17,8 @@ "no-bitwise": false, "object-literal-sort-keys": false, "no-implicit-dependencies": false + }, + "globals": { + "AMap": true } } diff --git a/tslint.prod.json b/tslint.prod.json index 3cae08d96e..24d12a308b 100644 --- a/tslint.prod.json +++ b/tslint.prod.json @@ -6,4 +6,4 @@ "linterOptions": { "exclude": ["**/*.d.ts", "**/*.{test,story}.ts{,x}"] } -} \ No newline at end of file +}