build: add railway build config (#3311)

This commit is contained in:
野声 2024-01-29 11:02:04 +08:00 committed by GitHub
parent 977e9d5dda
commit 24f07ae208
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
36 changed files with 640 additions and 1220 deletions

View File

@ -13,6 +13,7 @@ tools/cli-engine/src/browser/worker-host.js
**/scripts/** **/scripts/**
packages/*/lib/** packages/*/lib/**
packages/**/dist/** packages/**/dist/**
packages/**/dist-node/**
packages/components/src/icon/iconfont packages/components/src/icon/iconfont
packages/core-browser/src/style/octicons packages/core-browser/src/style/octicons

View File

@ -52,6 +52,7 @@ jobs:
run: | run: |
yarn run init yarn run init
yarn run bundle:lite yarn run bundle:lite
yarn run bundle:prod
- name: Lint - name: Lint
run: | run: |
@ -81,6 +82,7 @@ jobs:
yarn install --immutable yarn install --immutable
yarn run init yarn run init
yarn run bundle:lite yarn run bundle:lite
yarn run bundle:prod
- name: Lint - name: Lint
run: | run: |

1
.gitignore vendored
View File

@ -67,6 +67,7 @@ jspm_packages/
.yarn-integrity .yarn-integrity
dist dist
dist-node
lib lib
.vscode/* .vscode/*

14
nixpacks.toml Normal file
View File

@ -0,0 +1,14 @@
providers = ["..."]
[variables]
NODE_ENV = 'production'
[phases.setup]
nixPkgs = ["...", "libsecret"]
aptPkgs = ["...", "build-essential", "libsecret-1-dev"]
[phases.build]
cmds = ['yarn build:all', 'yarn bundle:prod', 'yarn download-extension']
[start]
cmd = 'node packages/startup/dist-node/server/server.js'

View File

@ -13,11 +13,12 @@
"build:components": "cd packages/components && yarn run build:dist", "build:components": "cd packages/components && yarn run build:dist",
"start:lite": "cross-env NODE_ENV=development ts-node ./scripts/start --script=start:lite", "start:lite": "cross-env NODE_ENV=development ts-node ./scripts/start --script=start:lite",
"bundle:lite": "ts-node ./scripts/start --script=bundle:lite", "bundle:lite": "ts-node ./scripts/start --script=bundle:lite",
"bundle:prod": "ts-node ./scripts/start --script=bundle:prod",
"start:pty-service": "KTLOG_SHOW_DEBUG=1 npx ts-node packages/terminal-next/src/node/pty.proxy.remote.exec.ts", "start:pty-service": "KTLOG_SHOW_DEBUG=1 npx ts-node packages/terminal-next/src/node/pty.proxy.remote.exec.ts",
"create": "ts-node ./scripts/create", "create": "ts-node ./scripts/create",
"add:node": "ts-node ./scripts/add-node", "add:node": "ts-node ./scripts/add-node",
"add:browser": "ts-node ./scripts/add-browser", "add:browser": "ts-node ./scripts/add-browser",
"build": "yarn run compile && echo 'use `compile` instead'", "build": "yarn run compile",
"build:all": "yarn run build && yarn run build:worker-host && yarn run build:ext-host && yarn run build:components", "build:all": "yarn run build && yarn run build:worker-host && yarn run build:ext-host && yarn run build:components",
"compile": "cross-env NODE_ENV=production ts-node ./scripts/build", "compile": "cross-env NODE_ENV=production ts-node ./scripts/build",
"build:worker-host": "cd packages/extension && yarn run compile:worker", "build:worker-host": "cd packages/extension && yarn run compile:worker",
@ -92,7 +93,7 @@
"@types/node-fetch": "^2.6.1", "@types/node-fetch": "^2.6.1",
"@types/react": "^18.0.0", "@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0", "@types/react-dom": "^18.0.0",
"@types/react-is": "^16.7.1", "@types/react-is": "^18.2.4",
"@types/socket.io-client": "^1.4.32", "@types/socket.io-client": "^1.4.32",
"@types/temp": "^0.9.1", "@types/temp": "^0.9.1",
"@types/ws": "^8.5.10", "@types/ws": "^8.5.10",
@ -111,7 +112,6 @@
"eslint-plugin-import": "^2.25.4", "eslint-plugin-import": "^2.25.4",
"eslint-plugin-unused-imports": "^2.0.0", "eslint-plugin-unused-imports": "^2.0.0",
"git-rev-sync": "^3.0.1", "git-rev-sync": "^3.0.1",
"got": "^12.1.0",
"handlebars": "^4.7.3", "handlebars": "^4.7.3",
"is-git-clean": "^1.1.0", "is-git-clean": "^1.1.0",
"jest": "^29.7.0", "jest": "^29.7.0",
@ -143,8 +143,6 @@
"tools/cli-engine" "tools/cli-engine"
], ],
"resolutions": { "resolutions": {
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"classnames": "2.3.1", "classnames": "2.3.1",
"node-gyp": "9.3.1" "node-gyp": "9.3.1"
}, },

View File

@ -19,6 +19,9 @@ module.exports = {
optimization: { optimization: {
minimizer: [new OptimizeCSSAssetsPlugin({})], minimizer: [new OptimizeCSSAssetsPlugin({})],
}, },
cache: {
type: 'filesystem',
},
plugins: [ plugins: [
new MiniCssExtractPlugin({ new MiniCssExtractPlugin({
filename: 'index.css', filename: 'index.css',
@ -53,18 +56,6 @@ module.exports = {
{ {
test: /\.tsx?$/, test: /\.tsx?$/,
use: [ use: [
{
loader: 'cache-loader',
options: {
cacheDirectory: path.resolve(__dirname, '../../../.cache'),
},
},
{
loader: 'thread-loader',
options: {
workers: require('os').cpus().length - 1,
},
},
{ {
loader: 'ts-loader', loader: 'ts-loader',
options: { options: {

View File

@ -32,14 +32,12 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mobx": "^5.9.4", "mobx": "^5.9.4",
"mobx-react-lite": "^1.3.1", "mobx-react-lite": "^1.3.1",
"onigasm": "2.2.2",
"rc-menu": "^9.3.2", "rc-menu": "^9.3.2",
"react": "^18.0.0", "react": "^18.0.0",
"react-autosize-textarea": "^7.0.0", "react-autosize-textarea": "^7.0.0",
"react-ctxmenu-trigger": "^1.0.0", "react-ctxmenu-trigger": "^1.0.0",
"react-custom-scrollbars": "^4.2.1", "react-custom-scrollbars": "^4.2.1",
"react-is": "^16.8.6", "react-is": "^18.2.0",
"react-sticky": "^6.0.3",
"react-window": "^1.8.5", "react-window": "^1.8.5",
"resize-observer-polyfill": "1.5.1", "resize-observer-polyfill": "1.5.1",
"strip-json-comments": "3.0.1", "strip-json-comments": "3.0.1",

View File

@ -2,7 +2,7 @@ import http from 'http';
import path from 'path'; import path from 'path';
import Koa from 'koa'; import Koa from 'koa';
import superagent from 'superagent'; import fetch from 'node-fetch';
import { IServerApp, AppConfig } from '@opensumi/ide-core-node'; import { IServerApp, AppConfig } from '@opensumi/ide-core-node';
import { createNodeInjector } from '@opensumi/ide-dev-tool/src/injector-helper'; import { createNodeInjector } from '@opensumi/ide-dev-tool/src/injector-helper';
@ -38,24 +38,18 @@ describe('template test', () => {
}); });
it('can get png if path in whitelist', async () => { it('can get png if path in whitelist', async () => {
const res = await superagent.get(`http://0.0.0.0:50118/assets${path.join(resPath, 'icon.png')}`); const res = await fetch(`http://0.0.0.0:50118/assets${path.join(resPath, 'icon.png')}`);
expect(res.status === 200); expect(res.status === 200);
}); });
it('response 403 if not in whitelist', async () => { it('response 403 if not in whitelist', async () => {
try { const res = await fetch('http://0.0.0.0:50118/assets/test');
await superagent.get('http://0.0.0.0:50118/assets/test'); expect(res.status === 403);
} catch (err) {
expect(err.status === 403);
}
}); });
it('response 403 if not allowed mime', async () => { it('response 403 if not allowed mime', async () => {
try { const res = await fetch(`http://0.0.0.0:50118/assets${path.join(resPath, 'icon.exe')}`);
await superagent.get(`http://0.0.0.0:50118/assets${path.join(resPath, 'icon.exe')}`); expect(res.status === 403);
} catch (err) {
expect(err.status === 403);
}
}); });
afterAll(() => { afterAll(() => {

View File

@ -25,7 +25,6 @@
"devDependencies": { "devDependencies": {
"@opensumi/ide-core-browser": "workspace:*", "@opensumi/ide-core-browser": "workspace:*",
"@opensumi/ide-dev-tool": "workspace:*", "@opensumi/ide-dev-tool": "workspace:*",
"@types/koa-mount": "^4.0.1", "@types/koa-mount": "^4.0.1"
"superagent": "^5.1.0"
} }
} }

View File

@ -15,11 +15,9 @@
"@opensumi/ide-core-common": "workspace:*", "@opensumi/ide-core-common": "workspace:*",
"@opensumi/ide-core-node": "workspace:*", "@opensumi/ide-core-node": "workspace:*",
"@opensumi/ide-extension": "workspace:*", "@opensumi/ide-extension": "workspace:*",
"compressing": "^1.6.2", "compressing": "^1.10.0",
"fs-extra": "^10.1.0", "fs-extra": "^10.1.0",
"node-fetch": "^2.6.7", "node-fetch": "^2.6.7"
"request": "2.*.*",
"requestretry": "^7.0.0"
}, },
"devDependencies": { "devDependencies": {
"@opensumi/ide-components": "workspace:*", "@opensumi/ide-components": "workspace:*",
@ -29,8 +27,6 @@
"@opensumi/ide-markdown": "workspace:*", "@opensumi/ide-markdown": "workspace:*",
"@opensumi/ide-overlay": "workspace:*", "@opensumi/ide-overlay": "workspace:*",
"@opensumi/ide-theme": "workspace:*", "@opensumi/ide-theme": "workspace:*",
"@types/node-fetch": "^2.6.1", "@types/node-fetch": "^2.6.1"
"@types/requestretry": "^1.12.7",
"@types/uuid": "^8.3.4"
} }
} }

View File

@ -1,10 +1,11 @@
import assert from 'assert';
import os from 'os'; import os from 'os';
import path from 'path'; import path from 'path';
import { pipeline } from 'stream'; import { pipeline } from 'stream';
import compressing from 'compressing'; import compressing from 'compressing';
import fs from 'fs-extra'; import fs from 'fs-extra';
import requestretry from 'requestretry'; import nodeFetch, { RequestInit } from 'node-fetch';
import { Injectable, Autowired, INJECTOR_TOKEN, Injector } from '@opensumi/di'; import { Injectable, Autowired, INJECTOR_TOKEN, Injector } from '@opensumi/di';
import { uuid } from '@opensumi/ide-core-common'; import { uuid } from '@opensumi/ide-core-common';
@ -138,29 +139,38 @@ export class VSXExtensionService implements IVSXExtensionBackService {
const vsixFileName = id + '.vsix'; const vsixFileName = id + '.vsix';
const downloadPath = path.join(extensionDir, vsixFileName); const downloadPath = path.join(extensionDir, vsixFileName);
return new Promise((resolve, reject) => { const res = await nodeFetchRetry(
requestretry( url,
url, {
{ method: 'GET',
method: 'GET', headers: this.getMarketplace().downloadHeaders,
maxAttempts: 5, },
retryDelay: 2000, {
headers: this.getMarketplace().downloadHeaders, maxAttempts: 5,
retryStrategy: requestretry.RetryStrategies.HTTPOrNetworkError, retryDelay: 2000,
}, },
(err, response) => { );
if (err) {
reject(err); assert(res, `download extension ${id} from ${url} failed`);
} else if (response && response.statusCode === 404) {
reject(); if (res.status === 404) {
} else if (response && response.statusCode !== 200) { throw new Error(`extension ${id} not found`);
reject(new Error(response.statusMessage)); }
}
}, if (res.status !== 200) {
) throw new Error(`download extension ${id} from ${url} failed, status: ${res?.status} ${res?.statusText}`);
.pipe(fs.createWriteStream(downloadPath)) }
.on('error', reject)
.on('close', () => resolve({ downloadPath })); return await new Promise((resolve, reject) => {
const fileStream = fs.createWriteStream(downloadPath);
res.body.pipe(fileStream);
res.body.on('error', (err) => {
reject(err);
});
fileStream.on('finish', function () {
resolve({ downloadPath });
});
}); });
} }
@ -168,3 +178,33 @@ export class VSXExtensionService implements IVSXExtensionBackService {
return await this.getMarketplace().search(param); return await this.getMarketplace().search(param);
} }
} }
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
const nodeFetchRetry = async (
url: string,
fetchOptions: RequestInit,
opts: {
maxAttempts: number;
retryDelay: number;
},
) => {
let retry = (opts && opts.maxAttempts) || 3;
while (retry > 0) {
try {
return nodeFetch(url, fetchOptions);
} catch (e) {
retry = retry - 1;
if (retry === 0) {
throw e;
}
if (opts && opts.retryDelay) {
await sleep(opts.retryDelay);
}
}
}
};

View File

@ -187,7 +187,7 @@ export class ExtensionNodeServiceImpl implements IExtensionNodeService {
if (notExistExtension) { if (notExistExtension) {
// 进程未调用启动直接连接 // 进程未调用启动直接连接
this.logger.error(`${clientId} clientId process connection set error`, extProcessId); this.logger.error(`${clientId} clientId process connection not exists`);
/** /**
* *
* ProcessCloseExitThreshold * ProcessCloseExitThreshold

View File

@ -21,7 +21,6 @@
"dependencies": { "dependencies": {
"@opensumi/ide-utils": "workspace:*", "@opensumi/ide-utils": "workspace:*",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"got": "^12.1.0",
"mri": "^1.2.0" "mri": "^1.2.0"
}, },
"devDependencies": { "devDependencies": {

View File

@ -3,6 +3,7 @@ import { statSync, existsSync } from 'fs';
import { join } from 'path'; import { join } from 'path';
import { green, red } from 'chalk'; import { green, red } from 'chalk';
import fetch from 'node-fetch';
import { ArgvFactory } from '@opensumi/ide-utils/lib/argv'; import { ArgvFactory } from '@opensumi/ide-utils/lib/argv';
@ -45,12 +46,10 @@ function openPathOrUrl(pathOrUrl: string): void {
} }
const query = `?type=${type}&${type}=${encodeURIComponent(fullPathOrUrl)}&clientId=${CLIENT_ID}`; const query = `?type=${type}&${type}=${encodeURIComponent(fullPathOrUrl)}&clientId=${CLIENT_ID}`;
import('got').then(({ default: got }) => { fetch(`${SUMI_SERVER_HOST}/${OPENER_ROUTE}${query}`).catch((err) => {
got(`${SUMI_SERVER_HOST}/${OPENER_ROUTE}${query}`).catch((err) => { // eslint-disable-next-line no-console
// eslint-disable-next-line no-console console.error(red(`Open ${type} ${fullPathOrUrl} error: \n ${err.message}`));
console.error(red(`Open ${type} ${fullPathOrUrl} error: \n ${err.message}`)); process.exit(1);
process.exit(1);
});
}); });
} }

View File

@ -10,48 +10,13 @@ setLocale(defaultLanguage);
import '@opensumi/ide-i18n'; import '@opensumi/ide-i18n';
import '@opensumi/ide-core-browser/lib/style/index.less'; import '@opensumi/ide-core-browser/lib/style/index.less';
import { SlotLocation } from '@opensumi/ide-core-browser';
import { ExpressFileServerModule } from '@opensumi/ide-express-file-server/lib/browser';
import { defaultConfig } from '@opensumi/ide-main-layout/lib/browser/default-config';
import { RemoteOpenerModule } from '@opensumi/ide-remote-opener/lib/browser';
import { CommonBrowserModules } from '../../src/browser/common-modules'; import { getDefaultClientAppOpts, renderApp } from './render-app';
import { SampleModule } from '../sample-modules';
import { renderApp } from './render-app';
import '../styles.less'; import '../styles.less';
renderApp({ renderApp(
modules: [...CommonBrowserModules, ExpressFileServerModule, SampleModule, RemoteOpenerModule], getDefaultClientAppOpts({
layoutConfig: { defaultLanguage,
...defaultConfig, }),
...{ );
[SlotLocation.top]: {
modules: ['menubar', 'toolbar'],
},
},
...{
[SlotLocation.action]: {
modules: ['@opensumi/ide-toolbar-action'],
},
},
},
useCdnIcon: true,
useExperimentalShadowDom: true,
defaultPreferences: {
'general.language': defaultLanguage,
'general.theme': 'opensumi-dark',
'general.icon': 'vscode-icons',
'application.confirmExit': 'never',
'editor.quickSuggestionsDelay': 100,
},
defaultPanels: {
bottom: '@opensumi/ide-terminal-next',
right: '',
},
// 当 `.sumi` 下不存在配置文件时,默认采用 `.vscode` 下的配置
useVSCodeWorkspaceConfiguration: true,
// 开启 core-browser 对 OpenSumi DevTools 的支持,默认为关闭
devtools: true,
});

View File

@ -0,0 +1,30 @@
// eslint-disable-next-line import/order
import { LOCALE_TYPES } from '@opensumi/ide-core-common/lib/const';
const defaultLanguage = LOCALE_TYPES.EN_US;
// eslint-disable-next-line import/order
import { setLocale } from '@opensumi/ide-monaco/lib/browser/monaco-localize';
// 请注意,集成方在这里需要自己传一个正确的 locale 进去
// 如果不传则默认会根据 PreferenceScope 的优先级从 LocalStorage 取值
setLocale(defaultLanguage);
import '@opensumi/ide-i18n';
import '@opensumi/ide-core-browser/lib/style/index.less';
import { getDefaultClientAppOpts, renderApp } from '../render-app';
import '../../styles.less';
const hostname = window.location.hostname;
const port = window.location.port;
renderApp(
getDefaultClientAppOpts({
defaultLanguage,
opts: {
webviewEndpoint: '/webview',
extWorkerHost: '/worker-host.js',
wsPath: window.location.protocol === 'https:' ? `wss://${hostname}:${port}` : `ws://${hostname}:${port}`,
},
}),
);

View File

@ -0,0 +1,16 @@
/* eslint-disable no-console */
import path from 'path';
import { startServer } from '@opensumi/ide-dev-tool/src/server';
import { ExpressFileServerModule } from '@opensumi/ide-express-file-server/lib/node';
import { CommonNodeModules } from '../../../src/node/common-modules';
startServer(
{
modules: [...CommonNodeModules, ExpressFileServerModule],
},
{
mountStaticPath: path.join(__dirname, '../../dist'),
},
);

View File

@ -3,12 +3,20 @@ console.time('Render');
import { Injector } from '@opensumi/di'; import { Injector } from '@opensumi/di';
import { IClientAppOpts } from '@opensumi/ide-core-browser'; import { IClientAppOpts } from '@opensumi/ide-core-browser';
import { SlotLocation } from '@opensumi/ide-core-browser';
import { ClientApp } from '@opensumi/ide-core-browser/lib/bootstrap/app'; import { ClientApp } from '@opensumi/ide-core-browser/lib/bootstrap/app';
import { uuid } from '@opensumi/ide-core-common'; import { uuid } from '@opensumi/ide-core-common';
import { ExpressFileServerModule } from '@opensumi/ide-express-file-server/lib/browser';
import { defaultConfig } from '@opensumi/ide-main-layout/lib/browser/default-config';
import { RemoteOpenerModule } from '@opensumi/ide-remote-opener/lib/browser';
import { CommonBrowserModules } from '../../src/browser/common-modules';
import { SampleModule } from '../sample-modules';
import { DefaultLayout } from './layout'; import { DefaultLayout } from './layout';
const CLIENT_ID = 'W_' + uuid(); const CLIENT_ID = 'W_' + uuid();
export async function renderApp(opts: IClientAppOpts) { export async function renderApp(opts: IClientAppOpts) {
const defaultHost = process.env.HOST || window.location.hostname; const defaultHost = process.env.HOST || window.location.hostname;
const injector = new Injector(); const injector = new Injector();
@ -19,11 +27,13 @@ export async function renderApp(opts: IClientAppOpts) {
opts.injector = injector; opts.injector = injector;
opts.extensionDir = opts.extensionDir || process.env.EXTENSION_DIR; opts.extensionDir = opts.extensionDir || process.env.EXTENSION_DIR;
opts.wsPath = process.env.WS_PATH || `ws://${defaultHost}:8000`; opts.wsPath = opts.wsPath || process.env.WS_PATH || `ws://${defaultHost}:8000`;
opts.extWorkerHost = opts.extWorkerHost || process.env.EXTENSION_WORKER_HOST; opts.extWorkerHost = opts.extWorkerHost || process.env.EXTENSION_WORKER_HOST;
const anotherHostName = process.env.WEBVIEW_HOST || defaultHost; const anotherHostName = process.env.WEBVIEW_HOST || defaultHost;
opts.webviewEndpoint = `http://${anotherHostName}:8899`; opts.webviewEndpoint = opts.webviewEndpoint || `http://${anotherHostName}:8899`;
opts.editorBackgroundImage = opts.editorBackgroundImage =
'https://img.alicdn.com/imgextra/i2/O1CN01dqjQei1tpbj9z9VPH_!!6000000005951-55-tps-87-78.svg'; 'https://img.alicdn.com/imgextra/i2/O1CN01dqjQei1tpbj9z9VPH_!!6000000005951-55-tps-87-78.svg';
opts.layoutComponent = DefaultLayout; opts.layoutComponent = DefaultLayout;
@ -41,3 +51,44 @@ export async function renderApp(opts: IClientAppOpts) {
app.start(document.getElementById('main')!, 'web'); app.start(document.getElementById('main')!, 'web');
} }
export const getDefaultClientAppOpts = ({
defaultLanguage,
opts = {},
}: {
defaultLanguage: string;
opts?: Partial<IClientAppOpts>;
}): IClientAppOpts => ({
modules: [...CommonBrowserModules, ExpressFileServerModule, SampleModule, RemoteOpenerModule],
layoutConfig: {
...defaultConfig,
...{
[SlotLocation.top]: {
modules: ['menubar', 'toolbar'],
},
},
...{
[SlotLocation.action]: {
modules: ['@opensumi/ide-toolbar-action'],
},
},
},
useCdnIcon: true,
useExperimentalShadowDom: true,
defaultPreferences: {
'general.language': defaultLanguage,
'general.theme': 'opensumi-dark',
'general.icon': 'vscode-icons',
'application.confirmExit': 'never',
'editor.quickSuggestionsDelay': 100,
},
defaultPanels: {
bottom: '@opensumi/ide-terminal-next',
right: '',
},
// 当 `.sumi` 下不存在配置文件时,默认采用 `.vscode` 下的配置
useVSCodeWorkspaceConfiguration: true,
// 开启 core-browser 对 OpenSumi DevTools 的支持,默认为关闭
devtools: true,
...opts,
});

View File

@ -1,3 +1,5 @@
import 'tsconfig-paths/register';
import { startServer } from '@opensumi/ide-dev-tool/src/server'; import { startServer } from '@opensumi/ide-dev-tool/src/server';
import { ExpressFileServerModule } from '@opensumi/ide-express-file-server/lib/node'; import { ExpressFileServerModule } from '@opensumi/ide-express-file-server/lib/node';
import { OpenerModule } from '@opensumi/ide-remote-opener/lib/node'; import { OpenerModule } from '@opensumi/ide-remote-opener/lib/node';

View File

@ -24,7 +24,8 @@
"bundle:standard:analysis": "cross-env analysis=1 yarn run bundle:standard", "bundle:standard:analysis": "cross-env analysis=1 yarn run bundle:standard",
"bundle:lite": "cross-env NODE_ENV=production webpack --config webpack.lite.config.js", "bundle:lite": "cross-env NODE_ENV=production webpack --config webpack.lite.config.js",
"bundle:lite:stats": "cross-env NODE_ENV=production webpack --profile --config webpack.lite.config.js --json > stats.json", "bundle:lite:stats": "cross-env NODE_ENV=production webpack --profile --config webpack.lite.config.js --json > stats.json",
"bundle:lite:analysis": "cross-env analysis=1 yarn run bundle:lite" "bundle:lite:analysis": "cross-env analysis=1 yarn run bundle:lite",
"bundle:prod": "cross-env SKIP_TS_CHECKER=1 NODE_ENV=production webpack --config webpack.prod.config.js"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

View File

@ -1,24 +0,0 @@
var express = require('express');
var app = express();
var httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({ target: 'http://localhost:8000', ws: true });
var server = require('http').createServer(app);
// proxy HTTP GET / POST
app.get('/*', function (req, res) {
console.log("proxying GET request", req.url);
proxy.web(req, res, {});
});
app.post('/*/*', function (req, res) {
console.log("proxying POST request", req.url);
proxy.web(req, res, {});
});
// Proxy websockets
server.on('upgrade', function (req, socket, head) {
console.log("proxying upgrade request", req.url);
proxy.ws(req, socket, head);
});
server.listen(8001);

View File

@ -7,7 +7,6 @@ const baseDir = path.join(__dirname, 'entry/web-lite');
const { createWebpackConfig } = require('@opensumi/ide-dev-tool/src/webpack'); const { createWebpackConfig } = require('@opensumi/ide-dev-tool/src/webpack');
module.exports = createWebpackConfig(baseDir, path.join(baseDir, 'app.tsx'), { module.exports = createWebpackConfig(baseDir, path.join(baseDir, 'app.tsx'), {
mode: process.env.NODE_ENV || 'development',
resolve: { resolve: {
alias: { alias: {
fs: 'browserfs/dist/shims/fs.js', fs: 'browserfs/dist/shims/fs.js',

View File

@ -0,0 +1,39 @@
const path = require('path');
const CopyPlugin = require('copy-webpack-plugin');
const {
createWebpackConfig,
createNodeWebpackConfig,
createWebviewWebpackConfig,
} = require('@opensumi/ide-dev-tool/src/webpack');
const web = createWebpackConfig(__dirname, path.join(__dirname, 'entry/web/prod/app.tsx'), {
plugins: [
new CopyPlugin({
patterns: [
{
from: path.join(__dirname, '../extension/lib/worker-host.js'),
to: path.join(__dirname, './dist/worker-host.js'),
},
],
}),
],
});
const node = createNodeWebpackConfig(
path.join(__dirname, 'entry/web/prod/server.ts'),
path.join(__dirname, 'dist-node/server'),
);
const webview = createWebviewWebpackConfig(
require.resolve('@opensumi/ide-webview/lib/webview-host/web-preload.js'),
__dirname,
'/dist/webview',
);
if (process.env.ONLY_NODE) {
module.exports = [node];
} else {
module.exports = [web, node, webview];
}

View File

@ -1,8 +1,5 @@
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const path = require('path');
const { createWebpackConfig } = require('@opensumi/ide-dev-tool/src/webpack'); const { createWebpackConfig } = require('@opensumi/ide-dev-tool/src/webpack');
module.exports = createWebpackConfig(__dirname, require('path').join(__dirname, 'entry/web/app.tsx'), { module.exports = createWebpackConfig(__dirname, path.join(__dirname, 'entry/web/app.tsx'), {});
mode: process.env.NODE_ENV || 'development',
plugins: [process.env.analysis && new BundleAnalyzerPlugin()].filter(Boolean),
});

View File

@ -5,7 +5,6 @@ import { registerColor, transparent, lighten, darken, lessProminent } from '../u
import { badgeBackground, badgeForeground } from './badge'; import { badgeBackground, badgeForeground } from './badge';
import { contrastBorder, activeContrastBorder, focusBorder, foreground } from './base'; import { contrastBorder, activeContrastBorder, focusBorder, foreground } from './base';
import { listInactiveSelectionBackground } from './list-tree';
// TODO COLOR 此处vscode内的editor error warning info颜色都有做修改 // TODO COLOR 此处vscode内的editor error warning info颜色都有做修改
export const editorErrorBackground = registerColor( export const editorErrorBackground = registerColor(
@ -611,11 +610,12 @@ export const editorGutter = registerColor(
'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.', 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.',
), ),
); );
export const overviewRulerCommentingRangeForeground = registerColor( export const overviewRulerCommentingRangeForeground = registerColor(
'editorGutter.commentRangeForeground', 'editorGutter.commentRangeForeground',
{ {
dark: listInactiveSelectionBackground, dark: '#37373D',
light: darken(listInactiveSelectionBackground, 0.05), light: darken('#E4E6F1', 0.05),
hcDark: Color.white, hcDark: Color.white,
hcLight: Color.black, hcLight: Color.black,
}, },

9
railway.toml Normal file
View File

@ -0,0 +1,9 @@
[build]
builder = "NIXPACKS"
nixpacksConfigPath = "nixpacks.toml"
[deploy]
numReplicas = 1
sleepApplication = false
restartPolicyType = "ON_FAILURE"
restartPolicyMaxRetries = 10

View File

@ -13,7 +13,6 @@ const { lessLoader } = require('./webpack-util');
const tsConfigPath = path.join(__dirname, './tsconfig.json'); const tsConfigPath = path.join(__dirname, './tsconfig.json');
const dir = path.join(__dirname, '../src/browser'); const dir = path.join(__dirname, '../src/browser');
const distDir = path.join(__dirname, '../lib/browser'); const distDir = path.join(__dirname, '../lib/browser');
const port = 8080;
const nodeEnv = process.env.NODE_ENV || 'development'; const nodeEnv = process.env.NODE_ENV || 'development';
/** /**
@ -110,7 +109,12 @@ module.exports = {
}, },
optimization: { optimization: {
nodeEnv, nodeEnv,
minimizer: [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})], minimizer: [
new TerserJSPlugin({
minify: TerserJSPlugin.esbuildMinify,
}),
new OptimizeCSSAssetsPlugin({}),
],
}, },
plugins: [ plugins: [
new AssetsPlugin({ new AssetsPlugin({

View File

@ -37,12 +37,12 @@
"chalk": "^4.0.0", "chalk": "^4.0.0",
"ejs": "^3.1.7", "ejs": "^3.1.7",
"ip": "^1.1.8", "ip": "^1.1.8",
"koa": "^2.7.0", "koa": "^2.15.0",
"koa-mount": "^4.0.0", "koa-mount": "^4.0.0",
"mri": "^1.2.0", "mri": "^1.2.0",
"open": "^7.0.3", "open": "^7.0.3",
"react": "^16.12.0", "react": "^18.0.0",
"react-dom": "^16.12.0", "react-dom": "^18.0.0",
"tslib": "^2.5.0" "tslib": "^2.5.0"
}, },
"devDependencies": { "devDependencies": {
@ -51,9 +51,7 @@
"@types/node": "^18.19.8", "@types/node": "^18.19.8",
"@types/react": "^18.0.0", "@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0", "@types/react-dom": "^18.0.0",
"@types/read-pkg-up": "^6.0.0",
"assets-webpack-plugin": "^7.1.1", "assets-webpack-plugin": "^7.1.1",
"cache-loader": "^4.1.0",
"copy-webpack-plugin": "^12.0.2", "copy-webpack-plugin": "^12.0.2",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"css-loader": "^6.9.1", "css-loader": "^6.9.1",
@ -68,7 +66,6 @@
"shell-path": "^2.1.0", "shell-path": "^2.1.0",
"style-loader": "^3.3.4", "style-loader": "^3.3.4",
"terser-webpack-plugin": "^5.3.10", "terser-webpack-plugin": "^5.3.10",
"thread-loader": "^4.0.2",
"ts-loader": "9.5.1", "ts-loader": "9.5.1",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"tsconfig-paths": "^4.2.0", "tsconfig-paths": "^4.2.0",

View File

@ -14,17 +14,17 @@
"sumi": "./cli/index.js" "sumi": "./cli/index.js"
}, },
"dependencies": { "dependencies": {
"@types/koa": "^2.13.4", "@types/koa": "^2.14.0",
"@types/koa-bodyparser": "^4.3.7", "@types/koa-bodyparser": "^4.3.7",
"@types/koa-router": "^7.4.2", "@types/koa-router": "^7.4.2",
"cache-loader": "^4.1.0",
"copy-webpack-plugin": "^12.0.2", "copy-webpack-plugin": "^12.0.2",
"css-loader": "^6.9.1", "css-loader": "^6.9.1",
"fork-ts-checker-webpack-plugin": "^9.0.2", "fork-ts-checker-webpack-plugin": "^9.0.2",
"html-webpack-plugin": "^5.6.0", "html-webpack-plugin": "^5.6.0",
"koa": "^2.13.4", "koa": "^2.15.0",
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"koa-router": "^10.1.1", "koa-router": "^10.1.1",
"koa-static": "^5.0.0",
"less": "^3.9.0", "less": "^3.9.0",
"less-loader": "^12.1.0", "less-loader": "^12.1.0",
"mini-css-extract-plugin": "^2.7.7", "mini-css-extract-plugin": "^2.7.7",
@ -35,7 +35,6 @@
"optimize-css-assets-webpack-plugin": "^6.0.1", "optimize-css-assets-webpack-plugin": "^6.0.1",
"react-dom": "^18.0.0", "react-dom": "^18.0.0",
"style-loader": "^3.3.4", "style-loader": "^3.3.4",
"thread-loader": "^4.0.2",
"ts-loader": "^9.5.1", "ts-loader": "^9.5.1",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0", "tsconfig-paths": "^4.2.0",

View File

@ -6,16 +6,16 @@ class LogServiceClass {
console.log('LogServiceClass args', args); console.log('LogServiceClass args', args);
} }
debug(...args) { debug(...args) {
console.log('LogServiceClass debug', args); console.log('LogServiceClass debug', ...args);
} }
error(...args) { error(...args) {
console.log('LogServiceClass error', args); console.log('LogServiceClass error', ...args);
} }
log(...args) { log(...args) {
console.log('LogServiceClass log', args); console.log('LogServiceClass log', ...args);
} }
warn(...args) { warn(...args) {
console.log('LogServiceClass warn', args); console.log('LogServiceClass warn', ...args);
} }
} }
exports.default = LogServiceClass; exports.default = LogServiceClass;

View File

@ -7,18 +7,18 @@ export default class LogServiceClass {
} }
debug(...args) { debug(...args) {
console.log('LogServiceClass debug', args); console.log('LogServiceClass debug', ...args);
} }
error(...args) { error(...args) {
console.log('LogServiceClass error', args); console.log('LogServiceClass error', ...args);
} }
log(...args) { log(...args) {
console.log('LogServiceClass log', args); console.log('LogServiceClass log', ...args);
} }
warn(...args) { warn(...args) {
console.log('LogServiceClass warn', args); console.log('LogServiceClass warn', ...args);
} }
} }

View File

@ -1,10 +1,10 @@
/* eslint-disable no-console */ /* eslint-disable no-console */
import 'tsconfig-paths/register';
import http from 'http'; import http from 'http';
import path from 'path'; import path from 'path';
import Koa from 'koa'; import Koa from 'koa';
import KoaRouter from 'koa-router'; import KoaRouter from 'koa-router';
import Static from 'koa-static';
import { Injector } from '@opensumi/di'; import { Injector } from '@opensumi/di';
import { Deferred } from '@opensumi/ide-core-common'; import { Deferred } from '@opensumi/ide-core-common';
@ -18,7 +18,12 @@ import {
} from '@opensumi/ide-remote-opener/lib/common'; } from '@opensumi/ide-remote-opener/lib/common';
import { RemoteOpenerServiceImpl } from '@opensumi/ide-remote-opener/lib/node'; import { RemoteOpenerServiceImpl } from '@opensumi/ide-remote-opener/lib/node';
export async function startServer(arg1: NodeModule[] | Partial<IServerAppOpts>) { export async function startServer(
arg1: NodeModule[] | Partial<IServerAppOpts>,
options?: {
mountStaticPath?: string;
},
) {
const app = new Koa(); const app = new Koa();
const router = new KoaRouter(); const router = new KoaRouter();
const deferred = new Deferred<http.Server>(); const deferred = new Deferred<http.Server>();
@ -39,6 +44,11 @@ export async function startServer(arg1: NodeModule[] | Partial<IServerAppOpts>)
app.use(router.routes()); app.use(router.routes());
if (options && options.mountStaticPath) {
console.log('mount static path:', options.mountStaticPath);
app.use(Static(options.mountStaticPath));
}
const injector = new Injector([ const injector = new Injector([
{ {
token: RemoteOpenerServiceToken, token: RemoteOpenerServiceToken,
@ -46,7 +56,7 @@ export async function startServer(arg1: NodeModule[] | Partial<IServerAppOpts>)
}, },
]); ]);
const port = process.env.IDE_SERVER_PORT || 8000; const port = process.env.PORT || process.env.IDE_SERVER_PORT || 8000;
let opts: IServerAppOpts = { let opts: IServerAppOpts = {
webSocketHandler: [ webSocketHandler: [
// new TerminalHandler(logger), // new TerminalHandler(logger),
@ -70,11 +80,12 @@ export async function startServer(arg1: NodeModule[] | Partial<IServerAppOpts>)
* extHost: path.join(__dirname, './ext-host.js') || process.env.EXTENSION_HOST_ENTRY, * extHost: path.join(__dirname, './ext-host.js') || process.env.EXTENSION_HOST_ENTRY,
*/ */
extHost: extHost:
path.join(__dirname, '../../../packages/extension/lib/hosted/ext.process.js') || process.env.EXTENSION_HOST_ENTRY, process.env.EXTENSION_HOST_ENTRY || path.join(__dirname, '../../../packages/extension/lib/hosted/ext.process.js'),
onDidCreateExtensionHostProcess: (extHostProcess) => { onDidCreateExtensionHostProcess: (extHostProcess) => {
console.log(`Extension host process ${extHostProcess.pid} created`); console.log(`Extension host process ${extHostProcess.pid} created`);
}, },
}; };
if (Array.isArray(arg1)) { if (Array.isArray(arg1)) {
opts = { opts = {
...opts, ...opts,
@ -100,7 +111,7 @@ export async function startServer(arg1: NodeModule[] | Partial<IServerAppOpts>)
}); });
server.listen(port, () => { server.listen(port, () => {
console.log(`server listen on port ${port}`); console.log(`server listen on http://localhost:${port}`);
deferred.resolve(server); deferred.resolve(server);
}); });
return deferred.promise; return deferred.promise;

View File

@ -5,26 +5,21 @@ const fse = require('fs-extra');
const HtmlWebpackPlugin = require('html-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin'); const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
const threadLoader = require('thread-loader');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const webpack = require('webpack'); const webpack = require('webpack');
const { merge } = require('webpack-merge'); const { merge } = require('webpack-merge');
threadLoader.warmup({}, ['ts-loader']);
const reactPath = path.resolve(path.join(__dirname, '../../../node_modules/react')); const reactPath = path.resolve(path.join(__dirname, '../../../node_modules/react'));
const reactDOMPath = path.resolve(path.join(__dirname, '../../../node_modules/react-dom')); const reactDOMPath = path.resolve(path.join(__dirname, '../../../node_modules/react-dom'));
const tsConfigPath = path.join(__dirname, '../../../tsconfig.json'); const tsConfigPath = path.join(__dirname, '../../../tsconfig.json');
const HOST = process.env.HOST || '0.0.0.0'; const HOST = process.env.HOST || '0.0.0.0';
const PORT = process.env.PORT || 8080; const IDE_FRONT_PORT = process.env.IDE_FRONT_PORT || 8080;
const defaultWorkspace = path.join(__dirname, '../../workspace'); const defaultWorkspace = path.join(__dirname, '../../workspace');
fse.mkdirpSync(defaultWorkspace); fse.mkdirpSync(defaultWorkspace);
const withSlash = process.platform === 'win32' ? '/' : ''; const withSlash = process.platform === 'win32' ? '/' : '';
console.log('front port', PORT);
const styleLoader = const styleLoader =
process.env.NODE_ENV === 'production' ? MiniCssExtractPlugin.loader : require.resolve('style-loader'); process.env.NODE_ENV === 'production' ? MiniCssExtractPlugin.loader : require.resolve('style-loader');
@ -36,6 +31,8 @@ const styleLoader =
* @returns {import('webpack').Configuration} * @returns {import('webpack').Configuration}
*/ */
exports.createWebpackConfig = function (dir, entry, extraConfig) { exports.createWebpackConfig = function (dir, entry, extraConfig) {
console.log('front port', IDE_FRONT_PORT);
const webpackConfig = merge( const webpackConfig = merge(
{ {
entry, entry,
@ -43,6 +40,9 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
filename: 'bundle.js', filename: 'bundle.js',
path: dir + '/dist', path: dir + '/dist',
}, },
cache: {
type: 'filesystem',
},
resolve: { resolve: {
extensions: ['.ts', '.tsx', '.js', '.json', '.less'], extensions: ['.ts', '.tsx', '.js', '.json', '.less'],
plugins: [ plugins: [
@ -74,35 +74,18 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
{ {
test: /\.tsx?$/, test: /\.tsx?$/,
use: [ use: [
process.env.NODE_ENV === 'production' {
? { loader: 'ts-loader',
loader: 'cache-loader', options: {
options: { happyPackMode: true,
cacheDirectory: path.resolve(__dirname, '../../../.cache'), transpileOnly: true,
}, configFile: tsConfigPath,
} compilerOptions: {
: null, target: 'es2015',
]
.filter(Boolean)
.concat([
{
loader: 'thread-loader',
options: {
workers: require('os').cpus().length - 1,
}, },
}, },
{ },
loader: 'ts-loader', ],
options: {
happyPackMode: true,
transpileOnly: true,
configFile: tsConfigPath,
compilerOptions: {
target: 'es2015',
},
},
},
]),
}, },
{ {
test: /\.png$/, test: /\.png$/,
@ -177,12 +160,12 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
}, },
optimization: { optimization: {
nodeEnv: process.env.NODE_ENV, nodeEnv: process.env.NODE_ENV,
minimize: false,
}, },
plugins: [ plugins: [
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
template: __dirname + '/index.html', template: __dirname + '/index.html',
}), }),
new MiniCssExtractPlugin({ new MiniCssExtractPlugin({
filename: '[name].[chunkhash:8].css', filename: '[name].[chunkhash:8].css',
chunkFilename: '[id].css', chunkFilename: '[id].css',
@ -205,18 +188,19 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
'process.env.STATIC_SERVER_PATH': JSON.stringify(process.env.STATIC_SERVER_PATH || `http://${HOST}:8000/`), 'process.env.STATIC_SERVER_PATH': JSON.stringify(process.env.STATIC_SERVER_PATH || `http://${HOST}:8000/`),
'process.env.HOST': JSON.stringify(process.env.HOST), 'process.env.HOST': JSON.stringify(process.env.HOST),
}), }),
new ForkTsCheckerWebpackPlugin({ !process.env.SKIP_TS_CHECKER &&
typescript: { new ForkTsCheckerWebpackPlugin({
diagnosticOptions: { typescript: {
syntactic: true, diagnosticOptions: {
syntactic: true,
},
configFile: tsConfigPath,
}, },
configFile: tsConfigPath, issue: {
}, include: (issue) => issue.file.includes('src/packages/'),
issue: { exclude: (issue) => issue.file.includes('__test__'),
include: (issue) => issue.file.includes('src/packages/'), },
exclude: (issue) => issue.file.includes('__test__'), }),
},
}),
new NodePolyfillPlugin({ new NodePolyfillPlugin({
includeAliases: ['process', 'Buffer'], includeAliases: ['process', 'Buffer'],
}), }),
@ -228,7 +212,7 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
directory: dir + '/dist', directory: dir + '/dist',
}, },
host: HOST, host: HOST,
port: PORT, port: IDE_FRONT_PORT,
allowedHosts: 'all', allowedHosts: 'all',
devMiddleware: { devMiddleware: {
stats: 'errors-only', stats: 'errors-only',
@ -271,13 +255,16 @@ exports.createWebpackConfig = function (dir, entry, extraConfig) {
/** /**
* @returns {import('webpack').Configuration} * @returns {import('webpack').Configuration}
*/ */
exports.createWebviewWebpackConfig = (entry, dir) => { exports.createWebviewWebpackConfig = (entry, dir, outputPath = '/dist') => {
const port = 8899; const port = 8899;
return { return {
entry, entry,
output: { output: {
filename: 'webview.js', filename: 'webview.js',
path: dir + '/dist', path: dir + outputPath,
},
cache: {
type: 'filesystem',
}, },
resolve: { resolve: {
extensions: ['.ts', '.tsx', '.js', '.json', '.less'], extensions: ['.ts', '.tsx', '.js', '.json', '.less'],
@ -341,3 +328,90 @@ exports.createWebviewWebpackConfig = (entry, dir) => {
}, },
}; };
}; };
/**
* @returns {import('webpack').Configuration}
*/
exports.createNodeWebpackConfig = (entry, distDir) => ({
entry,
target: 'node',
output: {
filename: 'server.js',
path: distDir,
},
node: false,
mode: 'production',
optimization: {
minimize: false,
},
cache: {
type: 'filesystem',
},
watch: false,
resolve: {
modules: [
path.join(__dirname, '../../../node_modules'),
path.join(__dirname, '../node_modules'),
path.resolve('node_modules'),
],
extensions: ['.ts', '.tsx', '.js', '.json'],
plugins: [
new TsconfigPathsPlugin({
configFile: tsConfigPath,
}),
],
},
module: {
exprContextCritical: false,
rules: [
{
test: /\.tsx?$/,
use: [
{
loader: 'ts-loader',
options: {
happyPackMode: true,
transpileOnly: true,
configFile: tsConfigPath,
compilerOptions: {
target: 'es2016',
},
},
},
],
},
],
},
externals: [
function ({ request }, callback) {
if (
[
'node-pty',
'oniguruma',
'@parcel/watcher',
'nsfw',
'spdlog',
'vm2',
'canvas',
'@opensumi/vscode-ripgrep',
'vertx',
'keytar',
'tsconfig-paths',
].indexOf(request) !== -1
) {
return callback(null, `commonjs ${request}`);
}
callback();
},
],
resolveLoader: {
extensions: ['.ts', '.tsx', '.js', '.json'],
mainFields: ['loader', 'main'],
modules: [
path.join(__dirname, '../../../node_modules'),
path.join(__dirname, '../node_modules'),
path.resolve('node_modules'),
],
},
plugins: [!process.env.CI && new webpack.ProgressPlugin()],
});

View File

@ -53,11 +53,11 @@
"fs-extra": "^10.1.0", "fs-extra": "^10.1.0",
"glob-to-regexp": "0.4.1", "glob-to-regexp": "0.4.1",
"html-webpack-plugin": "^5.6.0", "html-webpack-plugin": "^5.6.0",
"koa": "^2.13.4", "koa": "^2.15.0",
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"less": "^3.9.0", "less": "^3.9.0",
"less-loader": "^12.1.0", "less-loader": "^12.1.0",
"mini-css-extract-plugin": "^0.6.0", "mini-css-extract-plugin": "^2.7.7",
"mobx": "^5.9.4", "mobx": "^5.9.4",
"mobx-react-lite": "^1.3.1", "mobx-react-lite": "^1.3.1",
"npm-run": "^5.0.1", "npm-run": "^5.0.1",

View File

@ -282,20 +282,20 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@opensumi/ide-dev-tool@portal:../dev-tool::locator=%40opensumi%2Fide-electron%40workspace%3A." resolution: "@opensumi/ide-dev-tool@portal:../dev-tool::locator=%40opensumi%2Fide-electron%40workspace%3A."
dependencies: dependencies:
"@types/koa": ^2.13.4 "@types/koa": ^2.14.0
"@types/koa-bodyparser": ^4.3.7 "@types/koa-bodyparser": ^4.3.7
"@types/koa-router": ^7.4.2 "@types/koa-router": ^7.4.2
cache-loader: ^4.1.0
copy-webpack-plugin: ^12.0.2 copy-webpack-plugin: ^12.0.2
css-loader: ^6.9.1 css-loader: ^6.9.1
fork-ts-checker-webpack-plugin: ^9.0.2 fork-ts-checker-webpack-plugin: ^9.0.2
html-webpack-plugin: ^5.6.0 html-webpack-plugin: ^5.6.0
koa: ^2.13.4 koa: ^2.15.0
koa-bodyparser: ^4.3.0 koa-bodyparser: ^4.3.0
koa-router: ^10.1.1 koa-router: ^10.1.1
koa-static: ^5.0.0
less: ^3.9.0 less: ^3.9.0
less-loader: ^12.1.0 less-loader: ^12.1.0
mini-css-extract-plugin: ^0.6.0 mini-css-extract-plugin: ^2.7.7
mobx: ^5.9.4 mobx: ^5.9.4
mobx-react-lite: ^1.3.1 mobx-react-lite: ^1.3.1
node-notifier: ^8.0.1 node-notifier: ^8.0.1
@ -303,7 +303,6 @@ __metadata:
optimize-css-assets-webpack-plugin: ^6.0.1 optimize-css-assets-webpack-plugin: ^6.0.1
react-dom: ^18.0.0 react-dom: ^18.0.0
style-loader: ^3.3.4 style-loader: ^3.3.4
thread-loader: ^4.0.2
ts-loader: ^9.5.1 ts-loader: ^9.5.1
ts-node: ^10.9.1 ts-node: ^10.9.1
tsconfig-paths: ^4.2.0 tsconfig-paths: ^4.2.0
@ -332,11 +331,11 @@ __metadata:
fs-extra: ^10.1.0 fs-extra: ^10.1.0
glob-to-regexp: 0.4.1 glob-to-regexp: 0.4.1
html-webpack-plugin: ^5.6.0 html-webpack-plugin: ^5.6.0
koa: ^2.13.4 koa: ^2.15.0
koa-bodyparser: ^4.3.0 koa-bodyparser: ^4.3.0
less: ^3.9.0 less: ^3.9.0
less-loader: ^12.1.0 less-loader: ^12.1.0
mini-css-extract-plugin: ^0.6.0 mini-css-extract-plugin: ^2.7.7
mobx: ^5.9.4 mobx: ^5.9.4
mobx-react-lite: ^1.3.1 mobx-react-lite: ^1.3.1
node-gyp: ^9.3.0 node-gyp: ^9.3.0
@ -617,7 +616,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8": "@types/json-schema@npm:^7.0.8":
version: 7.0.11 version: 7.0.11
resolution: "@types/json-schema@npm:7.0.11" resolution: "@types/json-schema@npm:7.0.11"
checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d
@ -667,7 +666,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/koa@npm:*, @types/koa@npm:^2.13.4": "@types/koa@npm:*":
version: 2.13.5 version: 2.13.5
resolution: "@types/koa@npm:2.13.5" resolution: "@types/koa@npm:2.13.5"
dependencies: dependencies:
@ -683,6 +682,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/koa@npm:^2.14.0":
version: 2.14.0
resolution: "@types/koa@npm:2.14.0"
dependencies:
"@types/accepts": "*"
"@types/content-disposition": "*"
"@types/cookies": "*"
"@types/http-assert": "*"
"@types/http-errors": "*"
"@types/keygrip": "*"
"@types/koa-compose": "*"
"@types/node": "*"
checksum: 57d809e42350c9ddefa2150306355e40757877468bb027e0bd99f5aeb43cfaf8ba8b14761ea65e419d6fb4c2403a1f3ed0762872a9cf040dbd14357caca56548
languageName: node
linkType: hard
"@types/mime@npm:*": "@types/mime@npm:*":
version: 3.0.1 version: 3.0.1
resolution: "@types/mime@npm:3.0.1" resolution: "@types/mime@npm:3.0.1"
@ -1079,15 +1094,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ajv-errors@npm:^1.0.0":
version: 1.0.1
resolution: "ajv-errors@npm:1.0.1"
peerDependencies:
ajv: ">=5.0.0"
checksum: 2c9fc02cf58f9aae5bace61ebd1b162e1ea372ae9db5999243ba5e32a9a78c0d635d29ae085f652c61c941a43af0b2b1acdb255e29d44dc43a6e021085716d8c
languageName: node
linkType: hard
"ajv-formats@npm:^2.1.1": "ajv-formats@npm:^2.1.1":
version: 2.1.1 version: 2.1.1
resolution: "ajv-formats@npm:2.1.1" resolution: "ajv-formats@npm:2.1.1"
@ -1102,7 +1108,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ajv-keywords@npm:^3.1.0, ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": "ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2":
version: 3.5.2 version: 3.5.2
resolution: "ajv-keywords@npm:3.5.2" resolution: "ajv-keywords@npm:3.5.2"
peerDependencies: peerDependencies:
@ -1122,7 +1128,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ajv@npm:^6.1.0, ajv@npm:^6.10.0, ajv@npm:^6.12.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": "ajv@npm:^6.10.0, ajv@npm:^6.12.0, ajv@npm:^6.12.5":
version: 6.12.6 version: 6.12.6
resolution: "ajv@npm:6.12.6" resolution: "ajv@npm:6.12.6"
dependencies: dependencies:
@ -1497,13 +1503,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"buffer-json@npm:^2.0.0":
version: 2.0.0
resolution: "buffer-json@npm:2.0.0"
checksum: 9b8601d25f50341a02c42cb7ffbd6d6801d961f2beda5648c86da815b3019dd8503ebf106cdc2ff2b98f78a463d8b6754f6797419d25ec60a90bb9192fccf40c
languageName: node
linkType: hard
"buffer@npm:^5.1.0": "buffer@npm:^5.1.0":
version: 5.7.1 version: 5.7.1
resolution: "buffer@npm:5.7.1" resolution: "buffer@npm:5.7.1"
@ -1592,22 +1591,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cache-loader@npm:^4.1.0":
version: 4.1.0
resolution: "cache-loader@npm:4.1.0"
dependencies:
buffer-json: ^2.0.0
find-cache-dir: ^3.0.0
loader-utils: ^1.2.3
mkdirp: ^0.5.1
neo-async: ^2.6.1
schema-utils: ^2.0.0
peerDependencies:
webpack: ^4.0.0
checksum: 0339778bddbd3368dc420e5a58b569153334fb74226d15b76832a1246ce8990bb5fcdfa8811557f0b0605bbd06aea12bb069abd906aeb114ae0e7d0a9fde7f59
languageName: node
linkType: hard
"cacheable-lookup@npm:^5.0.3": "cacheable-lookup@npm:^5.0.3":
version: 5.0.4 version: 5.0.4
resolution: "cacheable-lookup@npm:5.0.4" resolution: "cacheable-lookup@npm:5.0.4"
@ -1953,13 +1936,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commondir@npm:^1.0.1":
version: 1.0.1
resolution: "commondir@npm:1.0.1"
checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb
languageName: node
linkType: hard
"compare-version@npm:^0.1.2": "compare-version@npm:^0.1.2":
version: 0.1.2 version: 0.1.2
resolution: "compare-version@npm:0.1.2" resolution: "compare-version@npm:0.1.2"
@ -1997,13 +1973,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cookies@npm:~0.8.0": "cookies@npm:~0.9.0":
version: 0.8.0 version: 0.9.1
resolution: "cookies@npm:0.8.0" resolution: "cookies@npm:0.9.1"
dependencies: dependencies:
depd: ~2.0.0 depd: ~2.0.0
keygrip: ~1.1.0 keygrip: ~1.1.0
checksum: 806055a44f128705265b1bc6a853058da18bf80dea3654ad99be20985b1fa1b14f86c1eef73644aab8071241f8a78acd57202b54c4c5c70769fc694fbb9c4edc checksum: 213e4d14847b582fbd8a003203d3621a4b9fa792a315c37954e89332d38fac5bcc34ba92ef316ad6d5fe28f0187aaa115927fbbe2080744ad1707a93b4313247
languageName: node languageName: node
linkType: hard linkType: hard
@ -2260,10 +2236,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"decode-uri-component@npm:^0.2.0": "debug@npm:^3.1.0":
version: 0.2.2 version: 3.2.7
resolution: "decode-uri-component@npm:0.2.2" resolution: "debug@npm:3.2.7"
checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139 dependencies:
ms: ^2.1.1
checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c
languageName: node languageName: node
linkType: hard linkType: hard
@ -2927,17 +2905,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"find-cache-dir@npm:^3.0.0":
version: 3.3.2
resolution: "find-cache-dir@npm:3.3.2"
dependencies:
commondir: ^1.0.1
make-dir: ^3.0.2
pkg-dir: ^4.1.0
checksum: 1e61c2e64f5c0b1c535bd85939ae73b0e5773142713273818cc0b393ee3555fb0fd44e1a5b161b8b6c3e03e98c2fcc9c227d784850a13a90a8ab576869576817
languageName: node
linkType: hard
"find-up@npm:^4.0.0": "find-up@npm:^4.0.0":
version: 4.1.0 version: 4.1.0
resolution: "find-up@npm:4.1.0" resolution: "find-up@npm:4.1.0"
@ -3498,6 +3465,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"http-errors@npm:~1.6.2":
version: 1.6.3
resolution: "http-errors@npm:1.6.3"
dependencies:
depd: ~1.1.2
inherits: 2.0.3
setprototypeof: 1.1.0
statuses: ">= 1.4.0 < 2"
checksum: a9654ee027e3d5de305a56db1d1461f25709ac23267c6dc28cdab8323e3f96caa58a9a6a5e93ac15d7285cee0c2f019378c3ada9026e7fe19c872d695f27de7c
languageName: node
linkType: hard
"http-proxy-agent@npm:^5.0.0": "http-proxy-agent@npm:^5.0.0":
version: 5.0.0 version: 5.0.0
resolution: "http-proxy-agent@npm:5.0.0" resolution: "http-proxy-agent@npm:5.0.0"
@ -3665,6 +3644,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"inherits@npm:2.0.3":
version: 2.0.3
resolution: "inherits@npm:2.0.3"
checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0
languageName: node
linkType: hard
"internal-slot@npm:^1.0.3": "internal-slot@npm:^1.0.3":
version: 1.0.3 version: 1.0.3
resolution: "internal-slot@npm:1.0.3" resolution: "internal-slot@npm:1.0.3"
@ -3866,13 +3852,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"is-plain-obj@npm:^1.0.0":
version: 1.1.0
resolution: "is-plain-obj@npm:1.1.0"
checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931
languageName: node
linkType: hard
"is-plain-object@npm:^2.0.4": "is-plain-object@npm:^2.0.4":
version: 2.0.4 version: 2.0.4
resolution: "is-plain-object@npm:2.0.4" resolution: "is-plain-object@npm:2.0.4"
@ -4024,7 +4003,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"json-parse-better-errors@npm:^1.0.1, json-parse-better-errors@npm:^1.0.2": "json-parse-better-errors@npm:^1.0.1":
version: 1.0.2 version: 1.0.2
resolution: "json-parse-better-errors@npm:1.0.2" resolution: "json-parse-better-errors@npm:1.0.2"
checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d
@ -4059,17 +4038,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"json5@npm:^1.0.1":
version: 1.0.1
resolution: "json5@npm:1.0.1"
dependencies:
minimist: ^1.2.0
bin:
json5: lib/cli.js
checksum: e76ea23dbb8fc1348c143da628134a98adf4c5a4e8ea2adaa74a80c455fc2cdf0e2e13e6398ef819bfe92306b610ebb2002668ed9fc1af386d593691ef346fc3
languageName: node
linkType: hard
"json5@npm:^2.1.2, json5@npm:^2.2.0": "json5@npm:^2.1.2, json5@npm:^2.2.0":
version: 2.2.1 version: 2.2.1
resolution: "json5@npm:2.2.1" resolution: "json5@npm:2.2.1"
@ -4178,15 +4146,36 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"koa@npm:^2.13.4": "koa-send@npm:^5.0.0":
version: 2.14.0 version: 5.0.1
resolution: "koa@npm:2.14.0" resolution: "koa-send@npm:5.0.1"
dependencies:
debug: ^4.1.1
http-errors: ^1.7.3
resolve-path: ^1.4.0
checksum: a9fbaadbe0f50efd157a733df4a1cc2b3b79b0cdf12e67c718641e6038d1792c0bebe40913e6d4ceb707d970301155be3859b98d1ef08b0fd1766f7326b82853
languageName: node
linkType: hard
"koa-static@npm:^5.0.0":
version: 5.0.0
resolution: "koa-static@npm:5.0.0"
dependencies:
debug: ^3.1.0
koa-send: ^5.0.0
checksum: 8d9b9c4d2b3b13e8818e804245d784099c4b353b55ddd7dbeeb90f27a2e9f5b6f86bd16a4909e337cb89db4d332d9002e6c0f5056caf75749cab62f93c1f0cc5
languageName: node
linkType: hard
"koa@npm:^2.15.0":
version: 2.15.0
resolution: "koa@npm:2.15.0"
dependencies: dependencies:
accepts: ^1.3.5 accepts: ^1.3.5
cache-content-type: ^1.0.0 cache-content-type: ^1.0.0
content-disposition: ~0.5.2 content-disposition: ~0.5.2
content-type: ^1.0.4 content-type: ^1.0.4
cookies: ~0.8.0 cookies: ~0.9.0
debug: ^4.3.2 debug: ^4.3.2
delegates: ^1.0.0 delegates: ^1.0.0
depd: ^2.0.0 depd: ^2.0.0
@ -4205,7 +4194,7 @@ __metadata:
statuses: ^1.5.0 statuses: ^1.5.0
type-is: ^1.6.16 type-is: ^1.6.16
vary: ^1.1.2 vary: ^1.1.2
checksum: da17421e44559e4c2cc94c6cca79a027f73cbfba4035ed04c5ae676206b16974c09a632c49b57f75ac0c5f34227a42f3cc9b02c37bc98d47f364ed6c6ddf46ce checksum: a97741f89f328f25ae94d82d0ee608377d89e086c73f2d868023e6050dea682ef93e0a5c80097f3aaad28121853aea50a7fb3c0c12ecc45798da2fd1255f580b
languageName: node languageName: node
linkType: hard linkType: hard
@ -4296,24 +4285,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"loader-runner@npm:^4.1.0, loader-runner@npm:^4.2.0": "loader-runner@npm:^4.2.0":
version: 4.3.0 version: 4.3.0
resolution: "loader-runner@npm:4.3.0" resolution: "loader-runner@npm:4.3.0"
checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569
languageName: node languageName: node
linkType: hard linkType: hard
"loader-utils@npm:^1.1.0, loader-utils@npm:^1.2.3":
version: 1.4.2
resolution: "loader-utils@npm:1.4.2"
dependencies:
big.js: ^5.2.2
emojis-list: ^3.0.0
json5: ^1.0.1
checksum: eb6fb622efc0ffd1abdf68a2022f9eac62bef8ec599cf8adb75e94d1d338381780be6278534170e99edc03380a6d29bc7eb1563c89ce17c5fed3a0b17f1ad804
languageName: node
linkType: hard
"loader-utils@npm:^2.0.0": "loader-utils@npm:^2.0.0":
version: 2.0.4 version: 2.0.4
resolution: "loader-utils@npm:2.0.4" resolution: "loader-utils@npm:2.0.4"
@ -4408,15 +4386,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"make-dir@npm:^3.0.2":
version: 3.1.0
resolution: "make-dir@npm:3.1.0"
dependencies:
semver: ^6.0.0
checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78
languageName: node
linkType: hard
"make-error@npm:^1.1.1": "make-error@npm:^1.1.1":
version: 1.3.6 version: 1.3.6
resolution: "make-error@npm:1.3.6" resolution: "make-error@npm:1.3.6"
@ -4566,17 +4535,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mini-css-extract-plugin@npm:^0.6.0": "mini-css-extract-plugin@npm:^2.7.7":
version: 0.6.0 version: 2.7.7
resolution: "mini-css-extract-plugin@npm:0.6.0" resolution: "mini-css-extract-plugin@npm:2.7.7"
dependencies: dependencies:
loader-utils: ^1.1.0 schema-utils: ^4.0.0
normalize-url: ^2.0.1
schema-utils: ^1.0.0
webpack-sources: ^1.1.0
peerDependencies: peerDependencies:
webpack: ^4.4.0 webpack: ^5.0.0
checksum: 6703d4de8c788c467dea1baacaa8843ddfd3e6895912635f01d568d2f60017df631badd3a757089ab5c4cdac97c60cc7167a6e941b2c36f6f634d00254ea6d6a checksum: 04af0e7d8c1a4ff31c70ac2d0895837dae3d51cce3bfd90e3c1d90d50eef7de21778361a3064531df046d775d80b3bf056324dddea93831c7def2047c5aa8718
languageName: node languageName: node
linkType: hard linkType: hard
@ -4735,7 +4701,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ms@npm:^2.0.0": "ms@npm:^2.0.0, ms@npm:^2.1.1":
version: 2.1.3 version: 2.1.3
resolution: "ms@npm:2.1.3" resolution: "ms@npm:2.1.3"
checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
@ -4783,7 +4749,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"neo-async@npm:^2.6.1, neo-async@npm:^2.6.2": "neo-async@npm:^2.6.2":
version: 2.6.2 version: 2.6.2
resolution: "neo-async@npm:2.6.2" resolution: "neo-async@npm:2.6.2"
checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9
@ -4931,17 +4897,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"normalize-url@npm:^2.0.1":
version: 2.0.1
resolution: "normalize-url@npm:2.0.1"
dependencies:
prepend-http: ^2.0.0
query-string: ^5.0.1
sort-keys: ^2.0.0
checksum: 30e337ee03fc7f360c7d2b966438657fabd2628925cc58bffc893982fe4d2c59b397ae664fa2c319cd83565af73eee88906e80bc5eec91bc32b601920e770d75
languageName: node
linkType: hard
"normalize-url@npm:^6.0.1": "normalize-url@npm:^6.0.1":
version: 6.1.0 version: 6.1.0
resolution: "normalize-url@npm:6.1.0" resolution: "normalize-url@npm:6.1.0"
@ -5041,7 +4996,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0": "object-assign@npm:^4.0.1":
version: 4.1.1 version: 4.1.1
resolution: "object-assign@npm:4.1.1" resolution: "object-assign@npm:4.1.1"
checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f
@ -5225,7 +5180,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"path-is-absolute@npm:^1.0.0": "path-is-absolute@npm:1.0.1, path-is-absolute@npm:^1.0.0":
version: 1.0.1 version: 1.0.1
resolution: "path-is-absolute@npm:1.0.1" resolution: "path-is-absolute@npm:1.0.1"
checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
@ -5357,7 +5312,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": "pkg-dir@npm:^4.2.0":
version: 4.2.0 version: 4.2.0
resolution: "pkg-dir@npm:4.2.0" resolution: "pkg-dir@npm:4.2.0"
dependencies: dependencies:
@ -5763,13 +5718,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"prepend-http@npm:^2.0.0":
version: 2.0.0
resolution: "prepend-http@npm:2.0.0"
checksum: 7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea
languageName: node
linkType: hard
"pretty-error@npm:^4.0.0": "pretty-error@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "pretty-error@npm:4.0.0" resolution: "pretty-error@npm:4.0.0"
@ -5844,17 +5792,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"query-string@npm:^5.0.1":
version: 5.1.1
resolution: "query-string@npm:5.1.1"
dependencies:
decode-uri-component: ^0.2.0
object-assign: ^4.1.0
strict-uri-encode: ^1.0.0
checksum: 4ac760d9778d413ef5f94f030ed14b1a07a1708dd13fd3bc54f8b9ef7b425942c7577f30de0bf5a7d227ee65a9a0350dfa3a43d1d266880882fb7ce4c434a4dd
languageName: node
linkType: hard
"queue-microtask@npm:^1.2.2": "queue-microtask@npm:^1.2.2":
version: 1.2.3 version: 1.2.3
resolution: "queue-microtask@npm:1.2.3" resolution: "queue-microtask@npm:1.2.3"
@ -6030,6 +5967,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"resolve-path@npm:^1.4.0":
version: 1.4.0
resolution: "resolve-path@npm:1.4.0"
dependencies:
http-errors: ~1.6.2
path-is-absolute: 1.0.1
checksum: 1a39f569ee54dd5f8ee8576ef8671c9724bea65d9f9982fbb5352af9fb4e500e1e459c1bfb1ae3ebfd8d43a709c3a01dfa4f46cf5b831e45e2caed4f1a208300
languageName: node
linkType: hard
"resolve@npm:^1.10.0": "resolve@npm:^1.10.0":
version: 1.22.1 version: 1.22.1
resolution: "resolve@npm:1.22.1" resolution: "resolve@npm:1.22.1"
@ -6200,28 +6147,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"schema-utils@npm:^1.0.0":
version: 1.0.0
resolution: "schema-utils@npm:1.0.0"
dependencies:
ajv: ^6.1.0
ajv-errors: ^1.0.0
ajv-keywords: ^3.1.0
checksum: e8273b4f6eff9ddf4a4f4c11daf7b96b900237bf8859c86fa1e9b4fab416b72d7ea92468f8db89c18a3499a1070206e1c8a750c83b42d5325fc659cbb55eee88
languageName: node
linkType: hard
"schema-utils@npm:^2.0.0":
version: 2.7.1
resolution: "schema-utils@npm:2.7.1"
dependencies:
"@types/json-schema": ^7.0.5
ajv: ^6.12.4
ajv-keywords: ^3.5.2
checksum: 32c62fc9e28edd101e1bd83453a4216eb9bd875cc4d3775e4452b541908fa8f61a7bbac8ffde57484f01d7096279d3ba0337078e85a918ecbeb72872fb09fb2b
languageName: node
linkType: hard
"schema-utils@npm:^3.0.0": "schema-utils@npm:^3.0.0":
version: 3.1.1 version: 3.1.1
resolution: "schema-utils@npm:3.1.1" resolution: "schema-utils@npm:3.1.1"
@ -6244,7 +6169,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"schema-utils@npm:^4.0.1, schema-utils@npm:^4.2.0": "schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0":
version: 4.2.0 version: 4.2.0
resolution: "schema-utils@npm:4.2.0" resolution: "schema-utils@npm:4.2.0"
dependencies: dependencies:
@ -6272,7 +6197,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"semver@npm:^6.0.0, semver@npm:^6.2.0": "semver@npm:^6.2.0":
version: 6.3.0 version: 6.3.0
resolution: "semver@npm:6.3.0" resolution: "semver@npm:6.3.0"
bin: bin:
@ -6346,6 +6271,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"setprototypeof@npm:1.1.0":
version: 1.1.0
resolution: "setprototypeof@npm:1.1.0"
checksum: 27cb44304d6c9e1a23bc6c706af4acaae1a7aa1054d4ec13c05f01a99fd4887109a83a8042b67ad90dbfcd100d43efc171ee036eb080667172079213242ca36e
languageName: node
linkType: hard
"setprototypeof@npm:1.2.0": "setprototypeof@npm:1.2.0":
version: 1.2.0 version: 1.2.0
resolution: "setprototypeof@npm:1.2.0" resolution: "setprototypeof@npm:1.2.0"
@ -6481,15 +6413,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"sort-keys@npm:^2.0.0":
version: 2.0.0
resolution: "sort-keys@npm:2.0.0"
dependencies:
is-plain-obj: ^1.0.0
checksum: f0fd827fa9f8f866e98588d2a38c35209afbf1e9a05bb0e4ceeeb8bbf31d923c8902b0a7e0f561590ddb65e58eba6a74f74b991c85360bcc52e83a3f0d1cffd7
languageName: node
linkType: hard
"source-list-map@npm:^2.0.0": "source-list-map@npm:^2.0.0":
version: 2.0.1 version: 2.0.1
resolution: "source-list-map@npm:2.0.1" resolution: "source-list-map@npm:2.0.1"
@ -6611,20 +6534,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0": "statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0":
version: 1.5.0 version: 1.5.0
resolution: "statuses@npm:1.5.0" resolution: "statuses@npm:1.5.0"
checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c checksum: c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c
languageName: node languageName: node
linkType: hard linkType: hard
"strict-uri-encode@npm:^1.0.0":
version: 1.1.0
resolution: "strict-uri-encode@npm:1.1.0"
checksum: 9466d371f7b36768d43f7803f26137657559e4c8b0161fb9e320efb8edba3ae22f8e99d4b0d91da023b05a13f62ec5412c3f4f764b5788fac11d1fea93720bb3
languageName: node
linkType: hard
"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": "string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
version: 4.2.3 version: 4.2.3
resolution: "string-width@npm:4.2.3" resolution: "string-width@npm:4.2.3"
@ -6842,20 +6758,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"thread-loader@npm:^4.0.2":
version: 4.0.2
resolution: "thread-loader@npm:4.0.2"
dependencies:
json-parse-better-errors: ^1.0.2
loader-runner: ^4.1.0
neo-async: ^2.6.2
schema-utils: ^4.0.1
peerDependencies:
webpack: ^5.0.0
checksum: 1b1bd4cf4320b63e2a8c52d6ff64c4cf7fbc5e6099f41aae5fa35c4714134becff5b91cd6b00d707f60d18003aba0ae112a719dfbd92fbcdeb875beba76b1146
languageName: node
linkType: hard
"tmp-promise@npm:^3.0.2": "tmp-promise@npm:^3.0.2":
version: 3.0.3 version: 3.0.3
resolution: "tmp-promise@npm:3.0.3" resolution: "tmp-promise@npm:3.0.3"

882
yarn.lock

File diff suppressed because it is too large Load Diff