You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by kg...@apache.org on 2024/08/28 15:17:19 UTC
(superset) branch master updated: fix: Handle zstd encoding in webpack proxy config (#30034)
This is an automated email from the ASF dual-hosted git repository.
kgabryje pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 75c500c9a5 fix: Handle zstd encoding in webpack proxy config (#30034)
75c500c9a5 is described below
commit 75c500c9a53ce503b8636761f17b5b63eb8ee8e2
Author: Kamil Gabryjelski <ka...@gmail.com>
AuthorDate: Wed Aug 28 17:17:12 2024 +0200
fix: Handle zstd encoding in webpack proxy config (#30034)
---
Dockerfile | 3 +-
superset-frontend/package-lock.json | 120 +++++++++++++++++++++++++++---
superset-frontend/package.json | 1 +
superset-frontend/webpack.proxy-config.js | 3 +
4 files changed, 117 insertions(+), 10 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index cd859490d3..ab41244654 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -31,7 +31,8 @@ RUN apt-get update -qq \
&& apt-get install \
-yqq --no-install-recommends \
build-essential \
- python3
+ python3 \
+ zstd
ENV BUILD_CMD=${NPM_BUILD_CMD} \
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index 1e5add2942..46931fce7d 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -135,6 +135,7 @@
"rimraf": "^6.0.1",
"rison": "^0.1.1",
"scroll-into-view-if-needed": "^3.1.0",
+ "simple-zstd": "^1.4.2",
"tinycolor2": "^1.4.2",
"urijs": "^1.19.8",
"use-event-callback": "^0.1.0",
@@ -22209,6 +22210,12 @@
"version": "1.5.5",
"license": "Apache-2.0"
},
+ "node_modules/duplex-maker": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/duplex-maker/-/duplex-maker-1.0.0.tgz",
+ "integrity": "sha512-KoHuzggxg7f+vvjqOHfXxaQYI1POzBm+ah0eec7YDssZmbt6QFBI8d1nl5GQwAgR2f+VQCPvyvZtmWWqWuFtlA==",
+ "license": "MIT"
+ },
"node_modules/duplexer": {
"version": "0.1.2",
"dev": true,
@@ -22223,7 +22230,6 @@
},
"node_modules/duplexify": {
"version": "3.7.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.0.0",
@@ -22408,7 +22414,6 @@
},
"node_modules/end-of-stream": {
"version": "1.4.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"once": "^1.4.0"
@@ -29151,6 +29156,12 @@
"node": ">=8"
}
},
+ "node_modules/is-zst": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-zst/-/is-zst-1.0.0.tgz",
+ "integrity": "sha512-ZA5lvshKAl8z30dX7saXLpVhpsq3d2EHK9uf7qtUjnOtdw4XBpAoWb2RvZ5kyoaebdoidnGI0g2hn9Z7ObPbww==",
+ "license": "MIT"
+ },
"node_modules/isarray": {
"version": "1.0.0",
"license": "MIT"
@@ -42273,7 +42284,6 @@
},
"node_modules/peek-stream": {
"version": "1.1.3",
- "dev": true,
"license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
@@ -43168,6 +43178,19 @@
"node": ">=8"
}
},
+ "node_modules/process-streams": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/process-streams/-/process-streams-1.0.3.tgz",
+ "integrity": "sha512-xkIaM5vYnyekB88WyET78YEqXiaJRy0xcvIdE22n+myhvBT7LlLmX6iAtq7jDvVH8CUx2rqQsd32JdRyJMV3NA==",
+ "funding": [
+ "https://www.paypal.com/donate/?hosted_button_id=GB656ZSAEQEXN",
+ "https://de.liberapay.com/nils.knappmeier/"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "duplex-maker": "^1.0.0"
+ }
+ },
"node_modules/process-warning": {
"version": "1.0.0",
"dev": true,
@@ -48078,6 +48101,41 @@
"version": "0.3.2",
"license": "MIT"
},
+ "node_modules/simple-zstd": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.2.tgz",
+ "integrity": "sha512-kGYEvT33M5XfyQvvW4wxl3eKcWbdbCc1V7OZzuElnaXft0qbVzoIIXHXiCm3JCUki+MZKKmvjl8p2VGLJc5Y/A==",
+ "license": "MIT",
+ "dependencies": {
+ "is-zst": "^1.0.0",
+ "peek-stream": "^1.1.3",
+ "process-streams": "^1.0.1",
+ "through2": "^4.0.2"
+ }
+ },
+ "node_modules/simple-zstd/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/simple-zstd/node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "3"
+ }
+ },
"node_modules/sinon": {
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.0.tgz",
@@ -49070,7 +49128,6 @@
},
"node_modules/stream-shift": {
"version": "1.0.3",
- "dev": true,
"license": "MIT"
},
"node_modules/streamx": {
@@ -73343,6 +73400,11 @@
"draco3d": {
"version": "1.5.5"
},
+ "duplex-maker": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/duplex-maker/-/duplex-maker-1.0.0.tgz",
+ "integrity": "sha512-KoHuzggxg7f+vvjqOHfXxaQYI1POzBm+ah0eec7YDssZmbt6QFBI8d1nl5GQwAgR2f+VQCPvyvZtmWWqWuFtlA=="
+ },
"duplexer": {
"version": "0.1.2",
"dev": true
@@ -73355,7 +73417,6 @@
},
"duplexify": {
"version": "3.7.1",
- "dev": true,
"requires": {
"end-of-stream": "^1.0.0",
"inherits": "^2.0.1",
@@ -73498,7 +73559,6 @@
},
"end-of-stream": {
"version": "1.4.1",
- "dev": true,
"requires": {
"once": "^1.4.0"
}
@@ -77821,6 +77881,11 @@
"is-docker": "^2.0.0"
}
},
+ "is-zst": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-zst/-/is-zst-1.0.0.tgz",
+ "integrity": "sha512-ZA5lvshKAl8z30dX7saXLpVhpsq3d2EHK9uf7qtUjnOtdw4XBpAoWb2RvZ5kyoaebdoidnGI0g2hn9Z7ObPbww=="
+ },
"isarray": {
"version": "1.0.0"
},
@@ -85783,7 +85848,6 @@
},
"peek-stream": {
"version": "1.1.3",
- "dev": true,
"requires": {
"buffer-from": "^1.0.0",
"duplexify": "^3.5.0",
@@ -86274,6 +86338,14 @@
"fromentries": "^1.2.0"
}
},
+ "process-streams": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/process-streams/-/process-streams-1.0.3.tgz",
+ "integrity": "sha512-xkIaM5vYnyekB88WyET78YEqXiaJRy0xcvIdE22n+myhvBT7LlLmX6iAtq7jDvVH8CUx2rqQsd32JdRyJMV3NA==",
+ "requires": {
+ "duplex-maker": "^1.0.0"
+ }
+ },
"process-warning": {
"version": "1.0.0",
"dev": true
@@ -89377,6 +89449,37 @@
}
}
},
+ "simple-zstd": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.2.tgz",
+ "integrity": "sha512-kGYEvT33M5XfyQvvW4wxl3eKcWbdbCc1V7OZzuElnaXft0qbVzoIIXHXiCm3JCUki+MZKKmvjl8p2VGLJc5Y/A==",
+ "requires": {
+ "is-zst": "^1.0.0",
+ "peek-stream": "^1.1.3",
+ "process-streams": "^1.0.1",
+ "through2": "^4.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "requires": {
+ "readable-stream": "3"
+ }
+ }
+ }
+ },
"sinon": {
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.0.tgz",
@@ -90044,8 +90147,7 @@
}
},
"stream-shift": {
- "version": "1.0.3",
- "dev": true
+ "version": "1.0.3"
},
"streamx": {
"version": "2.18.0",
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 1c10bad2fb..17be2f3c1c 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -201,6 +201,7 @@
"rimraf": "^6.0.1",
"rison": "^0.1.1",
"scroll-into-view-if-needed": "^3.1.0",
+ "simple-zstd": "^1.4.2",
"tinycolor2": "^1.4.2",
"urijs": "^1.19.8",
"use-event-callback": "^0.1.0",
diff --git a/superset-frontend/webpack.proxy-config.js b/superset-frontend/webpack.proxy-config.js
index 29823144d4..c2070bb92b 100644
--- a/superset-frontend/webpack.proxy-config.js
+++ b/superset-frontend/webpack.proxy-config.js
@@ -17,6 +17,7 @@
* under the License.
*/
const zlib = require('zlib');
+const { ZSTDDecompress } = require('simple-zstd');
const yargs = require('yargs');
// eslint-disable-next-line import/no-extraneous-dependencies
@@ -127,6 +128,8 @@ function processHTML(proxyResponse, response) {
uncompress = zlib.createBrotliDecompress();
} else if (responseEncoding === 'deflate') {
uncompress = zlib.createInflate();
+ } else if (responseEncoding === 'zstd') {
+ uncompress = ZSTDDecompress();
}
if (uncompress) {
originalResponse.pipe(uncompress);