From ac68c6dd761f5887af9f08ff69675a74eab8fa02 Mon Sep 17 00:00:00 2001 From: Tarek Sherif Date: Wed, 25 Sep 2019 14:28:05 -0400 Subject: [PATCH] Stress test as pure js --- modules/core/package.json | 4 +- modules/mesh-layers/package.json | 2 +- package.json | 2 +- test/apps/stress-tests/README.md | 14 +- test/apps/stress-tests/app.js | 187 +++++++++++------------ test/apps/stress-tests/index.html | 43 ++++++ test/apps/stress-tests/package.json | 10 +- test/apps/stress-tests/render-metrics.js | 49 ------ test/apps/stress-tests/webpack.config.js | 27 +--- yarn.lock | 99 ++++++------ 10 files changed, 201 insertions(+), 236 deletions(-) create mode 100644 test/apps/stress-tests/index.html delete mode 100644 test/apps/stress-tests/render-metrics.js diff --git a/modules/core/package.json b/modules/core/package.json index ce77134adf3..bc4d7aff2a9 100644 --- a/modules/core/package.json +++ b/modules/core/package.json @@ -32,8 +32,8 @@ "dependencies": { "@loaders.gl/core": "^1.3.2", "@loaders.gl/images": "^1.3.2", - "@luma.gl/addons": "^7.3.0-beta.3", - "@luma.gl/core": "^7.3.0-beta.3", + "@luma.gl/addons": "^7.3.0-beta.4", + "@luma.gl/core": "^7.3.0-beta.4", "gl-matrix": "^3.0.0", "math.gl": "^3.0.0", "mjolnir.js": "^2.1.2", diff --git a/modules/mesh-layers/package.json b/modules/mesh-layers/package.json index 155c5fc8b05..1f22ab918fd 100644 --- a/modules/mesh-layers/package.json +++ b/modules/mesh-layers/package.json @@ -33,6 +33,6 @@ "@deck.gl/core": "^7.3.0-beta" }, "dependencies": { - "@luma.gl/addons": "^7.3.0-beta.3" + "@luma.gl/addons": "^7.3.0-beta.4" } } diff --git a/package.json b/package.json index 0cb47d2caa4..7c4c02eb57b 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "jsdom": false }, "devDependencies": { - "@luma.gl/effects": "^7.3.0-beta.3", + "@luma.gl/effects": "^7.3.0-beta.4", "@probe.gl/bench": "^3.1.1", "@probe.gl/test-utils": "^3.1.1", "@loaders.gl/csv": "^1.3.1", diff --git a/test/apps/stress-tests/README.md b/test/apps/stress-tests/README.md index 049fbc4d98e..8dea60aa25b 100644 --- a/test/apps/stress-tests/README.md +++ b/test/apps/stress-tests/README.md @@ -2,15 +2,23 @@ -## Stress Test App - -Render a large data set and measure performance. +## Example: Use deck.gl with Mapbox Uses [Webpack](https://github.com/webpack/webpack) to bundle files and serves it with [webpack-dev-server](https://webpack.js.org/guides/development/#webpack-dev-server). ## Usage +To run this example, you need a [Mapbox access token](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/). You can either set an environment variable: + +```bash +export MapboxAccessToken= +``` + +Or set `mapboxgl.accessToken` directly in `app.js`. + +Other options can be found at [using with Mapbox GL](../../../../docs/get-started/using-with-mapbox-gl.md). + To install dependencies: ```bash diff --git a/test/apps/stress-tests/app.js b/test/apps/stress-tests/app.js index e8c6cb8d0bb..b96a496d1d0 100644 --- a/test/apps/stress-tests/app.js +++ b/test/apps/stress-tests/app.js @@ -1,16 +1,21 @@ -/* global window */ - -import React, {Component} from 'react'; -import {render} from 'react-dom'; -import DeckGL, {ScatterplotLayer} from 'deck.gl'; -import {StaticMap} from 'react-map-gl'; -import {RenderMetrics} from './render-metrics'; +/* global window, document, requestAnimationFrame */ +import {Deck} from '@deck.gl/core'; +import {ScatterplotLayer} from '@deck.gl/layers'; +import mapboxgl from 'mapbox-gl'; const NUM_LAYERS = 1000; const POINTS_PER_LAYER = 100; const SF_MIN = [-122.511289, 37.709481]; const SF_MAX = [-122.37646761, 37.806013]; +const INITIAL_VIEW_STATE = { + latitude: 37.752, + longitude: -122.427, + zoom: 11.5, + pitch: 0, + bearing: 0 +}; + function sfRandomPoints(numPoints, maxVal) { const points = new Array(numPoints); @@ -29,99 +34,81 @@ function sfRandomPoints(numPoints, maxVal) { return points; } -class Root extends Component { - constructor(props) { - super(props); - this.deckRef = React.createRef(); - - this.state = { - mapViewState: { - latitude: 37.752, - longitude: -122.427, - zoom: 11.5, - pitch: 0, - bearing: 0 - }, - metrics: null - }; - - this.layers = new Array(NUM_LAYERS); - - this.cameraShakeHandle = null; - this._cameraShake = this._cameraShake.bind(this); - this._onMetrics = this._onMetrics.bind(this); - - this._initializeLayers(); - } - - componentDidMount() { - this.cameraShakeHandle = window.requestAnimationFrame(this._cameraShake); - } - - componentWillUnmount() { - window.cancelAnimationFrame(this.cameraShakeHandle); +window.onload = () => { + const numPointsElement = document.getElementById('num-points'); + const numLayersElement = document.getElementById('num-layers'); + const fpsElement = document.getElementById('fps'); + const cpuElement = document.getElementById('cpu'); + const gpuElement = document.getElementById('gpu'); + + numPointsElement.innerHTML = NUM_LAYERS * POINTS_PER_LAYER; + numLayersElement.innerHTML = NUM_LAYERS; + + const layers = new Array(NUM_LAYERS); + + for (let i = 0; i < NUM_LAYERS; ++i) { + const r = Math.random() * 256; + const g = Math.random() * 256; + const b = Math.random() * 256; + layers[i] = new ScatterplotLayer({ + data: sfRandomPoints(POINTS_PER_LAYER, 10), + id: `scatterplotLayer${i}`, + getPosition: d => d.position, + getFillColor: [r, g, b], + getRadius: d => d.value, + opacity: 1, + pickable: true, + radiusScale: 30, + radiusMinPixels: 1, + radiusMaxPixels: 30 + }); } - _initializeLayers() { - for (let i = 0; i < NUM_LAYERS; ++i) { - const r = Math.random() * 256; - const g = Math.random() * 256; - const b = Math.random() * 256; - this.layers[i] = new ScatterplotLayer({ - data: sfRandomPoints(POINTS_PER_LAYER, 10), - id: `scatterplotLayer${i}`, - getPosition: d => d.position, - getFillColor: [r, g, b], - getRadius: d => d.value, - opacity: 1, - pickable: true, - radiusScale: 30, - radiusMinPixels: 1, - radiusMaxPixels: 30 + // Set your mapbox token here + mapboxgl.accessToken = process.env.MapboxAccessToken; // eslint-disable-line + + const map = new mapboxgl.Map({ + container: 'map', + style: 'mapbox://styles/mapbox/light-v9', + // Note: deck.gl will be in charge of interaction and event handling + interactive: false, + center: [INITIAL_VIEW_STATE.longitude, INITIAL_VIEW_STATE.latitude], + zoom: INITIAL_VIEW_STATE.zoom, + bearing: INITIAL_VIEW_STATE.bearing, + pitch: INITIAL_VIEW_STATE.pitch + }); + + const deck = new Deck({ + canvas: 'deck-canvas', + width: '100%', + height: '100%', + initialViewState: INITIAL_VIEW_STATE, + controller: true, + onViewStateChange: ({viewState}) => { + map.jumpTo({ + center: [viewState.longitude, viewState.latitude], + zoom: viewState.zoom, + bearing: viewState.bearing, + pitch: viewState.pitch }); - } - } - - _cameraShake() { - this.cameraShakeHandle = window.requestAnimationFrame(this._cameraShake); - if (this.deckRef.current) { - const deck = this.deckRef.current.deck; - const viewState = deck.viewManager.getViewState(); - deck.setProps({ - viewState: Object.assign({}, viewState, { - latitude: viewState.latitude + (Math.random() * 0.00002 - 0.00001), - longitude: viewState.longitude + (Math.random() * 0.00002 - 0.00001) - }) - }); - } - } - - _onMetrics(metrics) { - this.setState({metrics: Object.assign({}, metrics)}); - } - - render() { - return ( -
-
-
- Rendering {NUM_LAYERS * POINTS_PER_LAYER} points in {NUM_LAYERS} layers. -
- -
- - - -
- ); - } -} - -/* global document */ -render(, document.body.appendChild(document.createElement('div'))); + }, + _onMetrics(metrics) { + fpsElement.innerHTML = `FPS: ${Math.round(metrics.fps)}`; + cpuElement.innerHTML = `CPU Frame Time: ${metrics.cpuTimePerFrame.toFixed(2)}`; + gpuElement.innerHTML = `GPU Frame Time: ${metrics.gpuTimePerFrame.toFixed(2)}`; + }, + layers + }); + + requestAnimationFrame(function shake() { + requestAnimationFrame(shake); + + const viewState = deck.viewManager.getViewState(); + deck.setProps({ + viewState: Object.assign({}, viewState, { + latitude: viewState.latitude + (Math.random() * 0.00002 - 0.00001), + longitude: viewState.longitude + (Math.random() * 0.00002 - 0.00001) + }) + }); + }); +}; diff --git a/test/apps/stress-tests/index.html b/test/apps/stress-tests/index.html new file mode 100644 index 00000000000..4a821091a3b --- /dev/null +++ b/test/apps/stress-tests/index.html @@ -0,0 +1,43 @@ + + + + + deck.gl example + + + + +
+
+ +
+ +
+ Rendering points in layers +
+
+
+
+ + diff --git a/test/apps/stress-tests/package.json b/test/apps/stress-tests/package.json index beb91ae4e06..b35f8e6c5f9 100644 --- a/test/apps/stress-tests/package.json +++ b/test/apps/stress-tests/package.json @@ -1,5 +1,5 @@ { - "name": "frustum-cull", + "name": "pure-js-mapbox", "version": "0.0.0", "license": "MIT", "scripts": { @@ -8,15 +8,9 @@ "build": "webpack -p" }, "dependencies": { - "react": "^16.3.0", - "react-dom": "^16.3.0", - "react-map-gl": "^4.1.2" + "mapbox-gl": "^1.0.0" }, "devDependencies": { - "@babel/core": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "babel-loader": "^8.0.5", - "html-webpack-plugin": "^3.0.7", "webpack": "^4.20.2", "webpack-cli": "^3.1.2", "webpack-dev-server": "^3.1.1" diff --git a/test/apps/stress-tests/render-metrics.js b/test/apps/stress-tests/render-metrics.js deleted file mode 100644 index 4ce308c113e..00000000000 --- a/test/apps/stress-tests/render-metrics.js +++ /dev/null @@ -1,49 +0,0 @@ -import React from 'react'; - -const kB = 1024; -const MB = 1024 * 1024; -const GB = 1024 * 1024 * 1024; - -export function RenderMetrics(props) { - const metrics = props.metrics; - - if (!metrics) { - return null; - } - - return ( -
-
FPS: {Math.round(metrics.fps)}
-
- GPU Frame Time: {metrics.gpuTimePerFrame.toFixed(2)} - ms -
-
- CPU Frame Time: {metrics.cpuTimePerFrame.toFixed(2)} - ms -
-
GPU Memory: {formatMemory(metrics.gpuMemory)}
-
- ); -} - -function formatMemory(mem) { - let unit; - let val; - - if (mem < kB) { - val = mem; - unit = ' bytes'; - } else if (mem < MB) { - val = mem / kB; - unit = 'kB'; - } else if (mem < GB) { - val = mem / MB; - unit = 'MB'; - } else { - val = mem / GB; - unit = 'GB'; - } - - return `${val.toFixed(2)}${unit}`; -} diff --git a/test/apps/stress-tests/webpack.config.js b/test/apps/stress-tests/webpack.config.js index 88d1496bd69..c4e0417266f 100644 --- a/test/apps/stress-tests/webpack.config.js +++ b/test/apps/stress-tests/webpack.config.js @@ -1,9 +1,8 @@ // NOTE: To use this example standalone (e.g. outside of deck.gl repo) // delete the local development overrides at the bottom of this file -// avoid destructuring for older Node version support +const {resolve} = require('path'); const webpack = require('webpack'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); const CONFIG = { mode: 'development', @@ -12,25 +11,15 @@ const CONFIG = { app: './app.js' }, - module: { - rules: [ - { - // Transpile ES6 to ES5 with babel - // Remove if your app does not use JSX or you don't need to support old browsers - test: /\.js$/, - loader: 'babel-loader', - exclude: [/node_modules/], - options: { - presets: ['@babel/preset-react'] - } - } - ] + resolve: { + alias: { + // From mapbox-gl-js README. Required for non-browserify bundlers (e.g. webpack): + 'mapbox-gl$': resolve('./node_modules/mapbox-gl/dist/mapbox-gl.js') + } }, - plugins: [ - new HtmlWebpackPlugin({title: 'deck.gl Stress Test'}), - new webpack.EnvironmentPlugin(['MapboxAccessToken']) - ] + // Optional: Enables reading mapbox token from environment variable + plugins: [new webpack.EnvironmentPlugin(['MapboxAccessToken'])] }; // This line enables bundling against src in this repo rather than installed module diff --git a/yarn.lock b/yarn.lock index 714eb64a02e..38f755cd51f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1591,82 +1591,82 @@ stream-to-async-iterator "^0.2.0" through "^2.3.8" -"@luma.gl/addons@^7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/addons/-/addons-7.3.0-beta.3.tgz#7c6ae147321a8b5230e8770d68609aecf2ca8b26" - integrity sha512-iQk8q46eHxRW8heLYzqNaX1y21vmyyPenw44dDRrY2QWmfur/DgW52lRhdpGW4d/0y9qxGIGHr76bHnznVY6lA== +"@luma.gl/addons@^7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/addons/-/addons-7.3.0-beta.4.tgz#3f96fabf2e33869e2141499f8c363ceda7a3a541" + integrity sha512-enhbdkLFRUN97mfi0PaOxVGWRtrv5PrHp4gjNLkICrRsW0d8Kr0lFdV29S3zq8nRJHq71dG/QsBva5DGlYO17g== dependencies: "@loaders.gl/gltf" "^1.3.0" "@loaders.gl/images" "^1.3.0" - "@luma.gl/constants" "7.3.0-beta.3" + "@luma.gl/constants" "7.3.0-beta.4" math.gl "^3.0.0" -"@luma.gl/constants@7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/constants/-/constants-7.3.0-beta.3.tgz#98e174f03f2fdd990a8b96892666f30904df127f" - integrity sha512-DBVwIGKjcz14ebm9IU05rp9/YP34Hkw00Js8NwQRAjI4Gh4Z9SSzdp3p/rKpJFwxt7SHGtC6REnn+vOYkr5GdA== +"@luma.gl/constants@7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/constants/-/constants-7.3.0-beta.4.tgz#a778518216c9452c086ddb933727fe8c4dbfe802" + integrity sha512-qtKmevpIgSF/C8Mg+i0YhoW8IjvZ3U+sBxYqEMDYMPZd5JwWsr/yYMkwPoXP47QI48cCwsNkdIZXhcktispjpQ== "@luma.gl/constants@^7.3.0-alpha.1": version "7.3.0-alpha.8" resolved "https://registry.yarnpkg.com/@luma.gl/constants/-/constants-7.3.0-alpha.8.tgz#900dd18a157e9c9a0886aba6f79fae80006c2bc4" integrity sha512-MjEBfWCqYrYREMHh+XQneJlYDK+Z5Uh7cvodUhugaWRKoVbQI884ISAt4+6tWJj5DXQC/k8V1ypa+Hd3hY+oBw== -"@luma.gl/core@^7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/core/-/core-7.3.0-beta.3.tgz#ea60fbb51f9de93d522c22b7c53344486b2df082" - integrity sha512-6YDk5TcFTupSbHshf0iEDbmaib+1HIM0EKPAizmgKEPkGFBVI/xYpC9yxPSoiKe2Hw0tdyoZsI290GesbSnSYA== +"@luma.gl/core@^7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/core/-/core-7.3.0-beta.4.tgz#02aab73f9585aab25c35f6e97d4a448be7da1e6e" + integrity sha512-p3ChXTILvQmhFXhGRqUePqU1GvBG9Tr59ZfE4Sfu8jMcsf9ThweWkVZZxRtxcjw39nwkc9cxOjw72tKMTXdWcA== dependencies: "@babel/runtime" "^7.0.0" - "@luma.gl/constants" "7.3.0-beta.3" - "@luma.gl/shadertools" "7.3.0-beta.3" - "@luma.gl/webgl" "7.3.0-beta.3" - "@luma.gl/webgl-state-tracker" "7.3.0-beta.3" - "@luma.gl/webgl2-polyfill" "7.3.0-beta.3" + "@luma.gl/constants" "7.3.0-beta.4" + "@luma.gl/shadertools" "7.3.0-beta.4" + "@luma.gl/webgl" "7.3.0-beta.4" + "@luma.gl/webgl-state-tracker" "7.3.0-beta.4" + "@luma.gl/webgl2-polyfill" "7.3.0-beta.4" math.gl "^3.0.0" - probe.gl "^3.1.0" + probe.gl "^3.1.1" seer "^0.2.4" -"@luma.gl/effects@^7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/effects/-/effects-7.3.0-beta.3.tgz#07e8d6cadfbaa121b845da04c2c1fa0e178da5b1" - integrity sha512-PFW/tGg802moLgWh2bmG1H9NmKTtWqgJhSe/T197YB0aablPMz+BFtMdanDETI0lngqdLGskkJ++Ulr32rKNeg== +"@luma.gl/effects@^7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/effects/-/effects-7.3.0-beta.4.tgz#273d6aaee0c1a84d05a3c57d55ef72228c0f20e1" + integrity sha512-/wDkKkNvt1YF8L3/KbrprHkhLZju1RnRcMSTvmqxKmdkNODQVIRex+zxO1VJorIfxeOuXyfSaKLY37l73ZjEzA== dependencies: - "@luma.gl/constants" "7.3.0-beta.3" + "@luma.gl/constants" "7.3.0-beta.4" -"@luma.gl/shadertools@7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/shadertools/-/shadertools-7.3.0-beta.3.tgz#89b065df349018a5e0b97b63cd8371b1e4ce8e5c" - integrity sha512-3EbNQA/guxPlKct1BcAkiClRByijFvT99uLhNXbVkAzdbeBWrfegAJC3d7MDuXzXYdJteduXbC/l6n/PdVr8Og== +"@luma.gl/shadertools@7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/shadertools/-/shadertools-7.3.0-beta.4.tgz#8148c904f2009ed92f7a482987087c7cc6e17311" + integrity sha512-59Kfx9aKphL/WJMTKshtKFbMHqTAWG+myQc6g368n4AOXeKsOLh9efWsCD+APnNi9nOOqo52xi+CQv4olPesOg== dependencies: "@babel/runtime" "^7.0.0" math.gl "^3.0.0" -"@luma.gl/webgl-state-tracker@7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/webgl-state-tracker/-/webgl-state-tracker-7.3.0-beta.3.tgz#d1fd8ca5bbf10436f441f4822c438d96e8bd966c" - integrity sha512-q+JNOvkaxNsu61vAWeF+9Tu07g+RMYca1TrbE/gy3O3PhKMLn5EZMN7/Du3zEXwrTgs3h1kwtZJwl4pvqRX9jg== +"@luma.gl/webgl-state-tracker@7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/webgl-state-tracker/-/webgl-state-tracker-7.3.0-beta.4.tgz#15ecd84a6880414e0b07dbdf959356e4c0efbd5d" + integrity sha512-k0Tjq5Gl3H+h+pXOU7LA0eruZ3pWJbqmch+4mevkt0hpWHw20jxl2t6/TGBZQNeW9pOrlgvM+CpuKq2hISPG1A== dependencies: "@babel/runtime" "^7.0.0" - "@luma.gl/constants" "7.3.0-beta.3" + "@luma.gl/constants" "7.3.0-beta.4" -"@luma.gl/webgl2-polyfill@7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/webgl2-polyfill/-/webgl2-polyfill-7.3.0-beta.3.tgz#348bad40c53553d4081cd69059821bb4d5f54b99" - integrity sha512-DvR5uFkw2J3Z8nxPPlGPFcNZavNu9oUxNf7EeubjoserhtVGyu2qOYg9nWPPVHTcAfBoTeOC5XDoKkfc4n6bVw== +"@luma.gl/webgl2-polyfill@7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/webgl2-polyfill/-/webgl2-polyfill-7.3.0-beta.4.tgz#d192b82a2da2a794ccafbe70f13ab61fb0953223" + integrity sha512-bqthFXsoZmU8BQnd8yq58lJEdPFFHbNuKcdeIvk4hKHTGtuE4h0qxATaJ165zBpDR1RZy1n76z/ceq0rKfa5Tw== dependencies: "@babel/runtime" "^7.0.0" - "@luma.gl/constants" "7.3.0-beta.3" + "@luma.gl/constants" "7.3.0-beta.4" -"@luma.gl/webgl@7.3.0-beta.3": - version "7.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@luma.gl/webgl/-/webgl-7.3.0-beta.3.tgz#c3929ea518962670d0ec156a50a073b26b09c602" - integrity sha512-eZL8Vr9lVm2A/WHc7WwQNozX4QsOcqY34/zS9GkC0sL1l2VPaWbZ8ePSxCyC+WDtlmiwUTEGIxtz1ggmVvBcMA== +"@luma.gl/webgl@7.3.0-beta.4": + version "7.3.0-beta.4" + resolved "https://registry.yarnpkg.com/@luma.gl/webgl/-/webgl-7.3.0-beta.4.tgz#9491d33df26e07debdca39010aefe1b3fc69c235" + integrity sha512-OSCmu7rpqcFVZGPwDYK7jWomu08zxt2kmRoDFR5waupMA0Himyv1tA/DJSOm8kPcyZw0ulNrkcU0+zpKZvGlZg== dependencies: "@babel/runtime" "^7.0.0" - "@luma.gl/constants" "7.3.0-beta.3" - "@luma.gl/webgl-state-tracker" "7.3.0-beta.3" - "@luma.gl/webgl2-polyfill" "7.3.0-beta.3" - probe.gl "^3.1.0" + "@luma.gl/constants" "7.3.0-beta.4" + "@luma.gl/webgl-state-tracker" "7.3.0-beta.4" + "@luma.gl/webgl2-polyfill" "7.3.0-beta.4" + probe.gl "^3.1.1" "@mapbox/geojson-area@0.2.2": version "0.2.2" @@ -8432,13 +8432,6 @@ probe.gl@3.1.1, probe.gl@^3.1.1: dependencies: "@babel/runtime" "^7.0.0" -probe.gl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.1.0.tgz#6aaeeb2d5bff85458fb7e8f7a72a57a53757c745" - integrity sha512-Bqk+hMklRtHJ29UcDvhjh0ha0JLoZI5wpPBZdzAOwciBGhPXNy1C/TD1ihKBdOlCzTw78EKVLm0eKLj5Xek5+w== - dependencies: - "@babel/runtime" "^7.0.0" - probe.gl@^3.1.0-beta.3: version "3.1.0-beta.3" resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.1.0-beta.3.tgz#41e2713dab8d8885b58cac0bbb7fc237b524788b"