diff --git a/packages/playground-vite/index.html b/packages/playground-vite/index.html
index 67ce8477a1a..9d9bef1c6b5 100644
--- a/packages/playground-vite/index.html
+++ b/packages/playground-vite/index.html
@@ -9,8 +9,6 @@
var process = { browser: true, env: { NODE_ENV: 'development' } };
Vite + React
- '', '@talend/locales-tui-components', '@talend/locales-tui-containers',
- '@talend/locales-tui-faceted-search', '@talend/locales-tui-forms',
diff --git a/packages/playground-vite/package.json b/packages/playground-vite/package.json
index 7c1eb1c9ba4..3a066ea836e 100644
--- a/packages/playground-vite/package.json
+++ b/packages/playground-vite/package.json
@@ -6,11 +6,11 @@
"type": "module",
"main": "app/index.js",
"scripts": {
- "build": "cross-env BASENAME='/playground' talend-scripts build",
+ "build": "vite build && cmf-settings",
"test": "echo nothing to test in playground",
"test:demo:umd": "cross-env BASENAME='/playground/' INITIATOR_URL='/playground/inject.js' talend-scripts build --prod",
"start": "vite dev",
- "start-dist": "talend-scripts build && node serve-dist",
+ "start-dist": "node serve-dist.mjs",
"lint": "talend-scripts lint"
},
"repository": {
@@ -31,12 +31,9 @@
"@talend/scripts-config-stylelint": "^4.4.0",
"@talend/scripts-core": "^17.0.0",
"@vitejs/plugin-react": "^4.7.0",
- "body-parser": "1.20.3",
- "compression": "^1.8.1",
"copy-webpack-plugin": "^11.0.0",
"cross-env": "^7.0.3",
"esbuild-plugin-react-virtualized": "^1.0.5",
- "express": "^5.2.1",
"i18next-http-backend": "^1.4.5",
"mockjs": "^1.1.0",
"sass": "^1.97.3",
diff --git a/packages/playground-vite/serve-dist.js b/packages/playground-vite/serve-dist.js
deleted file mode 100644
index c41cccb9ff2..00000000000
--- a/packages/playground-vite/serve-dist.js
+++ /dev/null
@@ -1,17 +0,0 @@
-const compression = require('compression');
-const express = require('express');
-const backend = require('./mockBackend/server');
-
-const options = process.argv.slice(2);
-const app = express();
-
-if (options.includes('--gzip')) {
- app.use(compression());
-}
-
-app.use(express.static('dist'));
-backend(app);
-
-app.listen(3000, () => {
- console.log('ready http://localhost:3000');
-});
diff --git a/packages/playground-vite/serve-dist.mjs b/packages/playground-vite/serve-dist.mjs
new file mode 100644
index 00000000000..b4e6e6eff6c
--- /dev/null
+++ b/packages/playground-vite/serve-dist.mjs
@@ -0,0 +1,129 @@
+/* eslint-disable no-console */
+/* eslint-disable no-underscore-dangle */
+import http from 'http';
+import fs from 'fs';
+import path from 'path';
+import { fileURLToPath } from 'url';
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+const distRoot = path.join(__dirname, 'dist');
+
+const options = process.argv.slice(2);
+const useGzip = options.includes('--gzip');
+
+// Simple static file server
+function serveStatic(req, res, filePath) {
+ fs.readFile(filePath, (err, data) => {
+ if (err) {
+ res.writeHead(404, { 'Content-Type': 'text/plain' });
+ res.end('Not Found');
+ return;
+ }
+
+ const ext = path.extname(filePath);
+ const contentTypes = {
+ '.html': 'text/html',
+ '.js': 'application/javascript',
+ '.css': 'text/css',
+ '.json': 'application/json',
+ '.png': 'image/png',
+ '.jpg': 'image/jpeg',
+ '.gif': 'image/gif',
+ '.svg': 'image/svg+xml',
+ };
+
+ const contentType = contentTypes[ext] || 'application/octet-stream';
+ const headers = {
+ 'Content-Type': contentType,
+ 'Content-Length': data.length,
+ };
+
+ if (useGzip) {
+ headers['Content-Encoding'] = 'gzip';
+ }
+
+ res.writeHead(200, headers);
+ res.end(data);
+ });
+}
+
+function resolveSafeFilePath(requestUrl) {
+ let pathname;
+ try {
+ const urlObj = new URL(requestUrl, 'http://localhost');
+ pathname = urlObj.pathname || '/';
+ } catch {
+ return { statusCode: 400, message: 'Bad Request' };
+ }
+
+ let decodedPathname;
+ try {
+ decodedPathname = decodeURIComponent(pathname);
+ } catch {
+ return { statusCode: 400, message: 'Bad Request' };
+ }
+
+ if (decodedPathname.includes('\0')) {
+ return { statusCode: 400, message: 'Bad Request' };
+ }
+
+ const normalizedPathname = path.posix.normalize(decodedPathname.replace(/\\/g, '/'));
+ if (!normalizedPathname.startsWith('/')) {
+ return { statusCode: 400, message: 'Bad Request' };
+ }
+
+ // Resolve and normalize the path, then check if file exists and resolve symlinks
+ let filePath = path.resolve(distRoot, '.' + normalizedPathname);
+
+ try {
+ // Use realpathSync to resolve any symbolic links and get the canonical path
+ filePath = fs.realpathSync(filePath);
+ } catch (err) {
+ // File doesn't exist or can't be accessed, but we'll handle this later with fs.stat
+ // For now, just ensure the non-canonical path is still within bounds
+ }
+
+ if (!filePath.startsWith(distRoot + path.sep) && filePath !== distRoot) {
+ return { statusCode: 403, message: 'Forbidden' };
+ }
+
+ return { filePath };
+}
+
+const server = http.createServer((req, res) => {
+ // Serve static files from dist
+ const { statusCode, message, filePath: resolvedFilePath } = resolveSafeFilePath(req.url);
+ let filePath = resolvedFilePath;
+ if (!filePath) {
+ res.writeHead(statusCode, { 'Content-Type': 'text/plain' });
+ res.end(message);
+ return;
+ }
+
+ // Handle directory requests (serve index.html)
+ fs.stat(filePath, (err, stats) => {
+ if (!err && stats.isDirectory()) {
+ filePath = path.join(filePath, 'index.html');
+
+ // Re-validate the path after appending index.html
+ try {
+ const realPath = fs.realpathSync(filePath);
+ if (!realPath.startsWith(distRoot + path.sep) && realPath !== distRoot) {
+ res.writeHead(403, { 'Content-Type': 'text/plain' });
+ res.end('Forbidden');
+ return;
+ }
+ filePath = realPath;
+ } catch {
+ // File doesn't exist, will be handled by serveStatic with 404
+ }
+ }
+
+ serveStatic(req, res, filePath);
+ });
+});
+
+server.listen(3000, () => {
+ console.log('ready http://localhost:3000');
+});
diff --git a/packages/playground/mockBackend/jsonForward.js b/packages/playground/mockBackend/jsonForward.js
index e4e5a0d4f0f..207cb53158a 100644
--- a/packages/playground/mockBackend/jsonForward.js
+++ b/packages/playground/mockBackend/jsonForward.js
@@ -26,20 +26,28 @@ const wait = (delay = 1000) => new Promise(resolve => setTimeout(resolve, delay)
/**
* Directly bind /api/mock/* HTTP queries to local mockBackend/mock/* contents
*/
-module.exports = function addRoutes(app) {
+module.exports = function addRoutes(req, res) {
const API_MOCK_ENDPOINT = '/api/mock';
- app.get(`${API_MOCK_ENDPOINT}/*`, (req, res) => {
- const urlPath = req.url.split('?')[0];
- const mockFilePath = `${__dirname}/mock/${urlPath.substr(API_MOCK_ENDPOINT.length)}.json`;
+ if (!req.url.startsWith(API_MOCK_ENDPOINT)) {
+ res.writeHead(404);
+ res.end('Not Found');
+ return;
+ }
- wait()
- .then(() => readFile(mockFilePath))
- .then(content => res.json(JSON.parse(content)))
- .catch(error => {
- // eslint-disable-next-line no-console
- console.error(`Unable to load mock file "${mockFilePath}" due to :`, error);
- res.status(400).send('Bad Request');
- });
- });
+ const urlPath = req.url.split('?')[0];
+ const mockFilePath = `${__dirname}/mock/${urlPath.substr(API_MOCK_ENDPOINT.length)}.json`;
+
+ wait()
+ .then(() => readFile(mockFilePath))
+ .then(content => {
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify(JSON.parse(content)));
+ })
+ .catch(error => {
+ // eslint-disable-next-line no-console
+ console.error('Unable to load mock file "%s" due to :', mockFilePath, error);
+ res.writeHead(400, { 'Content-Type': 'text/plain' });
+ res.end('Bad Request');
+ });
};
diff --git a/packages/playground/mockBackend/kit.js b/packages/playground/mockBackend/kit.js
index a61892345e5..16bbcb4302f 100644
--- a/packages/playground/mockBackend/kit.js
+++ b/packages/playground/mockBackend/kit.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-console */
const url = require('url');
const http = require('https');
const forms = require('./mock/kit');
@@ -91,7 +92,8 @@ function suggestionBig() {
cacheable: true,
items: JSON.parse(body).map(item => ({ id: item.id.toString(), label: item.title })),
};
- res.json(cache.photos);
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify(cache.photos));
}
function onResponse(resp) {
console.log(`Got response: ${resp.statusCode}`);
@@ -121,14 +123,17 @@ function updateProperties({ type }) {
function giveMeFive() {
return res => {
- res.status(500).json({
- timestamp: 1548781374412,
- status: 500,
- error: 'Internal Server Error',
- exception: 'javax.ws.rs.ClientErrorException',
- message: 'An internal server error occurs',
- path: '/proxy/v1/action/execute/dataset',
- });
+ res.writeHead(500, { 'Content-Type': 'application/json' });
+ res.end(
+ JSON.stringify({
+ timestamp: 1548781374412,
+ status: 500,
+ error: 'Internal Server Error',
+ exception: 'javax.ws.rs.ClientErrorException',
+ message: 'An internal server error occurs',
+ path: '/proxy/v1/action/execute/dataset',
+ }),
+ );
};
}
@@ -162,19 +167,24 @@ function trigger(req) {
return TRIGGERS[info.type][info.action](info.args);
}
-module.exports = function addRoutes(app) {
- app.get('/api/v1/forms/:formId', (req, res) => {
- res.json(forms[req.params.formId]);
- });
- app.post('/api/v1/forms', (req, res) => {
- res.json({ body: req.body });
- });
- app.post('/api/v1/application/action', (req, res) => {
+module.exports = function addRoutes(req, res) {
+ if (req.url.startsWith('/api/v1/forms/')) {
+ const formId = req.url.split('/')[4];
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify(forms[formId]));
+ } else if (req.url === '/api/v1/forms' && req.method === 'POST') {
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify({ body: req.body }));
+ } else if (req.url === '/api/v1/application/action' && req.method === 'POST') {
const result = trigger(req);
if (typeof result === 'function') {
result(res);
} else {
- res.json(result);
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify(result));
}
- });
+ } else {
+ res.writeHead(404);
+ res.end('Not Found');
+ }
};
diff --git a/packages/playground/mockBackend/server.js b/packages/playground/mockBackend/server.js
index a7812c84b2c..1df6ab75e9d 100644
--- a/packages/playground/mockBackend/server.js
+++ b/packages/playground/mockBackend/server.js
@@ -1,11 +1,33 @@
-const bodyParser = require('body-parser');
const kit = require('./kit');
const jsonForward = require('./jsonForward');
-const server = devServer => {
- devServer.app.use(bodyParser.json()); // for parsing application/json
- jsonForward(devServer.app);
- kit(devServer.app);
+const server = (req, res) => {
+ // Parse JSON body for POST/PUT requests
+ let body = '';
+ req.on('data', chunk => {
+ body += chunk.toString();
+ });
+ req.on('end', () => {
+ try {
+ req.body = body ? JSON.parse(body) : {};
+ } catch (e) {
+ req.body = {};
+ }
+ // Parse query string
+ const url = new URL(req.url, `http://${req.headers.host}`);
+ req.query = Object.fromEntries(url.searchParams);
+ req.url = url.pathname;
+
+ // Route to appropriate handler
+ if (req.url.startsWith('/api/mock/')) {
+ jsonForward(req, res);
+ } else if (req.url.startsWith('/api/')) {
+ kit(req, res);
+ } else {
+ res.writeHead(404);
+ res.end('Not Found');
+ }
+ });
};
module.exports = server;
diff --git a/packages/playground/package.json b/packages/playground/package.json
index e1c0d96138b..23adc6152de 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -28,12 +28,8 @@
"@talend/scripts-core": "^17.0.0",
"@talend/scripts-config-babel": "^13.9.0",
"@talend/scripts-config-stylelint": "^4.4.0",
- "body-parser": "1.20.3",
- "compression": "^1.8.1",
"copy-webpack-plugin": "^11.0.0",
"cross-env": "^7.0.3",
- "express": "^5.2.1",
- "i18next-http-backend": "^1.4.5",
"webpack": "^5.104.1"
},
"dependencies": {
diff --git a/packages/playground/serve-dist.js b/packages/playground/serve-dist.js
index c41cccb9ff2..4f20905b381 100644
--- a/packages/playground/serve-dist.js
+++ b/packages/playground/serve-dist.js
@@ -1,17 +1,99 @@
-const compression = require('compression');
-const express = require('express');
+const http = require('http');
+const fs = require('fs');
+const path = require('path');
const backend = require('./mockBackend/server');
const options = process.argv.slice(2);
-const app = express();
+const useGzip = options.includes('--gzip');
+const ROOT = path.resolve(__dirname, 'dist');
-if (options.includes('--gzip')) {
- app.use(compression());
+// Simple static file server
+function serveStatic(req, res, filePath) {
+ // Validate that the file path is within ROOT directory to prevent path traversal
+ // Normalize the path to handle both absolute and relative paths
+ const resolvedPath = path.isAbsolute(filePath)
+ ? path.resolve(filePath)
+ : path.resolve(ROOT, filePath);
+
+ if (resolvedPath !== ROOT && !resolvedPath.startsWith(ROOT + path.sep)) {
+ res.writeHead(403, { 'Content-Type': 'text/plain' });
+ res.end('Forbidden');
+ return;
+ }
+
+ fs.readFile(resolvedPath, (err, data) => {
+ if (err) {
+ res.writeHead(404, { 'Content-Type': 'text/plain' });
+ res.end('Not Found');
+ return;
+ }
+
+ const ext = path.extname(resolvedPath);
+ const contentTypes = {
+ '.html': 'text/html',
+ '.js': 'application/javascript',
+ '.css': 'text/css',
+ '.json': 'application/json',
+ '.png': 'image/png',
+ '.jpg': 'image/jpeg',
+ '.gif': 'image/gif',
+ '.svg': 'image/svg+xml',
+ };
+
+ const contentType = contentTypes[ext] || 'application/octet-stream';
+ const headers = {
+ 'Content-Type': contentType,
+ 'Content-Length': data.length,
+ };
+
+ if (useGzip) {
+ headers['Content-Encoding'] = 'gzip';
+ }
+
+ res.writeHead(200, headers);
+ res.end(data);
+ });
}
-app.use(express.static('dist'));
-backend(app);
+const server = http.createServer((req, res) => {
+ // Handle API routes through backend
+ if (req.url.startsWith('/api/')) {
+ backend(req, res);
+ return;
+ }
+
+ // Serve static files from dist
+ let urlPath;
+ try {
+ // Use WHATWG URL to reliably extract the pathname (ignores query, hash)
+ const parsedUrl = new URL(req.url, 'http://localhost');
+ urlPath = parsedUrl.pathname || '/';
+ } catch (e) {
+ res.writeHead(400, { 'Content-Type': 'text/plain' });
+ res.end('Bad Request');
+ return;
+ }
+
+ // Prevent directory traversal: resolve against ROOT and verify containment
+ let filePath = path.resolve(ROOT, '.' + urlPath);
+
+ // Ensure the resolved path is within the ROOT directory
+ if (filePath !== ROOT && !filePath.startsWith(ROOT + path.sep)) {
+ res.writeHead(403, { 'Content-Type': 'text/plain' });
+ res.end('Forbidden');
+ return;
+ }
+
+ // Handle directory requests (serve index.html)
+ fs.stat(filePath, (err, stats) => {
+ if (!err && stats.isDirectory()) {
+ filePath = path.join(filePath, 'index.html');
+ }
+
+ serveStatic(req, res, filePath);
+ });
+});
-app.listen(3000, () => {
+server.listen(3000, () => {
console.log('ready http://localhost:3000');
});
diff --git a/yarn.lock b/yarn.lock
index 1f3de75591d..4fd67aa01b0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5489,14 +5489,6 @@ abbrev@^2.0.0:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf"
integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==
-accepts@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895"
- integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==
- dependencies:
- mime-types "^3.0.0"
- negotiator "^1.0.0"
-
accepts@~1.3.4, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -6283,39 +6275,6 @@ bluebird@^3.7.2:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-body-parser@1.20.3:
- version "1.20.3"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
- integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.5"
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- on-finished "2.4.1"
- qs "6.13.0"
- raw-body "2.5.2"
- type-is "~1.6.18"
- unpipe "1.0.0"
-
-body-parser@^2.2.1:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.2.tgz#1a32cdb966beaf68de50a9dfbe5b58f83cb8890c"
- integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==
- dependencies:
- bytes "^3.1.2"
- content-type "^1.0.5"
- debug "^4.4.3"
- http-errors "^2.0.0"
- iconv-lite "^0.7.0"
- on-finished "^2.4.1"
- qs "^6.14.1"
- raw-body "^3.0.1"
- type-is "^2.0.1"
-
body-parser@~1.20.3:
version "1.20.4"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f"
@@ -6496,7 +6455,7 @@ bundle-require@^4.0.1:
dependencies:
load-tsconfig "^0.2.3"
-bytes@3.1.2, bytes@^3.1.2, bytes@~3.1.2:
+bytes@3.1.2, bytes@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
@@ -7165,11 +7124,6 @@ console-control-strings@^1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
-content-disposition@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b"
- integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==
-
content-disposition@~0.5.4:
version "0.5.4"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
@@ -7177,7 +7131,7 @@ content-disposition@~0.5.4:
dependencies:
safe-buffer "5.2.1"
-content-type@^1.0.5, content-type@~1.0.4, content-type@~1.0.5:
+content-type@~1.0.4, content-type@~1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
@@ -7192,26 +7146,21 @@ convert-source-map@^2.0.0:
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
-cookie-signature@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793"
- integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
-
cookie-signature@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.7.tgz#ab5dd7ab757c54e60f37ef6550f481c426d10454"
integrity sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==
-cookie@^0.7.1, cookie@~0.7.1, cookie@~0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
- integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
-
cookie@^1.0.2:
version "1.1.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-1.1.1.tgz#3bb9bdfc82369db9c2f69c93c9c3ceb310c88b3c"
integrity sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==
+cookie@~0.7.1, cookie@~0.7.2:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
+
cookiejar@^2.1.3:
version "2.1.4"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b"
@@ -8101,7 +8050,7 @@ delegates@^1.0.0:
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
-depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+depd@2.0.0, depd@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
@@ -8427,16 +8376,16 @@ empathic@^2.0.0:
resolved "https://registry.yarnpkg.com/empathic/-/empathic-2.0.0.tgz#71d3c2b94fad49532ef98a6c34be0386659f6131"
integrity sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==
-encodeurl@^2.0.0, encodeurl@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
- integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
-
encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
encoding@^0.1.13:
version "0.1.13"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
@@ -8814,7 +8763,7 @@ escalade@^3.1.1, escalade@^3.2.0:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-escape-html@^1.0.3, escape-html@~1.0.3:
+escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
@@ -9397,40 +9346,6 @@ express@^4.22.1:
utils-merge "1.0.1"
vary "~1.1.2"
-express@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/express/-/express-5.2.1.tgz#8f21d15b6d327f92b4794ecf8cb08a72f956ac04"
- integrity sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==
- dependencies:
- accepts "^2.0.0"
- body-parser "^2.2.1"
- content-disposition "^1.0.0"
- content-type "^1.0.5"
- cookie "^0.7.1"
- cookie-signature "^1.2.1"
- debug "^4.4.0"
- depd "^2.0.0"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- etag "^1.8.1"
- finalhandler "^2.1.0"
- fresh "^2.0.0"
- http-errors "^2.0.0"
- merge-descriptors "^2.0.0"
- mime-types "^3.0.0"
- on-finished "^2.4.1"
- once "^1.4.0"
- parseurl "^1.3.3"
- proxy-addr "^2.0.7"
- qs "^6.14.0"
- range-parser "^1.2.1"
- router "^2.2.0"
- send "^1.1.0"
- serve-static "^2.2.0"
- statuses "^2.0.1"
- type-is "^2.0.1"
- vary "^1.1.2"
-
ext@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
@@ -9666,18 +9581,6 @@ finalhandler@1.1.2:
statuses "~1.5.0"
unpipe "~1.0.0"
-finalhandler@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.1.tgz#a2c517a6559852bcdb06d1f8bd7f51b68fad8099"
- integrity sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==
- dependencies:
- debug "^4.4.0"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- on-finished "^2.4.1"
- parseurl "^1.3.3"
- statuses "^2.0.1"
-
finalhandler@~1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.2.tgz#1ebc2228fc7673aac4a472c310cc05b77d852b88"
@@ -9860,11 +9763,6 @@ fresh@0.5.2, fresh@^0.5.2, fresh@~0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4"
- integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==
-
fs-extra@11.1.1:
version "11.1.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d"
@@ -10513,18 +10411,18 @@ http-deceiver@^1.2.7:
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
-http-errors@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
- integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+http-errors@~1.8.0:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
dependencies:
- depd "2.0.0"
+ depd "~1.1.2"
inherits "2.0.4"
setprototypeof "1.2.0"
- statuses "2.0.1"
+ statuses ">= 1.5.0 < 2"
toidentifier "1.0.1"
-http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.0, http-errors@~2.0.1:
+http-errors@~2.0.0, http-errors@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
integrity sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==
@@ -10535,17 +10433,6 @@ http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.0, http-errors@~2.0.1:
statuses "~2.0.2"
toidentifier "~1.0.1"
-http-errors@~1.8.0:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
- integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.4"
- setprototypeof "1.2.0"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.1"
-
http-parser-js@>=0.5.1:
version "0.5.10"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075"
@@ -10701,13 +10588,6 @@ i18next@^23.16.8:
dependencies:
"@babel/runtime" "^7.23.2"
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.24:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
@@ -10715,7 +10595,14 @@ iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-iconv-lite@^0.7.0, iconv-lite@~0.7.0:
+iconv-lite@^0.4.24, iconv-lite@~0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.7.0:
version "0.7.2"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.2.tgz#d0bdeac3f12b4835b7359c2ad89c422a4d1cc72e"
integrity sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==
@@ -11241,11 +11128,6 @@ is-promise@^2.2.2:
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
-is-promise@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3"
- integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==
-
is-regex@^1.1.4, is-regex@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22"
@@ -12803,11 +12685,6 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
-media-typer@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561"
- integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
-
memfs@^3.4.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6"
@@ -12884,11 +12761,6 @@ merge-descriptors@1.0.3:
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
-merge-descriptors@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808"
- integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -13230,7 +13102,7 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34,
dependencies:
mime-db "1.52.0"
-mime-types@^3.0.0, mime-types@^3.0.1, mime-types@^3.0.2:
+mime-types@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.2.tgz#39002d4182575d5af036ffa118100f2524b2e2ab"
integrity sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==
@@ -13556,11 +13428,6 @@ negotiator@^0.6.3, negotiator@~0.6.4:
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
-negotiator@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
- integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
-
neo-async@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
@@ -13822,7 +13689,7 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-on-finished@2.4.1, on-finished@^2.4.1, on-finished@~2.4.1:
+on-finished@^2.4.1, on-finished@~2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
@@ -14108,7 +13975,7 @@ parse5@^7.0.0, parse5@^7.1.1, parse5@^7.2.1:
dependencies:
entities "^6.0.0"
-parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3:
+parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
@@ -14185,7 +14052,7 @@ path-to-regexp@^6.2.1, path-to-regexp@^6.3.0:
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4"
integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==
-path-to-regexp@^8.0.0, path-to-regexp@^8.3.0:
+path-to-regexp@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f"
integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==
@@ -14971,7 +14838,7 @@ prop-types@15.7.2, prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.8, pro
object-assign "^4.1.1"
react-is "^16.13.1"
-proxy-addr@^2.0.7, proxy-addr@~2.0.7:
+proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
@@ -15023,7 +14890,7 @@ pvutils@^1.1.3:
resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c"
integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==
-qs@6.13.0, qs@>=6.14.1, qs@^6.10.0, qs@^6.10.3, qs@^6.11.0, qs@^6.12.3, qs@^6.14.0, qs@^6.14.1, qs@~6.14.0:
+qs@>=6.14.1, qs@^6.10.0, qs@^6.10.3, qs@^6.11.0, qs@^6.12.3, qs@~6.14.0:
version "6.14.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
@@ -15079,16 +14946,6 @@ range-parser@^1.2.1, range-parser@~1.2.1:
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-raw-body@2.5.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
- integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
- dependencies:
- bytes "3.1.2"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
raw-body@^2.3.2, raw-body@~2.5.3:
version "2.5.3"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2"
@@ -15099,16 +14956,6 @@ raw-body@^2.3.2, raw-body@~2.5.3:
iconv-lite "~0.4.24"
unpipe "~1.0.0"
-raw-body@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.2.tgz#3e3ada5ae5568f9095d84376fd3a49b8fb000a51"
- integrity sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==
- dependencies:
- bytes "~3.1.2"
- http-errors "~2.0.1"
- iconv-lite "~0.7.0"
- unpipe "~1.0.0"
-
rc-slider@^11.1.9:
version "11.1.9"
resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-11.1.9.tgz#d872130fbf4ec51f28543d62e90451091d6f5208"
@@ -16082,17 +15929,6 @@ rollup@^4.43.0:
"@rollup/rollup-win32-x64-msvc" "4.57.0"
fsevents "~2.3.2"
-router@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef"
- integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==
- dependencies:
- debug "^4.4.0"
- depd "^2.0.0"
- is-promise "^4.0.0"
- parseurl "^1.3.3"
- path-to-regexp "^8.0.0"
-
rrweb-cssom@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2"
@@ -16334,23 +16170,6 @@ send@^0.19.0, send@~0.19.0, send@~0.19.1:
range-parser "~1.2.1"
statuses "~2.0.2"
-send@^1.1.0, send@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/send/-/send-1.2.1.tgz#9eab743b874f3550f40a26867bf286ad60d3f3ed"
- integrity sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==
- dependencies:
- debug "^4.4.3"
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- etag "^1.8.1"
- fresh "^2.0.0"
- http-errors "^2.0.1"
- mime-types "^3.0.2"
- ms "^2.1.3"
- on-finished "^2.4.1"
- range-parser "^1.2.1"
- statuses "^2.0.2"
-
serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
@@ -16381,16 +16200,6 @@ serve-static@^1.16.2, serve-static@~1.16.2:
parseurl "~1.3.3"
send "~0.19.1"
-serve-static@^2.2.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9"
- integrity sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==
- dependencies:
- encodeurl "^2.0.0"
- escape-html "^1.0.3"
- parseurl "^1.3.3"
- send "^1.2.0"
-
server-destroy@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd"
@@ -16851,17 +16660,12 @@ static-eval@2.0.2:
dependencies:
escodegen "^1.8.1"
-statuses@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
- integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-
"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
-statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.1, statuses@~2.0.2:
+statuses@^2.0.2, statuses@~2.0.1, statuses@~2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382"
integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==
@@ -17904,15 +17708,6 @@ type-fest@^5.2.0:
dependencies:
tagged-tag "^1.0.0"
-type-is@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97"
- integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==
- dependencies:
- content-type "^1.0.5"
- media-typer "^1.1.0"
- mime-types "^3.0.0"
-
type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -18223,7 +18018,7 @@ universalify@^2.0.0:
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
-unpipe@1.0.0, unpipe@~1.0.0:
+unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@@ -18388,7 +18183,7 @@ value-or-function@^4.0.0:
resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-4.0.0.tgz#70836b6a876a010dc3a2b884e7902e9db064378d"
integrity sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==
-vary@^1, vary@^1.1.2, vary@~1.1.2:
+vary@^1, vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==