From 23af0139caf161215706e7ccc699c737fe1fada1 Mon Sep 17 00:00:00 2001 From: Shan Date: Wed, 1 Oct 2025 21:50:55 +0800 Subject: [PATCH 1/8] TINY-12824: Add rspack dev server support (modernize webpack setup) --- CHANGELOG.md | 3 + modules/client/package.json | 2 +- modules/common/package.json | 2 +- modules/runner/package.json | 2 +- modules/sample/package.json | 2 +- modules/server/package.json | 3 + modules/server/src/main/ts/BedrockManual.ts | 9 +- .../src/main/ts/bedrock/cli/ClOptions.ts | 3 +- .../src/main/ts/bedrock/compiler/Compiler.ts | 11 +- .../src/main/ts/bedrock/compiler/Rspack.ts | 254 ++++++++++++++ .../src/main/ts/bedrock/compiler/Types.ts | 19 + .../src/main/ts/bedrock/compiler/Webpack.ts | 23 +- .../src/main/ts/bedrock/core/Settings.ts | 2 +- .../main/ts/bedrock/server/RunnerRoutes.ts | 3 +- yarn.lock | 325 +++++++++++++++++- 15 files changed, 631 insertions(+), 32 deletions(-) create mode 100644 modules/server/src/main/ts/bedrock/compiler/Rspack.ts create mode 100644 modules/server/src/main/ts/bedrock/compiler/Types.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index abebc068..f68658a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +## Added +- Add rspack dev server support. #TINY-12824 + ## 15.0.2 - 2025-02-03 ## Improved diff --git a/modules/client/package.json b/modules/client/package.json index d1dedee3..14be99d8 100644 --- a/modules/client/package.json +++ b/modules/client/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-client", - "version": "15.0.0", + "version": "15.1.0-alpha.1", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/common/package.json b/modules/common/package.json index 53520e4a..1d604a57 100644 --- a/modules/common/package.json +++ b/modules/common/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-common", - "version": "15.0.0", + "version": "15.1.0-alpha.1", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/runner/package.json b/modules/runner/package.json index 599f1bda..c581a4e7 100644 --- a/modules/runner/package.json +++ b/modules/runner/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-runner", - "version": "15.0.2", + "version": "15.1.0-alpha.1", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/sample/package.json b/modules/sample/package.json index 8c37dab2..d34afade 100644 --- a/modules/sample/package.json +++ b/modules/sample/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-sample", - "version": "15.0.2", + "version": "15.1.0-alpha.1", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/server/package.json b/modules/server/package.json index 8acdd1c8..d5fcc970 100644 --- a/modules/server/package.json +++ b/modules/server/package.json @@ -23,6 +23,8 @@ "@ephox/bedrock-runner": "^15.0.2", "@jsdevtools/coverage-istanbul-loader": "^3.0.5", "@lambdatest/node-tunnel": "^4.0.4", + "@rspack/core": "^1.5.2", + "@rspack/dev-server": "^1.1.4", "@wdio/globals": "^8.14.1", "async": "^3.0.0", "chalk": "^4.1.1", @@ -49,6 +51,7 @@ "serve-static": "^1.10.2", "source-map-loader": "^3.0.0", "split2": "^4.2.0", + "ts-checker-rspack-plugin": "^1.1.5", "ts-loader": "^9.0.0", "tsconfig-paths-webpack-plugin": "^3.2.0", "webdriverio": "^8.0.0", diff --git a/modules/server/src/main/ts/BedrockManual.ts b/modules/server/src/main/ts/BedrockManual.ts index 991d6a1f..ef087abf 100644 --- a/modules/server/src/main/ts/BedrockManual.ts +++ b/modules/server/src/main/ts/BedrockManual.ts @@ -2,9 +2,11 @@ import { Attempt } from './bedrock/core/Attempt'; import * as Version from './bedrock/core/Version'; import * as RunnerRoutes from './bedrock/server/RunnerRoutes'; import * as Webpack from './bedrock/compiler/Webpack'; +import * as Rspack from './bedrock/compiler/Rspack'; import { BedrockManualSettings } from './bedrock/core/Settings'; import { ExitCodes } from './bedrock/util/ExitCodes'; import * as SettingsResolver from './bedrock/core/SettingsResolver'; +import { DevServerServeSettings } from './bedrock/compiler/Types'; export const go = (bedrockManualSettings: BedrockManualSettings): void => { console.log('bedrock-manual ' + Version.get() + ' starting...'); @@ -14,7 +16,7 @@ export const go = (bedrockManualSettings: BedrockManualSettings): void => { const routes = RunnerRoutes.generate('manual', settings.projectdir, settings.basedir, settings.config, settings.bundler, settings.testfiles, settings.chunk, 0, settings.singleTimeout, true, basePage, settings.coverage, settings.polyfills); routes.then(async (runner) => { - const serveSettings: Webpack.WebpackServeSettings = { + const serveSettings: DevServerServeSettings = { ...settings, // There is no driver for manual mode. driver: Attempt.failed('There is no webdriver for manual mode'), @@ -23,11 +25,12 @@ export const go = (bedrockManualSettings: BedrockManualSettings): void => { // sticky session is used by auto mode only stickyFirstSession: false, // reset mouse position will never work on manual - skipResetMousePosition: true + skipResetMousePosition: true, }; try { - const service = await Webpack.devserver(serveSettings); + const devServer = settings.bundler === 'rspack' ? Rspack.devserver : Webpack.devserver; + const service = await devServer(serveSettings); service.enableHud(); console.log('bedrock-manual ' + Version.get() + ' available at: http://localhost:' + service.port); } catch (err) { diff --git a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts index 04d9d997..e01e68a5 100644 --- a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts +++ b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts @@ -60,7 +60,8 @@ export const bundler: ClOption = { description: 'DISABLED: The name bundler to use webpack/rollup (forced webpack in this build)', validate: Extraction.inSet([ 'webpack', - 'rollup' + 'rollup', + 'rspack' ]) }; diff --git a/modules/server/src/main/ts/bedrock/compiler/Compiler.ts b/modules/server/src/main/ts/bedrock/compiler/Compiler.ts index 58a259ad..cc47186b 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Compiler.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Compiler.ts @@ -1,13 +1,20 @@ import * as fs from 'fs'; import * as Webpack from '../compiler/Webpack'; +import * as Rspack from '../compiler/Rspack'; export interface Compiler { readonly generate: () => Promise; } -export const compile = (tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, files: string[], coverage: string[], polyfills: string[]): Compiler => { +export const compile = (bundler: 'webpack' | 'rollup' | 'rspack', tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, files: string[], coverage: string[], polyfills: string[]): Compiler => { const getCompileFunc = () => { - return Webpack.compile; + switch (bundler) { + case 'rspack': + return Rspack.compile; + case 'webpack': + case 'rollup': + return Webpack.compile; + } }; const generate = async (): Promise => { diff --git a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts new file mode 100644 index 00000000..1d11a48e --- /dev/null +++ b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts @@ -0,0 +1,254 @@ +import * as path from 'path'; +import * as fs from 'fs'; +import * as mkdirp from 'mkdirp'; +import * as Serve from '../server/Serve'; +import { ExitCodes } from '../util/ExitCodes'; +import * as Imports from './Imports'; +import { rspack, RspackOptions } from '@rspack/core'; +import { RspackDevServer } from '@rspack/dev-server'; +import { RspackCompileInfo, DevServerServeSettings } from './Types'; + +const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: string, coverage: string[], manualMode: boolean, basedir: string): RspackOptions => { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); + + const modulesDir = path.resolve(process.cwd(), 'modules'); + const ephoxAliases = fs.existsSync(modulesDir) + ? Object.fromEntries(fs.readdirSync(modulesDir).map((name) => { + if (name === 'persona') { + return [`@tinymce/${name}`, path.join(modulesDir, name, 'src/main/ts/main.ts')]; + } + return [`@ephox/${name}`, path.join(modulesDir, name, 'src/main/ts/ephox', name, 'api/Main.ts')]; + })) + : {}; + + const getTsConfigFile = () => path.isAbsolute(tsConfigFile) ? tsConfigFile : path.resolve(process.cwd(), tsConfigFile); + + return { + entry: scratchFile, + devtool: manualMode ? 'inline-source-map' : 'source-map', + mode: manualMode ? 'development' : 'none', + target: ['web', 'es5'], + + optimization: { + usedExports: !manualMode + }, + + ignoreWarnings: [ + // suppress type re-export warnings caused by `transpileOnly: true` + // See https://github.com/TypeStrong/ts-loader#transpileonly + /export .* was not found in/ + ], + + resolve: { + extensions: ['.ts', '.tsx', '.js', '.mjs'], + tsConfig: getTsConfigFile(), + alias: { + ...ephoxAliases, + // https://github.com/rspack-contrib/rstack-examples/blob/main/rspack/preact/rspack.config.js + react: 'preact/compat', + 'react-dom/test-utils': 'preact/test-utils', + 'react-dom': 'preact/compat', // Must be below test-utils + 'react/jsx-runtime': 'preact/jsx-runtime', + } + }, + + // Webpack by default only resolves from the ./node_modules directory which will cause issues if the project that uses bedrock + // doesn't also depend on the webpack loaders. So we need to add the path to the bedrock node_modules directory as well. + resolveLoader: { + modules: [ + path.join(basedir, 'node_modules'), + 'node_modules' + ] + }, + + module: { + rules: [ + { + test: /\.(tsx?)$/, + loader: 'builtin:swc-loader', + options: { + jsc: { + parser: { syntax: 'typescript', tsx: true }, + transform: { + react: { + runtime: 'automatic', + }, + }, + }, + sourceMaps: manualMode ? 'inline' : true + } + }, + { + test: /\.js$/, + resolve: { + fullySpecified: false + } + }, + { + test: /\.(mjs)$/, + type: 'javascript/auto', + use: [] + }, + { + test: /\.(js|mjs)$/, + use: ['source-map-loader'], + enforce: 'pre' + }, + { + test: /\.(html|htm|css|bower|hex|rtf|xml|yml|svg)$/i, + type: 'asset/source' + }, + { + test: /\.(jpe?g|png|gif|apng|avif|webp|bmp|tiff)$/i, + type: 'asset/inline' + }, + { + resourceQuery: /raw/, + type: 'asset/source' + } + ] + }, + + plugins: [ + new rspack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify('development') + }), + new TsCheckerRspackPlugin({ + async: manualMode, + typescript: { + memoryLimit: manualMode ? 4096 : 2048, + configFile: getTsConfigFile(), + build: true + } + }) + ], + + output: { + filename: path.basename(dest), + path: path.resolve(path.dirname(dest)) + } + }; +}; + +const compileTests = (compileInfo: RspackCompileInfo, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { + return new Promise((resolve) => { + console.log(`Compiling ${srcFiles.length} tests...`); + + mkdirp.sync(path.dirname(compileInfo.scratchFile)); + fs.writeFileSync(compileInfo.scratchFile, Imports.generateImports(true, compileInfo.scratchFile, srcFiles, polyfills)); + + rspack(compileInfo.config, (err, stats) => { + if (err || stats && stats.hasErrors()) { + const msg = err ?? stats?.toString({ + all: false, + errors: true, + moduleTrace: true, + chunks: false, + colors: false + }); + + console.log(msg); + + if (exitOnCompileError) { + process.exit(ExitCodes.failures.error); + } + } + + resolve(compileInfo.dest); + }); + }); +}; + +const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { + return new Promise((resolve, reject) => { + const scratchFile = path.join(scratchDir, 'compiled/tests-imports.ts'); + const dest = path.join(scratchDir, 'compiled/tests.js'); + + if (!fs.existsSync(tsConfigFile)) { + reject(`Could not find the required tsconfig file: ${tsConfigFile}`); + } else { + const config = getWebPackConfigTs(tsConfigFile, scratchFile, dest, coverage, manualMode, basedir); + resolve({ scratchFile, dest, config }); + } + }); +}; + +const getCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, srcFiles: string[], coverage: string[]): Promise => { + return getTsCompileInfo(tsConfigFile, scratchDir, basedir, manualMode, coverage); +}; + +export const compile = async (tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, srcFiles: string[], coverage: string[], polyfills: string[]): Promise => { + const compileInfo = await getCompileInfo(tsConfigFile, scratchDir, basedir, false, srcFiles, coverage); + return compileTests(compileInfo, exitOnCompileError, srcFiles, polyfills); +}; + +const isCompiledRequest = (url?: string) => url && url.startsWith('/compiled/'); + +export const devserver = async (settings: DevServerServeSettings): Promise => { + const scratchDir = path.resolve('scratch'); + const tsConfigFile = settings.config; + + const compileInfo = await getCompileInfo(tsConfigFile, scratchDir, settings.basedir, true, settings.testfiles, settings.coverage); + return Serve.startCustom(settings, (port, handler) => { + const scratchFile = compileInfo.scratchFile; + console.log(`Loading ${settings.testfiles.length} test files...`); + + mkdirp.sync(path.dirname(scratchFile)); + fs.writeFileSync(scratchFile, Imports.generateImports(true, scratchFile, settings.testfiles, settings.polyfills)); + + const compiler = rspack({ + infrastructureLogging: { level: 'warn' }, + watchOptions: { + ignored: [scratchFile], + }, + ...compileInfo.config + }); + + const server = new RspackDevServer({ + port, + allowedHosts: 'all', + hot: false, + setupExitSignals: false, + headers: { + 'Cache-Control': 'public, max-age=0' // Ensure compiled assets are re-validated + }, + devMiddleware: { + publicPath: '/compiled/', + stats: { + // copied from `'minimal'` and disabled assets + // https://github.com/webpack/webpack/blob/v5.40.0/lib/stats/DefaultStatsPresetPlugin.js#L78 + all: false, + version: false, + timings: true, + modules: true, + modulesSpace: 0, + assets: false, + assetsSpace: 0, + errors: true, + errorsCount: true, + warnings: true, + warningsCount: true, + logging: 'warn' + } + }, + // Static content is handled via the bedrock middleware below + static: false, + setupMiddlewares: (middlewares) => { + return [ + { + name: 'bedrock', middleware: (req, res, next) => { + return isCompiledRequest(req.url) ? next() : handler(req, res); + } + }, + ...middlewares + ]; + } + }, compiler); + + return { + start: () => (server as any).start(), + stop: () => (server as any).stop() + }; + }); +}; diff --git a/modules/server/src/main/ts/bedrock/compiler/Types.ts b/modules/server/src/main/ts/bedrock/compiler/Types.ts new file mode 100644 index 00000000..9f86caaa --- /dev/null +++ b/modules/server/src/main/ts/bedrock/compiler/Types.ts @@ -0,0 +1,19 @@ +import * as Serve from '../server/Serve'; +import { RspackOptions } from '@rspack/core'; +import { Configuration } from 'webpack'; + +export interface DevServerServeSettings extends Serve.ServeSettings { + readonly config: string; + readonly coverage: string[]; + readonly polyfills: string[]; +} + +export type WebpackCompileInfo = CompileInfo; +export type RspackCompileInfo = CompileInfo; + +export interface CompileInfo { + readonly scratchFile: string; + readonly dest: string; + readonly config: T; +} + diff --git a/modules/server/src/main/ts/bedrock/compiler/Webpack.ts b/modules/server/src/main/ts/bedrock/compiler/Webpack.ts index 4002e343..9463d3b0 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Webpack.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Webpack.ts @@ -7,18 +7,7 @@ import * as Serve from '../server/Serve'; import { ExitCodes } from '../util/ExitCodes'; import * as Imports from './Imports'; import { hasTs } from './TsUtils'; - -export interface WebpackServeSettings extends Serve.ServeSettings { - readonly config: string; - readonly coverage: string[]; - readonly polyfills: string[]; -} - -interface CompileInfo { - readonly scratchFile: string; - readonly dest: string; - readonly config: webpack.Configuration; -} +import { WebpackCompileInfo, DevServerServeSettings } from './Types'; const moduleAvailable = (name: string) => { try { @@ -226,7 +215,7 @@ const getWebPackConfigJs = (scratchFile: string, dest: string, coverage: string[ }; }; -const compileTests = (compileInfo: CompileInfo, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { +const compileTests = (compileInfo: WebpackCompileInfo, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { return new Promise((resolve) => { console.log(`Compiling ${srcFiles.length} tests...`); @@ -255,7 +244,7 @@ const compileTests = (compileInfo: CompileInfo, exitOnCompileError: boolean, src }); }; -const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { +const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { return new Promise((resolve, reject) => { const scratchFile = path.join(scratchDir, 'compiled/tests-imports.ts'); const dest = path.join(scratchDir, 'compiled/tests.js'); @@ -269,7 +258,7 @@ const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: str }); }; -const getJsCompileInfo = (scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { +const getJsCompileInfo = (scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { const scratchFile = path.join(scratchDir, 'compiled/tests-imports.js'); const dest = path.join(scratchDir, 'compiled/tests.js'); const config = getWebPackConfigJs(scratchFile, dest, coverage, manualMode, basedir); @@ -277,7 +266,7 @@ const getJsCompileInfo = (scratchDir: string, basedir: string, manualMode: boole return Promise.resolve({ scratchFile, dest, config }); }; -const getCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, srcFiles: string[], coverage: string[]): Promise => { +const getCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, srcFiles: string[], coverage: string[]): Promise => { if (hasTs(srcFiles)) { return getTsCompileInfo(tsConfigFile, scratchDir, basedir, manualMode, coverage); } else { @@ -292,7 +281,7 @@ export const compile = async (tsConfigFile: string, scratchDir: string, basedir: const isCompiledRequest = (request: { url: string }) => request.url.startsWith('/compiled/'); -export const devserver = async (settings: WebpackServeSettings): Promise => { +export const devserver = async (settings: DevServerServeSettings): Promise => { const scratchDir = path.resolve('scratch'); const tsConfigFile = settings.config; diff --git a/modules/server/src/main/ts/bedrock/core/Settings.ts b/modules/server/src/main/ts/bedrock/core/Settings.ts index aa348710..39513880 100644 --- a/modules/server/src/main/ts/bedrock/core/Settings.ts +++ b/modules/server/src/main/ts/bedrock/core/Settings.ts @@ -2,7 +2,7 @@ export interface BedrockSettings { readonly basedir: string; - readonly bundler: 'webpack' | 'rollup'; + readonly bundler: 'webpack' | 'rollup' | 'rspack'; readonly chunk: number; readonly loglevel: 'simple' | 'advanced'; readonly overallTimeout: number; diff --git a/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts b/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts index 02628c03..f2050637 100644 --- a/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts +++ b/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts @@ -17,13 +17,14 @@ interface WorkspaceRoot { folder: string; } -export const generate = async (mode: string, projectdir: string, basedir: string, configFile: string, bundler: 'webpack' | 'rollup', testfiles: string[], chunk: number, +export const generate = async (mode: string, projectdir: string, basedir: string, configFile: string, bundler: 'webpack' | 'rollup' | 'rspack', testfiles: string[], chunk: number, retries: number, singleTimeout: number, stopOnFailure: boolean, basePage: string, coverage: string[], polyfills: string[]): Promise => { const files = testfiles.map((filePath) => { return path.relative(projectdir, filePath); }); const testGenerator = Compiler.compile( + bundler, path.join(projectdir, configFile), path.join(projectdir, 'scratch'), basedir, diff --git a/yarn.lock b/yarn.lock index 948aba0f..e549bd48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -430,6 +430,15 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + "@babel/compat-data@^7.15.0": version "7.15.0" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" @@ -572,6 +581,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" @@ -662,6 +676,28 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" +"@emnapi/core@^1.4.5": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.5.0.tgz#85cd84537ec989cebb2343606a1ee663ce4edaf0" + integrity sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg== + dependencies: + "@emnapi/wasi-threads" "1.1.0" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.5": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.5.0.tgz#9aebfcb9b17195dce3ab53c86787a6b7d058db73" + integrity sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" + integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== + dependencies: + tslib "^2.4.0" + "@ephox/dispute@^1.0.3": version "1.0.4" resolved "https://registry.npmjs.org/@ephox/dispute/-/dispute-1.0.4.tgz" @@ -891,11 +927,21 @@ merge-source-map "^1.1.0" schema-utils "^2.7.0" -"@jsonjoy.com/base64@^1.1.1": +"@jsonjoy.com/base64@^1.1.1", "@jsonjoy.com/base64@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" integrity sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA== +"@jsonjoy.com/buffers@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/buffers/-/buffers-1.0.0.tgz#ade6895b7d3883d70f87b5743efaa12c71dfef7a" + integrity sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q== + +"@jsonjoy.com/codegen@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207" + integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g== + "@jsonjoy.com/json-pack@^1.0.3": version "1.1.1" resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.1.1.tgz#1f2db19ab1fd3304ccac259a1ef1dc6aff6df0ba" @@ -906,11 +952,40 @@ hyperdyperid "^1.2.0" thingies "^1.20.0" +"@jsonjoy.com/json-pack@^1.11.0": + version "1.14.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pack/-/json-pack-1.14.0.tgz#eda5255ccdaeafb3aa811ff1ae4814790b958b4f" + integrity sha512-LpWbYgVnKzphN5S6uss4M25jJ/9+m6q6UJoeN6zTkK4xAGhKsiBRPVeF7OYMWonn5repMQbE5vieRXcMUrKDKw== + dependencies: + "@jsonjoy.com/base64" "^1.1.2" + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/json-pointer" "^1.0.1" + "@jsonjoy.com/util" "^1.9.0" + hyperdyperid "^1.2.0" + thingies "^2.5.0" + +"@jsonjoy.com/json-pointer@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz#049cb530ac24e84cba08590c5e36b431c4843408" + integrity sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg== + dependencies: + "@jsonjoy.com/codegen" "^1.0.0" + "@jsonjoy.com/util" "^1.9.0" + "@jsonjoy.com/util@^1.1.2", "@jsonjoy.com/util@^1.3.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.5.0.tgz#6008e35b9d9d8ee27bc4bfaa70c8cbf33a537b4c" integrity sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA== +"@jsonjoy.com/util@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@jsonjoy.com/util/-/util-1.9.0.tgz#7ee95586aed0a766b746cd8d8363e336c3c47c46" + integrity sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ== + dependencies: + "@jsonjoy.com/buffers" "^1.0.0" + "@jsonjoy.com/codegen" "^1.0.0" + "@lambdatest/node-tunnel@^4.0.4": version "4.0.8" resolved "https://registry.yarnpkg.com/@lambdatest/node-tunnel/-/node-tunnel-4.0.8.tgz#4c0dae46ee03c16fa77f6651b471d2f0ade761c7" @@ -1612,6 +1687,49 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@module-federation/error-codes@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/error-codes/-/error-codes-0.18.0.tgz#00830ece3b5b6bcda0a874a8426bcd94599bf738" + integrity sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ== + +"@module-federation/runtime-core@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-core/-/runtime-core-0.18.0.tgz#d696bce1001b42a3074613a9e51b1f9e843f5492" + integrity sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ== + dependencies: + "@module-federation/error-codes" "0.18.0" + "@module-federation/sdk" "0.18.0" + +"@module-federation/runtime-tools@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.18.0.tgz#8eddf50178974e0b2caaf8ad42e798eff3ab98e2" + integrity sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA== + dependencies: + "@module-federation/runtime" "0.18.0" + "@module-federation/webpack-bundler-runtime" "0.18.0" + +"@module-federation/runtime@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.18.0.tgz#875486c67a0038d474a7efc890be5ee6f579ad38" + integrity sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw== + dependencies: + "@module-federation/error-codes" "0.18.0" + "@module-federation/runtime-core" "0.18.0" + "@module-federation/sdk" "0.18.0" + +"@module-federation/sdk@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.18.0.tgz#47bdbc23768fc2b9aae4f70bad47d6454349c1c1" + integrity sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A== + +"@module-federation/webpack-bundler-runtime@0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.18.0.tgz#ba81a43800e6ceaff104a6956d9088b84df5a496" + integrity sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ== + dependencies: + "@module-federation/runtime" "0.18.0" + "@module-federation/sdk" "0.18.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" @@ -1620,6 +1738,15 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@napi-rs/wasm-runtime@^1.0.1": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.3.tgz#24593dbd6fd1454b0b9c8b73bf7ac62d92a6bf63" + integrity sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q== + dependencies: + "@emnapi/core" "^1.4.5" + "@emnapi/runtime" "^1.4.5" + "@tybys/wasm-util" "^0.10.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -1877,6 +2004,99 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz#73bf1885ff052b82fbb0f82f8671f73c36e9137c" integrity sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og== +"@rspack/binding-darwin-arm64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.5.2.tgz#91daeebeeef95f48216714b81df061acab45c68e" + integrity sha512-aO76T6VQvAFt1LJNRA5aPOJ+szeTLlzC5wubsnxgWWjG53goP+Te35kFjDIDe+9VhKE/XqRId6iNAymaEsN+Uw== + +"@rspack/binding-darwin-x64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.5.2.tgz#8c095b830f6220ded92144fc58ea3bc945dde883" + integrity sha512-XNSmUOwdGs2PEdCKTFCC0/vu/7U9nMhAlbHJKlmdt0V4iPvFyaNWxkNdFqzLc05jlJOfgDdwbwRb91y9IcIIFQ== + +"@rspack/binding-linux-arm64-gnu@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.5.2.tgz#73d14dc5f861a35543ab7249a06fab69340a068e" + integrity sha512-rNxRfgC5khlrhyEP6y93+45uQ4TI7CdtWqh5PKsaR6lPepG1rH4L8VE+etejSdhzXH6wQ76Rw4wzb96Hx+5vuQ== + +"@rspack/binding-linux-arm64-musl@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.5.2.tgz#ddcd1b63ca0f6ff4b19e053293bd3d3f09c3cb81" + integrity sha512-kTFX+KsGgArWC5q+jJWz0K/8rfVqZOn1ojv1xpCCcz/ogWRC/qhDGSOva6Wandh157BiR93Vfoe1gMvgjpLe5g== + +"@rspack/binding-linux-x64-gnu@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.5.2.tgz#f4d85a90cde80494b33fadbb8bd277c534ff888e" + integrity sha512-Lh/6WZGq30lDV6RteQQu7Phw0RH2Z1f4kGR+MsplJ6X4JpnziDow+9oxKdu6FvFHWxHByncpveVeInusQPmL7Q== + +"@rspack/binding-linux-x64-musl@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.5.2.tgz#4e88bb7fadcdf79c1f6ccde013e4ec1826f482bc" + integrity sha512-CsLC/SIOIFs6CBmusSAF0FECB62+J36alMdwl7j6TgN6nX3UQQapnL1aVWuQaxU6un/1Vpim0V/EZbUYIdJQ4g== + +"@rspack/binding-wasm32-wasi@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.5.2.tgz#a4d751208e6bffbc68a20cf4ce8cc3e69f0c4464" + integrity sha512-cuVbGr1b4q0Z6AtEraI3becZraPMMgZtZPRaIsVLeDXCmxup/maSAR3T6UaGf4Q2SNcFfjw4neGz5UJxPK8uvA== + dependencies: + "@napi-rs/wasm-runtime" "^1.0.1" + +"@rspack/binding-win32-arm64-msvc@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.5.2.tgz#dfc61996e2c85560abe5a1873d085f4e2dc55798" + integrity sha512-4vJQdzRTSuvmvL3vrOPuiA7f9v9frNc2RFWDxqg+GYt0YAjDStssp+lkVbRYyXnTYVJkARSuO6N+BOiI+kLdsQ== + +"@rspack/binding-win32-ia32-msvc@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.5.2.tgz#7cc8b6d3d0672be3892990b6731790e3f26f24b8" + integrity sha512-zPbu3lx/NrNxdjZzTIjwD0mILUOpfhuPdUdXIFiOAO8RiWSeQpYOvyI061s/+bNOmr4A+Z0uM0dEoOClfkhUFg== + +"@rspack/binding-win32-x64-msvc@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.5.2.tgz#4084c68ca6c4149db85a874d251950a10b53dfab" + integrity sha512-duLNUTshX38xhC10/W9tpkPca7rOifP2begZjdb1ikw7C4AI0I7VnBnYt8qPSxGISoclmhOBxU/LuAhS8jMMlg== + +"@rspack/binding@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.5.2.tgz#84369484dbb4e70eabba03e5e4dd97d4bf530b7e" + integrity sha512-NKiBcsxmAzFDYRnK2ZHWbTtDFVT5/704eK4OfpgsDXPMkaMnBKijMKNgP5pbe18X4rUlz+8HnGm4+Xllo9EESw== + optionalDependencies: + "@rspack/binding-darwin-arm64" "1.5.2" + "@rspack/binding-darwin-x64" "1.5.2" + "@rspack/binding-linux-arm64-gnu" "1.5.2" + "@rspack/binding-linux-arm64-musl" "1.5.2" + "@rspack/binding-linux-x64-gnu" "1.5.2" + "@rspack/binding-linux-x64-musl" "1.5.2" + "@rspack/binding-wasm32-wasi" "1.5.2" + "@rspack/binding-win32-arm64-msvc" "1.5.2" + "@rspack/binding-win32-ia32-msvc" "1.5.2" + "@rspack/binding-win32-x64-msvc" "1.5.2" + +"@rspack/core@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.5.2.tgz#14e75697600c17cb68b54f3376caf8f5424aa4e1" + integrity sha512-ifjHqLczC81d1xjXPXCzxTFKNOFsEzuuLN44cMnyzQ/GWi4B48fyX7JHndWE7Lxd54cW1O9Ik7AdBN3Gq891EA== + dependencies: + "@module-federation/runtime-tools" "0.18.0" + "@rspack/binding" "1.5.2" + "@rspack/lite-tapable" "1.0.1" + +"@rspack/dev-server@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@rspack/dev-server/-/dev-server-1.1.4.tgz#f31096a9ff65cb29444e5cc86c03754aa6361b8f" + integrity sha512-kGHYX2jYf3ZiHwVl0aUEPBOBEIG1aWleCDCAi+Jg32KUu3qr/zDUpCEd0wPuHfLEgk0X0xAEYCS6JMO7nBStNQ== + dependencies: + chokidar "^3.6.0" + http-proxy-middleware "^2.0.9" + p-retry "^6.2.0" + webpack-dev-server "5.2.2" + ws "^8.18.0" + +"@rspack/lite-tapable@1.0.1", "@rspack/lite-tapable@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz#d4540a5d28bd6177164bc0ba0bee4bdec0458591" + integrity sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w== + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -2312,6 +2532,13 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz" integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== +"@tybys/wasm-util@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.0.tgz#2fd3cd754b94b378734ce17058d0507c45c88369" + integrity sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ== + dependencies: + tslib "^2.4.0" + "@types/body-parser@*": version "1.19.2" resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" @@ -2421,7 +2648,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.33": +"@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.33": version "4.19.6" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== @@ -6276,6 +6503,11 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-to-regex.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/glob-to-regex.js/-/glob-to-regex.js-1.0.1.tgz#f71cc9cb8441471a9318626160bc8a35e1306b21" + integrity sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg== + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" @@ -6769,6 +7001,17 @@ http-proxy-middleware@^2.0.7: is-plain-obj "^3.0.0" micromatch "^4.0.2" +http-proxy-middleware@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" @@ -8175,6 +8418,18 @@ memfs@^3.4.1: dependencies: fs-monkey "1.0.3" +memfs@^4.28.0: + version "4.47.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.47.0.tgz#410291da6dcce89a0d6c9cab23b135231a5ed44c" + integrity sha512-Xey8IZA57tfotV/TN4d6BmccQuhFP+CqRiI7TTNdipZdZBzF2WnzUcH//Cudw6X4zJiUbo/LTuU/HPA/iC/pNg== + dependencies: + "@jsonjoy.com/json-pack" "^1.11.0" + "@jsonjoy.com/util" "^1.9.0" + glob-to-regex.js "^1.0.1" + thingies "^2.5.0" + tree-dump "^1.0.3" + tslib "^2.0.0" + memfs@^4.6.0: version "4.17.0" resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.17.0.tgz#a3c4b5490b9b1e7df5d433adc163e08208ce7ca2" @@ -8357,6 +8612,13 @@ minimatch@^9.0.0, minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimatch@~3.0.4: version "3.0.8" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz" @@ -11253,6 +11515,11 @@ thingies@^1.20.0: resolved "https://registry.yarnpkg.com/thingies/-/thingies-1.21.0.tgz#e80fbe58fd6fdaaab8fad9b67bd0a5c943c445c1" integrity sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g== +thingies@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.5.0.tgz#5f7b882c933b85989f8466b528a6247a6881e04f" + integrity sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw== + through2@^2.0.0, through2@^2.0.2: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" @@ -11358,6 +11625,11 @@ tree-dump@^1.0.1: resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.0.2.tgz#c460d5921caeb197bde71d0e9a7b479848c5b8ac" integrity sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ== +tree-dump@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tree-dump/-/tree-dump-1.1.0.tgz#ab29129169dc46004414f5a9d4a3c6e89f13e8a4" + integrity sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA== + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" @@ -11378,6 +11650,19 @@ trim-off-newlines@^1.0.0: resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz" integrity sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg== +ts-checker-rspack-plugin@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ts-checker-rspack-plugin/-/ts-checker-rspack-plugin-1.1.5.tgz#7bd624b8a80e7ec06d5c04ca373a58118d2365d1" + integrity sha512-jla7C8ENhRP87i2iKo8jLMOvzyncXou12odKe0CPTkCaI9l8Eaiqxflk/ML3+1Y0j+gKjMk2jb6swHYtlpdRqg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@rspack/lite-tapable" "^1.0.1" + chokidar "^3.6.0" + is-glob "^4.0.3" + memfs "^4.28.0" + minimatch "^9.0.5" + picocolors "^1.1.1" + ts-loader@^9.0.0: version "9.3.0" resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.0.tgz" @@ -11446,7 +11731,7 @@ tslib@^2.0.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== -tslib@^2.6.2: +tslib@^2.4.0, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -11877,6 +12162,40 @@ webpack-dev-middleware@^7.4.2: range-parser "^1.2.1" schema-utils "^4.0.0" +webpack-dev-server@5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz#96a143d50c58fef0c79107e61df911728d7ceb39" + integrity sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg== + dependencies: + "@types/bonjour" "^3.5.13" + "@types/connect-history-api-fallback" "^1.5.4" + "@types/express" "^4.17.21" + "@types/express-serve-static-core" "^4.17.21" + "@types/serve-index" "^1.9.4" + "@types/serve-static" "^1.15.5" + "@types/sockjs" "^0.3.36" + "@types/ws" "^8.5.10" + ansi-html-community "^0.0.8" + bonjour-service "^1.2.1" + chokidar "^3.6.0" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + express "^4.21.2" + graceful-fs "^4.2.6" + http-proxy-middleware "^2.0.9" + ipaddr.js "^2.1.0" + launch-editor "^2.6.1" + open "^10.0.3" + p-retry "^6.2.0" + schema-utils "^4.2.0" + selfsigned "^2.4.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^7.4.2" + ws "^8.18.0" + webpack-dev-server@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz#68043886edaa3fd875ad20e01589990a79612f9c" From 8815019ba25dc0e6dce68bc6011d63cdda7813b1 Mon Sep 17 00:00:00 2001 From: Shan Date: Tue, 9 Dec 2025 11:19:33 +0800 Subject: [PATCH 2/8] TINY-12824: Update cli bundler description --- modules/server/src/main/ts/bedrock/cli/ClOptions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts index e01e68a5..0cb0b174 100644 --- a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts +++ b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts @@ -57,7 +57,7 @@ export const bundler: ClOption = { type: String, required: false, defaultValue: 'webpack', - description: 'DISABLED: The name bundler to use webpack/rollup (forced webpack in this build)', + description: 'Specify the bundler (webpack, rspack, rollup). Rollup will be forced to webpack.', validate: Extraction.inSet([ 'webpack', 'rollup', From 426777bc47fa543f39b37e3f49c6f19db2b04429 Mon Sep 17 00:00:00 2001 From: Shan Date: Tue, 9 Dec 2025 13:40:29 +0800 Subject: [PATCH 3/8] TINY-12824: Fix lint issue --- .../src/main/ts/bedrock/compiler/Rspack.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts index 1d11a48e..a3162ce6 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts @@ -8,7 +8,7 @@ import { rspack, RspackOptions } from '@rspack/core'; import { RspackDevServer } from '@rspack/dev-server'; import { RspackCompileInfo, DevServerServeSettings } from './Types'; -const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: string, coverage: string[], manualMode: boolean, basedir: string): RspackOptions => { +const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: string, manualMode: boolean, basedir: string): RspackOptions => { // eslint-disable-next-line @typescript-eslint/no-var-requires const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); @@ -160,7 +160,7 @@ const compileTests = (compileInfo: RspackCompileInfo, exitOnCompileError: boolea }); }; -const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, coverage: string[]): Promise => { +const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean): Promise => { return new Promise((resolve, reject) => { const scratchFile = path.join(scratchDir, 'compiled/tests-imports.ts'); const dest = path.join(scratchDir, 'compiled/tests.js'); @@ -168,18 +168,18 @@ const getTsCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: str if (!fs.existsSync(tsConfigFile)) { reject(`Could not find the required tsconfig file: ${tsConfigFile}`); } else { - const config = getWebPackConfigTs(tsConfigFile, scratchFile, dest, coverage, manualMode, basedir); + const config = getWebPackConfigTs(tsConfigFile, scratchFile, dest, manualMode, basedir); resolve({ scratchFile, dest, config }); } }); }; -const getCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean, srcFiles: string[], coverage: string[]): Promise => { - return getTsCompileInfo(tsConfigFile, scratchDir, basedir, manualMode, coverage); +const getCompileInfo = (tsConfigFile: string, scratchDir: string, basedir: string, manualMode: boolean): Promise => { + return getTsCompileInfo(tsConfigFile, scratchDir, basedir, manualMode); }; -export const compile = async (tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, srcFiles: string[], coverage: string[], polyfills: string[]): Promise => { - const compileInfo = await getCompileInfo(tsConfigFile, scratchDir, basedir, false, srcFiles, coverage); +export const compile = async (tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { + const compileInfo = await getCompileInfo(tsConfigFile, scratchDir, basedir, false); return compileTests(compileInfo, exitOnCompileError, srcFiles, polyfills); }; @@ -189,7 +189,7 @@ export const devserver = async (settings: DevServerServeSettings): Promise { const scratchFile = compileInfo.scratchFile; console.log(`Loading ${settings.testfiles.length} test files...`); From 38285f5532620dd4eb8f6322036e46e4463b5b3d Mon Sep 17 00:00:00 2001 From: Shan Date: Fri, 12 Dec 2025 12:11:59 +0800 Subject: [PATCH 4/8] TINY-12824: Replace hardcoded aliases with package.json exports --- .../server/src/main/ts/bedrock/compiler/Rspack.ts | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts index a3162ce6..3293165f 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts @@ -12,17 +12,8 @@ const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: str // eslint-disable-next-line @typescript-eslint/no-var-requires const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); - const modulesDir = path.resolve(process.cwd(), 'modules'); - const ephoxAliases = fs.existsSync(modulesDir) - ? Object.fromEntries(fs.readdirSync(modulesDir).map((name) => { - if (name === 'persona') { - return [`@tinymce/${name}`, path.join(modulesDir, name, 'src/main/ts/main.ts')]; - } - return [`@ephox/${name}`, path.join(modulesDir, name, 'src/main/ts/ephox', name, 'api/Main.ts')]; - })) - : {}; - const getTsConfigFile = () => path.isAbsolute(tsConfigFile) ? tsConfigFile : path.resolve(process.cwd(), tsConfigFile); + console.log(`Using tsconfig file: ${getTsConfigFile()}`); return { entry: scratchFile, @@ -41,10 +32,10 @@ const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: str ], resolve: { + conditionNames: [ 'tiny:internal', 'default', 'import', 'browser'], extensions: ['.ts', '.tsx', '.js', '.mjs'], tsConfig: getTsConfigFile(), alias: { - ...ephoxAliases, // https://github.com/rspack-contrib/rstack-examples/blob/main/rspack/preact/rspack.config.js react: 'preact/compat', 'react-dom/test-utils': 'preact/test-utils', @@ -133,7 +124,6 @@ const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: str const compileTests = (compileInfo: RspackCompileInfo, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { return new Promise((resolve) => { - console.log(`Compiling ${srcFiles.length} tests...`); mkdirp.sync(path.dirname(compileInfo.scratchFile)); fs.writeFileSync(compileInfo.scratchFile, Imports.generateImports(true, compileInfo.scratchFile, srcFiles, polyfills)); From 4974e415ff15363fcaea5f5e94be4ecad07b2a68 Mon Sep 17 00:00:00 2001 From: Shan Date: Mon, 15 Dec 2025 12:07:25 +0800 Subject: [PATCH 5/8] TINY-12824: Rename from tiny:internal -> tiny:source --- modules/server/src/main/ts/bedrock/compiler/Rspack.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts index 3293165f..3ec5fda6 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts @@ -32,7 +32,7 @@ const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: str ], resolve: { - conditionNames: [ 'tiny:internal', 'default', 'import', 'browser'], + conditionNames: [ 'tiny:source', '...' ], extensions: ['.ts', '.tsx', '.js', '.mjs'], tsConfig: getTsConfigFile(), alias: { From 416cc766a1c12f5daf8d0a8b6dfbf683394db4a5 Mon Sep 17 00:00:00 2001 From: Shan Date: Tue, 16 Dec 2025 22:19:48 +0800 Subject: [PATCH 6/8] TINY-12824: Try bump memory --- Jenkinsfile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e2f89efd..9769dad7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,7 +6,11 @@ standardProperties() timestamps { - tinyPods.node(tag: '20') { + tinyPods.node( + tag: '20', + resourceRequestMemory: '2Gi', + resourceLimitMemory: '2Gi' +) { stage("clean") { exec('yarn clean') } @@ -27,6 +31,10 @@ timestamps { // Testing stage("bedrock testing") { bedrockRemoteBrowsers( + testContainer: [ + resourceRequestMemory: '2Gi', + resourceLimitMemory: '2Gi', + ], platforms: [ [ browser: 'chrome', provider: 'aws', buckets: 2 ], [ browser: 'firefox', provider: 'aws', buckets: 2 ], From afa1d4578bccd005c5a920ade64fe9883fb30b0e Mon Sep 17 00:00:00 2001 From: Shan Date: Wed, 17 Dec 2025 11:02:14 +0800 Subject: [PATCH 7/8] TINY-12824: Revert manually version bumping --- modules/client/package.json | 2 +- modules/common/package.json | 2 +- modules/runner/package.json | 2 +- modules/sample/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/client/package.json b/modules/client/package.json index 14be99d8..d1dedee3 100644 --- a/modules/client/package.json +++ b/modules/client/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-client", - "version": "15.1.0-alpha.1", + "version": "15.0.0", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/common/package.json b/modules/common/package.json index 1d604a57..53520e4a 100644 --- a/modules/common/package.json +++ b/modules/common/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-common", - "version": "15.1.0-alpha.1", + "version": "15.0.0", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/runner/package.json b/modules/runner/package.json index c581a4e7..599f1bda 100644 --- a/modules/runner/package.json +++ b/modules/runner/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-runner", - "version": "15.1.0-alpha.1", + "version": "15.0.2", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { diff --git a/modules/sample/package.json b/modules/sample/package.json index ec183494..ec569c7a 100644 --- a/modules/sample/package.json +++ b/modules/sample/package.json @@ -1,6 +1,6 @@ { "name": "@ephox/bedrock-sample", - "version": "15.1.0-alpha.1", + "version": "15.0.4", "author": "Tiny Technologies Inc", "license": "Apache-2.0", "scripts": { From 9aa548cf986e646b462967a10ee18aeee3e6260f Mon Sep 17 00:00:00 2001 From: Shan Date: Wed, 17 Dec 2025 12:21:15 +0800 Subject: [PATCH 8/8] TINY-12824: Get rid of obsolete rollup --- modules/server/package.json | 2 - .../src/main/ts/bedrock/cli/ClOptions.ts | 3 +- .../src/main/ts/bedrock/compiler/Compiler.ts | 3 +- .../src/main/ts/bedrock/compiler/Rollup.ts | 72 --------------- .../src/main/ts/bedrock/compiler/Rspack.ts | 1 - .../src/main/ts/bedrock/core/Settings.ts | 2 +- .../main/ts/bedrock/server/RunnerRoutes.ts | 2 +- yarn.lock | 87 +++---------------- 8 files changed, 15 insertions(+), 157 deletions(-) delete mode 100644 modules/server/src/main/ts/bedrock/compiler/Rollup.ts diff --git a/modules/server/package.json b/modules/server/package.json index 649931d7..4a6861b9 100644 --- a/modules/server/package.json +++ b/modules/server/package.json @@ -46,8 +46,6 @@ "mkdirp": "^1.0.0", "portfinder": "^1.0.25", "recursive-readdir-sync": "^1.0.6", - "rollup": "^2.0.0", - "rollup-plugin-typescript2": "^0.24.0", "serve-static": "^1.10.2", "source-map-loader": "^3.0.0", "split2": "^4.2.0", diff --git a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts index 0cb0b174..3374dc84 100644 --- a/modules/server/src/main/ts/bedrock/cli/ClOptions.ts +++ b/modules/server/src/main/ts/bedrock/cli/ClOptions.ts @@ -57,10 +57,9 @@ export const bundler: ClOption = { type: String, required: false, defaultValue: 'webpack', - description: 'Specify the bundler (webpack, rspack, rollup). Rollup will be forced to webpack.', + description: 'Specify the bundler (webpack, rspack).', validate: Extraction.inSet([ 'webpack', - 'rollup', 'rspack' ]) }; diff --git a/modules/server/src/main/ts/bedrock/compiler/Compiler.ts b/modules/server/src/main/ts/bedrock/compiler/Compiler.ts index cc47186b..5fc422a5 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Compiler.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Compiler.ts @@ -6,13 +6,12 @@ export interface Compiler { readonly generate: () => Promise; } -export const compile = (bundler: 'webpack' | 'rollup' | 'rspack', tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, files: string[], coverage: string[], polyfills: string[]): Compiler => { +export const compile = (bundler: 'webpack' | 'rspack', tsConfigFile: string, scratchDir: string, basedir: string, exitOnCompileError: boolean, files: string[], coverage: string[], polyfills: string[]): Compiler => { const getCompileFunc = () => { switch (bundler) { case 'rspack': return Rspack.compile; case 'webpack': - case 'rollup': return Webpack.compile; } }; diff --git a/modules/server/src/main/ts/bedrock/compiler/Rollup.ts b/modules/server/src/main/ts/bedrock/compiler/Rollup.ts deleted file mode 100644 index 4747f2d7..00000000 --- a/modules/server/src/main/ts/bedrock/compiler/Rollup.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -import * as rollup from 'rollup'; -import * as path from 'path'; -import * as fs from 'fs'; -import * as mkdirp from 'mkdirp'; -import * as Imports from './Imports'; -import {ExitCodes} from '../util/ExitCodes'; -import * as FileUtils from '../util/FileUtils'; - -export const compile = async (tsConfigFile: string, scratchDir: string, exitOnCompileError: boolean, srcFiles: string[], polyfills: string[]): Promise => { - const scratchFile = path.join(scratchDir, 'compiled/tests.ts'); - const dest = path.join(scratchDir, 'compiled/tests.js'); - - const outputOptions: rollup.OutputOptions = { - name: 'ephoxTests', - file: dest, - format: 'iife', - sourcemap: true - }; - - const tsConfig = FileUtils.readFileAsJson(tsConfigFile); - const include = tsConfig.include ? tsConfig.include : []; - - mkdirp.sync(path.dirname(scratchFile)); - fs.writeFileSync(scratchFile, Imports.generateImports(false, scratchFile, srcFiles, polyfills)); - - const typescript = require('rollup-plugin-typescript2'); - const resolve = require('rollup-plugin-node-resolve'); - const sourcemaps = require('rollup-plugin-sourcemaps'); - - try { - const bundle = await rollup.rollup({ - input: scratchFile, - treeshake: false, - plugins: [ - resolve({ - jsnext: true, - customResolveOptions: { - moduleDirectory: path.join(path.dirname(tsConfigFile), 'node_modules') - } - }), - typescript({ - cacheRoot: path.join(scratchDir, 'rts2_cache'), - tsconfig: tsConfigFile, - verbosity: 2, - check: false, - // clean: true, - tsconfigOverride: { - compilerOptions: { - declaration: false - }, - include: include.concat([ - path.resolve(scratchFile) - ]) - } - }), - sourcemaps() - ] - }); - - await bundle.write(outputOptions); - return dest; - } catch(err) { - console.log(err); - - if (exitOnCompileError) { - process.exit(ExitCodes.failures.error); - } - - return dest; - } -}; diff --git a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts index 3ec5fda6..433e910b 100644 --- a/modules/server/src/main/ts/bedrock/compiler/Rspack.ts +++ b/modules/server/src/main/ts/bedrock/compiler/Rspack.ts @@ -13,7 +13,6 @@ const getWebPackConfigTs = (tsConfigFile: string, scratchFile: string, dest: str const { TsCheckerRspackPlugin } = require('ts-checker-rspack-plugin'); const getTsConfigFile = () => path.isAbsolute(tsConfigFile) ? tsConfigFile : path.resolve(process.cwd(), tsConfigFile); - console.log(`Using tsconfig file: ${getTsConfigFile()}`); return { entry: scratchFile, diff --git a/modules/server/src/main/ts/bedrock/core/Settings.ts b/modules/server/src/main/ts/bedrock/core/Settings.ts index 39513880..25882b43 100644 --- a/modules/server/src/main/ts/bedrock/core/Settings.ts +++ b/modules/server/src/main/ts/bedrock/core/Settings.ts @@ -2,7 +2,7 @@ export interface BedrockSettings { readonly basedir: string; - readonly bundler: 'webpack' | 'rollup' | 'rspack'; + readonly bundler: 'webpack' | 'rspack'; readonly chunk: number; readonly loglevel: 'simple' | 'advanced'; readonly overallTimeout: number; diff --git a/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts b/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts index dc403028..c86f6439 100644 --- a/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts +++ b/modules/server/src/main/ts/bedrock/server/RunnerRoutes.ts @@ -17,7 +17,7 @@ interface WorkspaceRoot { folder: string; } -export const generate = async (mode: string, projectdir: string, basedir: string, configFile: string, bundler: 'webpack' | 'rollup' | 'rspack', testfiles: string[], chunk: number, +export const generate = async (mode: string, projectdir: string, basedir: string, configFile: string, bundler: 'webpack' | 'rspack', testfiles: string[], chunk: number, retries: number, singleTimeout: number, stopOnFailure: boolean, basePage: string, coverage: string[], polyfills: string[]): Promise => { const files = testfiles.map((filePath) => { return path.relative(projectdir, filePath); diff --git a/yarn.lock b/yarn.lock index e549bd48..a3662c76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4474,11 +4474,6 @@ commander@^9.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-func@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" @@ -5927,15 +5922,6 @@ finalhandler@^1.1.2: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^3.0.0: - version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-replace@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" @@ -5973,7 +5959,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -6184,15 +6170,6 @@ fs-constants@^1.0.0: resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@8.1.0, fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" @@ -6211,6 +6188,15 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz" @@ -8333,13 +8319,6 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" @@ -9619,7 +9598,7 @@ path-key@^3.1.0: resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -9745,13 +9724,6 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" @@ -10320,13 +10292,6 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.12.0: - version "1.12.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.19.0, resolve@^1.9.0: version "1.22.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" @@ -10427,24 +10392,6 @@ rollup-plugin-sourcemaps@^0.6.3: "@rollup/pluginutils" "^3.0.9" source-map-resolve "^0.6.0" -rollup-plugin-typescript2@^0.24.0: - version "0.24.3" - resolved "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.24.3.tgz" - integrity sha512-D7yovQlhnRoz7pG/RF0ni+koxgzEShwfAGuOq6OVqKzcATHOvmUt2ePeYVdc9N0adcW1PcTzklUEM0oNWE/POw== - dependencies: - find-cache-dir "^3.0.0" - fs-extra "8.1.0" - resolve "1.12.0" - rollup-pluginutils "2.8.1" - tslib "1.10.0" - -rollup-pluginutils@2.8.1: - version "2.8.1" - resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz" - integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== - dependencies: - estree-walker "^0.6.1" - rollup-pluginutils@^2.8.1: version "2.8.2" resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz" @@ -10452,13 +10399,6 @@ rollup-pluginutils@^2.8.1: dependencies: estree-walker "^0.6.1" -rollup@^2.0.0: - version "2.79.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.2.tgz#f150e4a5db4b121a21a747d762f701e5e9f49090" - integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== - optionalDependencies: - fsevents "~2.3.2" - rollup@^4.30.1: version "4.30.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.30.1.tgz#d5c3d066055259366cdc3eb6f1d051c5d6afaf74" @@ -11711,11 +11651,6 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"