diff --git a/crates/node_binding/tsconfig.json b/crates/node_binding/tsconfig.json new file mode 100644 index 00000000000..d9d7cca1f2c --- /dev/null +++ b/crates/node_binding/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "noEmit": true + } +} diff --git a/examples/arco-pro/tsconfig.json b/examples/arco-pro/tsconfig.json index 360e442537b..6b12eb3aff4 100644 --- a/examples/arco-pro/tsconfig.json +++ b/examples/arco-pro/tsconfig.json @@ -8,6 +8,7 @@ "esnext" ], "allowJs": true, + // TODO: Remove skipLibCheck when fix upstream type bug "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, diff --git a/examples/react-storybook/tsconfig.json b/examples/react-storybook/tsconfig.json index ab0326911ba..d36c8334548 100644 --- a/examples/react-storybook/tsconfig.json +++ b/examples/react-storybook/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "strict": true, + // TODO: Remove skipLibCheck when fix upstream type bug "skipLibCheck": true, "jsx": "react-jsx", "moduleResolution": "node" diff --git a/packages/create-rspack/template-react-ts/tsconfig.json b/packages/create-rspack/template-react-ts/tsconfig.json index 86a924e27dc..b7d605041c2 100644 --- a/packages/create-rspack/template-react-ts/tsconfig.json +++ b/packages/create-rspack/template-react-ts/tsconfig.json @@ -3,6 +3,7 @@ "target": "ES6", "lib": ["DOM", "DOM.Iterable", "ESNext"], "module": "ESNext", + // TODO: Remove skipLibCheck when fix upstream type bug "skipLibCheck": true, "moduleResolution": "bundler", "allowImportingTsExtensions": true, diff --git a/packages/rspack-cli/jest.config.js b/packages/rspack-cli/jest.config.js index a3ade00495b..f2355097d2b 100644 --- a/packages/rspack-cli/jest.config.js +++ b/packages/rspack-cli/jest.config.js @@ -1,11 +1,16 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */ const config = { preset: "ts-jest", testEnvironment: "../../scripts/test/patch-node-env.cjs", testTimeout: process.env.CI ? 200000 : 30000, testMatch: ["/tests/**/*.test.ts", "/tests/**/*.test.js"], watchPathIgnorePatterns: ["/tests/.*/dist"], - extensionsToTreatAsEsm: [".mts"] + extensionsToTreatAsEsm: [".mts"], + globals: { + "ts-jest": { + tsconfig: "/tests/tsconfig.json" + } + } }; module.exports = config; diff --git a/packages/rspack-cli/src/commands/build.ts b/packages/rspack-cli/src/commands/build.ts index 6f6eee15c12..dd704af5144 100644 --- a/packages/rspack-cli/src/commands/build.ts +++ b/packages/rspack-cli/src/commands/build.ts @@ -22,12 +22,14 @@ export class BuildCommand implements RspackCommand { }), async options => { const logger = cli.getLogger(); + // @ts-expect-error let createJsonStringifyStream; if (options.json) { const jsonExt = await import("@discoveryjs/json-ext"); createJsonStringifyStream = jsonExt.default.stringifyStream; } + // @ts-expect-error const callback = (error, stats: Stats | MultiStats) => { if (error) { logger.error(error); @@ -45,10 +47,14 @@ export class BuildCommand implements RspackCommand { compiler.options ? compiler.options.stats : undefined ) } - : compiler.options - ? compiler.options.stats + : // @ts-expect-error + compiler.options + ? // @ts-expect-error + compiler.options.stats : undefined; + // @ts-expect-error if (options.json && createJsonStringifyStream) { + // @ts-expect-error const handleWriteError = error => { logger.error(error); process.exit(2); @@ -84,6 +90,7 @@ export class BuildCommand implements RspackCommand { const rspackOptions = { ...options, argv: { ...options } }; + // @ts-expect-error const errorHandler = (err, Stats) => { callback(err, Stats); }; diff --git a/packages/rspack-cli/src/rspack-cli.ts b/packages/rspack-cli/src/rspack-cli.ts index 131c791e0ac..8a574c45b08 100644 --- a/packages/rspack-cli/src/rspack-cli.ts +++ b/packages/rspack-cli/src/rspack-cli.ts @@ -58,6 +58,7 @@ export class RspackCLI { ? (config as MultiRspackOptions).some(i => i.watch) : (config as RspackOptions).watch; + // @ts-expect-error return rspack(config, isWatch ? callback : undefined); } createColors(useColor?: boolean): RspackCLIColors { diff --git a/packages/rspack-cli/src/utils/options.ts b/packages/rspack-cli/src/utils/options.ts index 99aed302cef..5946340b1e9 100644 --- a/packages/rspack-cli/src/utils/options.ts +++ b/packages/rspack-cli/src/utils/options.ts @@ -82,13 +82,16 @@ export const previewOptions = (yargs: yargs.Argv) => { }); }; +// @ts-expect-error export function normalizeEnv(argv) { + // @ts-expect-error function parseValue(previous, value) { const [allKeys, val] = value.split(/=(.+)/, 2); const splitKeys = allKeys.split(/\.(?!$)/); let prevRef = previous; + // @ts-expect-error splitKeys.forEach((someKey, index) => { // https://github.com/webpack/webpack-cli/issues/3284 if (someKey.endsWith("=")) { diff --git a/packages/rspack-cli/src/utils/profile.ts b/packages/rspack-cli/src/utils/profile.ts index f3e293e1fde..f8925ae28b0 100644 --- a/packages/rspack-cli/src/utils/profile.ts +++ b/packages/rspack-cli/src/utils/profile.ts @@ -167,6 +167,7 @@ function resolveLoggingOptions(value: string): LoggingOptions { class RspackProfileJSCPUProfilePlugin { constructor(private output: string) {} + // @ts-expect-error apply(compiler) { const session = new inspector.Session(); session.connect(); @@ -174,6 +175,7 @@ class RspackProfileJSCPUProfilePlugin { session.post("Profiler.start"); compiler.hooks.done.tapAsync( RspackProfileJSCPUProfilePlugin.name, + // @ts-expect-error (stats, callback) => { if (compiler.watchMode) return callback(); session.post("Profiler.stop", (error, param) => { @@ -192,9 +194,11 @@ class RspackProfileJSCPUProfilePlugin { class RspackProfileLoggingPlugin { constructor(private output: string) {} + // @ts-expect-error apply(compiler) { compiler.hooks.done.tapAsync( RspackProfileLoggingPlugin.name, + // @ts-expect-error (stats, callback) => { if (compiler.watchMode) return callback(); const logging = stats.toJson({ diff --git a/packages/rspack-cli/tests/tsconfig.json b/packages/rspack-cli/tests/tsconfig.json new file mode 100644 index 00000000000..e42b2b35af4 --- /dev/null +++ b/packages/rspack-cli/tests/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "strict": false, + "checkJs": false, + "rootDir": "." + }, + "include": ["."], + "references": [] +} diff --git a/packages/rspack-cli/tsconfig.json b/packages/rspack-cli/tsconfig.json index f1c7af83d28..4b4fa604ba3 100644 --- a/packages/rspack-cli/tsconfig.json +++ b/packages/rspack-cli/tsconfig.json @@ -2,10 +2,10 @@ "extends": "../../tsconfig.base.json", "include": ["src"], "compilerOptions": { - "strictNullChecks": true, + // TODO: Remove skipLibCheck when fix upstream type bug + "skipLibCheck": true, "outDir": "dist", - "rootDir": "src", - "moduleResolution": "nodenext" + "rootDir": "src" }, "references": [ { diff --git a/packages/rspack-dev-server/jest.config.js b/packages/rspack-dev-server/jest.config.js index 8577fe76cd0..9fc566766bc 100644 --- a/packages/rspack-dev-server/jest.config.js +++ b/packages/rspack-dev-server/jest.config.js @@ -1,4 +1,4 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */ const config = { preset: "ts-jest", testEnvironmentOptions: { @@ -6,7 +6,12 @@ const config = { }, testMatch: ["/tests/*.test.ts", "/tests/e2e/*.test.ts"], cache: false, - testTimeout: process.env.CI ? 120000 : 30000 + testTimeout: process.env.CI ? 120000 : 30000, + globals: { + "ts-jest": { + tsconfig: "/tests/tsconfig.json" + } + } }; module.exports = config; diff --git a/packages/rspack-dev-server/package.json b/packages/rspack-dev-server/package.json index 58115e64e46..0f52ec985c7 100644 --- a/packages/rspack-dev-server/package.json +++ b/packages/rspack-dev-server/package.json @@ -7,7 +7,6 @@ "types": "./dist/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", "default": "./dist/index.js" }, "./package.json": "./package.json" diff --git a/packages/rspack-dev-server/src/middleware.ts b/packages/rspack-dev-server/src/middleware.ts index 0052070cfc5..63d25607d47 100644 --- a/packages/rspack-dev-server/src/middleware.ts +++ b/packages/rspack-dev-server/src/middleware.ts @@ -27,11 +27,15 @@ export function getRspackMemoryAssets( } // css hmr will append query string, so here need to remove query string + // @ts-expect-error const path = parse(url).pathname; // asset name is not start with /, so path need to slice 1 + // @ts-expect-error const filename = path.startsWith(publicPath) - ? path.slice(publicPath.length) - : path.slice(1); + ? // @ts-expect-error + path.slice(publicPath.length) + : // @ts-expect-error + path.slice(1); const buffer = compiler.getAsset(filename) ?? (() => { @@ -50,6 +54,7 @@ export function getRspackMemoryAssets( contentType = "text/html; charset=utf-8"; } else { contentType = + // @ts-expect-error mime.contentType(extname(path)) || "text/plain; charset=utf-8"; } diff --git a/packages/rspack-dev-server/src/patch.ts b/packages/rspack-dev-server/src/patch.ts index b77fb0668aa..696f8cae28e 100644 --- a/packages/rspack-dev-server/src/patch.ts +++ b/packages/rspack-dev-server/src/patch.ts @@ -17,6 +17,7 @@ function applyDevServerPatch() { // @ts-expect-error private API WebpackDevServer.prototype.sendStats = function sendStats__rspack_patched( + // @ts-expect-error ...args ) { let stats = args[1]; diff --git a/packages/rspack-dev-server/src/server.ts b/packages/rspack-dev-server/src/server.ts index a45db55f4e1..e07b841d404 100644 --- a/packages/rspack-dev-server/src/server.ts +++ b/packages/rspack-dev-server/src/server.ts @@ -25,9 +25,13 @@ export class RspackDevServer extends WebpackDevServer { /** * resolved after `normalizedOptions` */ + // @ts-expect-error options: ResolvedDevServer; + // @ts-expect-error staticWatchers: FSWatcher[]; + // @ts-expect-error sockets: Socket[]; + // @ts-expect-error server: Server; // @ts-expect-error public compiler: Compiler | MultiCompiler; @@ -35,6 +39,7 @@ export class RspackDevServer extends WebpackDevServer { constructor(options: DevServer, compiler: Compiler | MultiCompiler) { super( + // @ts-expect-error { ...options, setupMiddlewares: (middlewares, devServer) => { @@ -54,6 +59,7 @@ export class RspackDevServer extends WebpackDevServer { path: publicPath, middleware: getRspackMemoryAssets( compiler, + // @ts-expect-error this.middleware ) }; @@ -69,6 +75,7 @@ export class RspackDevServer extends WebpackDevServer { } } + // @ts-expect-error options.setupMiddlewares?.call(this, middlewares, devServer); return middlewares; } @@ -136,6 +143,7 @@ export class RspackDevServer extends WebpackDevServer { ); } + // @ts-expect-error return clientImplementation; } @@ -158,6 +166,7 @@ export class RspackDevServer extends WebpackDevServer { compiler.options.devServer ??= {}; compiler.options.devServer.hot = true; if ( + // @ts-expect-error !compiler.options.experiments.rspackFuture.disableTransformByDefault ) { compiler.options.builtins.react ??= {}; @@ -298,6 +307,7 @@ export class RspackDevServer extends WebpackDevServer { compilers.forEach(compiler => { if (compiler.options.experiments.lazyCompilation) { middlewares.push({ + // @ts-expect-error middleware: (req, res) => { if (req.url.indexOf("/lazy-compilation-web/") > -1) { const path = req.url.replace("/lazy-compilation-web/", ""); @@ -319,10 +329,13 @@ export class RspackDevServer extends WebpackDevServer { middlewares.forEach(middleware => { if (typeof middleware === "function") { + // @ts-expect-error this.app.use(middleware); } else if (typeof middleware.path !== "undefined") { + // @ts-expect-error this.app.use(middleware.path, middleware.middleware); } else { + // @ts-expect-error this.app.use(middleware.middleware); } }); diff --git a/packages/rspack-dev-server/tests/normalizeOptions.test.ts b/packages/rspack-dev-server/tests/normalizeOptions.test.ts index d71e6832fc2..f059132d915 100644 --- a/packages/rspack-dev-server/tests/normalizeOptions.test.ts +++ b/packages/rspack-dev-server/tests/normalizeOptions.test.ts @@ -2,6 +2,7 @@ import { RspackOptions, rspack } from "@rspack/core"; import { RspackDevServer, Configuration } from "@rspack/dev-server"; import { createCompiler } from "@rspack/core"; import ReactRefreshPlugin from "@rspack/plugin-react-refresh"; +// @ts-expect-error import serializer from "jest-serializer-path"; expect.addSnapshotSerializer(serializer); @@ -174,9 +175,12 @@ async function getAdditionEntries( .reduce((acc, cur: any) => { const name = cur.options.name; const request = cur.entry; + // @ts-expect-error if (acc[name]) { + // @ts-expect-error acc[name].import.push(request); } else { + // @ts-expect-error acc[name] = { import: [request] }; } return acc; @@ -184,6 +188,7 @@ async function getAdditionEntries( // some hack for snapshot const value = Object.fromEntries( Object.entries(entries).map(([key, item]) => { + // @ts-expect-error const replaced = item.import?.map(entry => { const array = entry .replace(/\\/g, "/") diff --git a/packages/rspack-dev-server/tests/tsconfig.json b/packages/rspack-dev-server/tests/tsconfig.json new file mode 100644 index 00000000000..6a54d8b2221 --- /dev/null +++ b/packages/rspack-dev-server/tests/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "checkJs": false, + "rootDir": "." + }, + "include": ["."], + "references": [] +} diff --git a/packages/rspack-dev-server/tsconfig.json b/packages/rspack-dev-server/tsconfig.json index 8faa3c37a25..1a7636cc163 100644 --- a/packages/rspack-dev-server/tsconfig.json +++ b/packages/rspack-dev-server/tsconfig.json @@ -4,6 +4,8 @@ "src" ], "compilerOptions": { + // TODO: Remove skipLibCheck when fix upstream type bug + "skipLibCheck": true, "outDir": "dist", "rootDir": "src" } diff --git a/packages/rspack-plugin-html/package.json b/packages/rspack-plugin-html/package.json index 0ef3b600e85..1d389c4d139 100644 --- a/packages/rspack-plugin-html/package.json +++ b/packages/rspack-plugin-html/package.json @@ -7,7 +7,6 @@ "typings": "dist/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", "default": "./dist/index.js" }, "./package.json": "./package.json" @@ -34,7 +33,6 @@ "directory": "packages/rspack-plugin-html" }, "dependencies": { - "@types/html-minifier-terser": "7.0.0", "html-minifier-terser": "7.0.0", "lodash.template": "^4.5.0", "parse5": "7.1.1", @@ -50,6 +48,7 @@ }, "devDependencies": { "@rspack/core": "workspace:*", + "@types/html-minifier-terser": "7.0.0", "@types/lodash.template": "^4.5.1", "@types/pug": "^2.0.6", "html-loader": "^4.2.0", diff --git a/packages/rspack-plugin-html/src/index.ts b/packages/rspack-plugin-html/src/index.ts index 762c66d611e..0a2beca4089 100644 --- a/packages/rspack-plugin-html/src/index.ts +++ b/packages/rspack-plugin-html/src/index.ts @@ -8,6 +8,7 @@ * https://github.com/jantimon/html-webpack-plugin/blob/d5ce5a8f2d12a2450a65ec51c285dd54e36cd921/LICENSE */ import type { Compiler, Compilation, RspackPluginInstance } from "@rspack/core"; +// @ts-ignore import type { Options as MinifyOptions } from "html-minifier-terser"; import assert from "assert"; import path from "path"; @@ -253,6 +254,7 @@ export default class HtmlRspackPlugin implements RspackPluginInstance { name = "HtmlRspackPlugin"; userOptions: Options; + // @ts-expect-error options: ProcessedOptions; constructor(options?: Options) { @@ -395,6 +397,7 @@ function hookIntoCompiler( const filename = options.filename; if (path.resolve(filename) === path.normalize(filename)) { const outputPath = compiler.options.output.path; + // @ts-expect-error options.filename = path.relative(outputPath, filename); } @@ -631,6 +634,7 @@ function hookIntoCompiler( const compilationHash = compilation.hash; const rspackPublicPath = compilation.getAssetPath( + // @ts-expect-error compilation.outputOptions.publicPath, { hash: compilationHash } ); @@ -649,9 +653,11 @@ function hookIntoCompiler( path .relative( path.resolve( + // @ts-expect-error compilation.options.output.path, path.dirname(filename) ), + // @ts-expect-error compilation.options.output.path ) .split(path.sep) @@ -687,6 +693,7 @@ function hookIntoCompiler( // Append a hash for cache busting if (options.hash && assets.manifest) { + // @ts-expect-error assets.manifest = appendHash(assets.manifest, compilationHash); } @@ -696,6 +703,7 @@ function hookIntoCompiler( for (let i = 0; i < entryNames.length; i++) { const entryName = entryNames[i]; /** entryPointUnfilteredFiles - also includes hot module update files */ + // @ts-expect-error const entryPointUnfilteredFiles = compilation.entrypoints .get(entryName) .getFiles(); @@ -719,7 +727,8 @@ function hookIntoCompiler( const entryPointPublicPaths = entryPointFiles.map(chunkFile => { const entryPointPublicPath = publicPath + urlencodePath(chunkFile); return options.hash - ? appendHash(entryPointPublicPath, compilationHash) + ? // @ts-expect-error + appendHash(entryPointPublicPath, compilationHash) : entryPointPublicPath; }); @@ -731,12 +740,15 @@ function hookIntoCompiler( } // Skip if this file is already known // (e.g. because of common chunk optimizations) + // @ts-expect-error if (entryPointPublicPathMap[entryPointPublicPath]) { return; } + // @ts-expect-error entryPointPublicPathMap[entryPointPublicPath] = true; // ext will contain .js or .css, because .mjs recognizes as .js const ext = extMatch[1] === "mjs" ? "js" : extMatch[1]; + // @ts-expect-error assets[ext].push(entryPointPublicPath); }); } @@ -761,7 +773,9 @@ function hookIntoCompiler( return entryNames.sort(sortMode); } // Check if the given sort mode is a valid chunkSorter sort mode + // @ts-expect-error if (typeof chunkSorter[sortMode] !== "undefined") { + // @ts-expect-error return chunkSorter[sortMode](entryNames, compilation, options); } throw new Error('"' + sortMode + '" is not a valid chunk sort mode'); @@ -842,6 +856,7 @@ function hookIntoCompiler( return addFileToAssets(faviconFilePath, compilation).then(faviconName => { const faviconPath = publicPath + faviconName; if (options.hash) { + // @ts-expect-error return appendHash(faviconPath, compilation.hash); } return faviconPath; @@ -1014,6 +1029,7 @@ function hookIntoCompiler( // Add script tags to head or body depending on // the htmlPluginOptions if (scriptTarget === "body") { + // @ts-expect-error result.bodyTags.push(...assetTags.scripts); } else { // If script loading is blocking add the scripts to the end of the head @@ -1204,9 +1220,12 @@ function hookIntoCompiler( try { return require("html-minifier-terser").minify(html, options.minify); } catch (e) { + // @ts-expect-error const isParseError = String(e.message).indexOf("Parse Error") === 0; if (isParseError) { + // @ts-expect-error e.message = "html-minifier-terser error:"; + // @ts-expect-error "\n" + e.message; } throw e; diff --git a/packages/rspack-plugin-html/tsconfig.json b/packages/rspack-plugin-html/tsconfig.json index 0567b04b4a6..f33c67ba46d 100644 --- a/packages/rspack-plugin-html/tsconfig.json +++ b/packages/rspack-plugin-html/tsconfig.json @@ -1,6 +1,12 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + // FIXME: If we use Node16, it will be a segmentation fault in unit test, so we can only use CommonJS here + // related issue: https://github.com/nodejs/node/issues/35889 + "module": "CommonJS", + "moduleResolution": "Node10", + // TODO: Remove skipLibCheck when fix upstream type bug + "skipLibCheck": true, "outDir": "dist", "rootDir": "src" }, diff --git a/packages/rspack-plugin-react-refresh/package.json b/packages/rspack-plugin-react-refresh/package.json index fcec2ba5a83..2bcfccdcf61 100644 --- a/packages/rspack-plugin-react-refresh/package.json +++ b/packages/rspack-plugin-react-refresh/package.json @@ -7,7 +7,6 @@ "types": "dist/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", "default": "./dist/index.js" }, "./react-refresh": "./client/reactRefresh.js", diff --git a/packages/rspack-plugin-react-refresh/src/index.ts b/packages/rspack-plugin-react-refresh/src/index.ts index 0acf1d69d84..f8551598e31 100644 --- a/packages/rspack-plugin-react-refresh/src/index.ts +++ b/packages/rspack-plugin-react-refresh/src/index.ts @@ -49,7 +49,9 @@ class ReactRefreshRspackPlugin { }).apply(compiler); compiler.options.module.rules.unshift({ + // @ts-expect-error include: this.options.include, + // @ts-expect-error exclude: { or: [this.options.exclude, [...runtimePaths]].filter(Boolean) }, diff --git a/packages/rspack-plugin-react-refresh/tsconfig.json b/packages/rspack-plugin-react-refresh/tsconfig.json index fe06cc39adc..78d3308f115 100644 --- a/packages/rspack-plugin-react-refresh/tsconfig.json +++ b/packages/rspack-plugin-react-refresh/tsconfig.json @@ -1,6 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + // TODO: Remove skipLibCheck when fix upstream type bug + "skipLibCheck": true, "outDir": "dist", "rootDir": "src" }, diff --git a/packages/rspack/jest.config.js b/packages/rspack/jest.config.js index dec74d70ce6..4d656e121d8 100644 --- a/packages/rspack/jest.config.js +++ b/packages/rspack/jest.config.js @@ -1,4 +1,4 @@ -/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */ +/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */ const config = { testEnvironment: "../../scripts/test/patch-node-env.cjs", testMatch: [ @@ -19,6 +19,11 @@ const config = { } ], "^.+\\.jsx?$": "babel-jest" + }, + globals: { + "ts-jest": { + tsconfig: "/tests/tsconfig.json" + } } }; diff --git a/packages/rspack/package.json b/packages/rspack/package.json index 07adbb16e9a..af9f0d0ca2f 100644 --- a/packages/rspack/package.json +++ b/packages/rspack/package.json @@ -8,7 +8,6 @@ "types": "./dist/index.d.ts", "exports": { ".": { - "types": "./dist/index.d.ts", "default": "./dist/index.js" }, "./package.json": "./package.json" @@ -35,6 +34,7 @@ "@rspack/plugin-node-polyfill": "workspace:^", "@types/watchpack": "^2.4.0", "@types/webpack": "5.28.3", + "@types/webpack-dev-server": "^4.7.2", "@types/webpack-sources": "3.2.0", "@types/ws": "8.5.3", "babel-loader": "^9.1.0", diff --git a/packages/rspack/src/ErrorHelpers.js b/packages/rspack/src/ErrorHelpers.js index 1ae08b73191..d800289364b 100644 --- a/packages/rspack/src/ErrorHelpers.js +++ b/packages/rspack/src/ErrorHelpers.js @@ -14,6 +14,7 @@ const loaderFlag = "LOADER_EXECUTION"; const webpackOptionsFlag = "WEBPACK_OPTIONS"; +// @ts-expect-error exports.cutOffByFlag = (stack, flag) => { stack = stack.split("\n"); for (let i = 0; i < stack.length; i++) { @@ -23,26 +24,31 @@ exports.cutOffByFlag = (stack, flag) => { } return stack.join("\n"); }; +// @ts-expect-error exports.cutOffLoaderExecution = stack => exports.cutOffByFlag(stack, loaderFlag); - +// @ts-expect-error exports.cutOffWebpackOptions = stack => exports.cutOffByFlag(stack, webpackOptionsFlag); +// @ts-expect-error exports.cutOffMultilineMessage = (stack, message) => { stack = stack.split("\n"); message = message.split("\n"); - + // @ts-expect-error const result = []; + // @ts-expect-error stack.forEach((line, idx) => { if (!line.includes(message[idx])) result.push(line); }); + // @ts-expect-error return result.join("\n"); }; +// @ts-expect-error exports.cutOffMessage = (stack, message) => { const nextLine = stack.indexOf("\n"); if (nextLine === -1) { @@ -53,12 +59,14 @@ exports.cutOffMessage = (stack, message) => { } }; +// @ts-expect-error exports.cleanUp = (stack, message) => { stack = exports.cutOffLoaderExecution(stack); stack = exports.cutOffMessage(stack, message); return stack; }; +// @ts-expect-error exports.cleanUpWebpackOptions = (stack, message) => { stack = exports.cutOffWebpackOptions(stack); stack = exports.cutOffMultilineMessage(stack, message); diff --git a/packages/rspack/src/MultiStats.ts b/packages/rspack/src/MultiStats.ts index 061c9a3563d..b1a7e2c7a93 100644 --- a/packages/rspack/src/MultiStats.ts +++ b/packages/rspack/src/MultiStats.ts @@ -12,7 +12,7 @@ import { KnownCreateStatsOptionsContext } from "."; import { StatsCompilation } from "./stats/statsFactoryUtils"; import { Stats } from "./Stats"; import { indent } from "./util"; -import identifierUtils from "./util/identifier"; +import * as identifierUtils from "./util/identifier"; export default class MultiStats { stats: Stats[]; diff --git a/packages/rspack/src/ResolverFactory.js b/packages/rspack/src/ResolverFactory.js index ad7b634109f..300f6abcd20 100644 --- a/packages/rspack/src/ResolverFactory.js +++ b/packages/rspack/src/ResolverFactory.js @@ -20,8 +20,10 @@ const { /** @typedef {import("enhanced-resolve").ResolveOptions} ResolveOptions */ /** @typedef {import("enhanced-resolve").Resolver} Resolver */ -/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} WebpackResolveOptions */ -/** @typedef {import("../declarations/WebpackOptions").ResolvePluginInstance} ResolvePluginInstance */ +// /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} WebpackResolveOptions */ +// /** @typedef {import("../declarations/WebpackOptions").ResolvePluginInstance} ResolvePluginInstance */ +/** @typedef {any} WebpackResolveOptions */ +/** @typedef {any} ResolvePluginInstance */ /** @typedef {WebpackResolveOptions & {dependencyType?: string, resolveToContext?: boolean }} ResolveOptionsWithDependencyType */ /** @@ -48,6 +50,7 @@ const convertToResolveOptions = resolveOptionsWithDepType => { plugins: plugins && /** @type {ResolvePluginInstance[]} */ ( + // @ts-expect-error plugins.filter(item => item !== "...") ) }; @@ -63,6 +66,7 @@ const convertToResolveOptions = resolveOptionsWithDepType => { partialOptions ); + // @ts-expect-error return removeOperations( resolveByProperty(options, "byDependency", dependencyType) ); diff --git a/packages/rspack/src/Template.js b/packages/rspack/src/Template.js index 4c3728d0b4b..2f835166fdb 100644 --- a/packages/rspack/src/Template.js +++ b/packages/rspack/src/Template.js @@ -10,20 +10,34 @@ const { WEBPACK_MODULE_TYPE_RUNTIME } = require("./ModuleTypeConstants"); const RuntimeGlobals = require("./RuntimeGlobals"); /** @typedef {import("webpack-sources").Source} Source */ -/** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ -/** @typedef {import("./Chunk")} Chunk */ -/** @typedef {import("./ChunkGraph")} ChunkGraph */ -/** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ -/** @typedef {import("./Compilation").AssetInfo} AssetInfo */ -/** @typedef {import("./Compilation").PathData} PathData */ -/** @typedef {import("./DependencyTemplates")} DependencyTemplates */ -/** @typedef {import("./Module")} Module */ -/** @typedef {import("./ModuleGraph")} ModuleGraph */ -/** @typedef {import("./ModuleTemplate")} ModuleTemplate */ -/** @typedef {import("./RuntimeModule")} RuntimeModule */ -/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ -/** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */ -/** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */ +// /** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ +/** @typedef {any} OutputOptions */ +// /** @typedef {import("./Chunk")} Chunk */ +/** @typedef {any} Chunk */ +// /** @typedef {import("./ChunkGraph")} ChunkGraph */ +/** @typedef {any} ChunkGraph */ +// /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ +/** @typedef {any} CodeGenerationResults */ +// /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ +/** @typedef {any} AssetInfo */ +// /** @typedef {import("./Compilation").PathData} PathData */ +/** @typedef {any} PathData */ +// /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ +/** @typedef {any} DependencyTemplates */ +// /** @typedef {import("./Module")} Module */ +/** @typedef {any} Module */ +// /** @typedef {import("./ModuleGraph")} ModuleGraph */ +/** @typedef {any} ModuleGraph */ +// /** @typedef {import("./ModuleTemplate")} ModuleTemplate */ +/** @typedef {any} ModuleTemplate */ +// /** @typedef {import("./RuntimeModule")} RuntimeModule */ +/** @typedef {any} RuntimeModule */ +// /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {any} RuntimeTemplate */ +// /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */ +/** @typedef {any} ChunkRenderContext */ +// /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */ +/** @typedef {any} RenderContext */ const START_LOWERCASE_ALPHABET_CODE = "a".charCodeAt(0); const START_UPPERCASE_ALPHABET_CODE = "A".charCodeAt(0); @@ -406,6 +420,7 @@ class Template { return new PrefixSource( "/******/ ", new ConcatSource( + // @ts-expect-error `function(${RuntimeGlobals.require}) { // webpackRuntimeModules\n`, this.renderRuntimeModules(runtimeModules, renderContext), "}\n" diff --git a/packages/rspack/src/config/browserslistTargetHandler.js b/packages/rspack/src/config/browserslistTargetHandler.js index 1a2823d26e6..ecd54510625 100644 --- a/packages/rspack/src/config/browserslistTargetHandler.js +++ b/packages/rspack/src/config/browserslistTargetHandler.js @@ -54,7 +54,7 @@ const parse = (input, context) => { /** * @param {string} input input string * @param {string} context the context directory - * @returns {string[] | undefined} selected browsers + * @returns {string[] | undefined | null} selected browsers */ const load = (input, context) => { const { configPath, env, query } = parse(input, context); diff --git a/packages/rspack/src/config/normalization.ts b/packages/rspack/src/config/normalization.ts index d90da561c94..b7039971c89 100644 --- a/packages/rspack/src/config/normalization.ts +++ b/packages/rspack/src/config/normalization.ts @@ -124,7 +124,7 @@ export const getNormalizedRspackOptions = ( "cssFilename", "cssChunkFilename" ] as const; - const checkFilename = (prop: typeof filenames[number]) => { + const checkFilename = (prop: (typeof filenames)[number]) => { const oldFilename = output[prop]; if (typeof oldFilename === "string" && oldFilename.endsWith(ext)) { const newFilename = diff --git a/packages/rspack/src/config/target.js b/packages/rspack/src/config/target.js index d604e7fd3c0..90ec3cd4fb6 100644 --- a/packages/rspack/src/config/target.js +++ b/packages/rspack/src/config/target.js @@ -73,10 +73,12 @@ const getDefaultTarget = context => { /** @template A @template B @typedef {(A & Never) | (Never & B) | (A & B)} Mix */ /** @typedef {Mix, Mix>} TargetProperties */ +// @ts-expect-error const versionDependent = (major, minor) => { if (!major) return () => /** @type {undefined} */ (undefined); major = +major; minor = minor ? +minor : 0; + // @ts-expect-error return (vMajor, vMinor = 0) => { return major > vMajor || (major === vMajor && minor >= vMinor); }; @@ -91,6 +93,7 @@ const TARGETS = [ (rest, context) => { const browserslistTargetHandler = getBrowserslistTargetHandler(); const browsers = browserslistTargetHandler.load( + // @ts-expect-error rest ? rest.trim() : null, context ); @@ -153,6 +156,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis "[async-]node[X[.Y]]", "Node.js in version X.Y. The 'async-' prefix will load chunks asynchronously via 'fs' and 'vm' instead of 'require()'. Examples: node14.5, async-node10.", /^(async-)?node(\d+(?:\.(\d+))?)?$/, + // @ts-expect-error (asyncFlag, major, minor) => { const v = versionDependent(major, minor); // see https://node.green/ @@ -190,6 +194,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis "electron[X[.Y]]-main/preload/renderer", "Electron in version X.Y. Script is running in main, preload resp. renderer context.", /^electron(\d+(?:\.(\d+))?)?-(main|preload|renderer)$/, + // @ts-expect-error (major, minor, context) => { const v = versionDependent(major, minor); // see https://node.green/ + https://github.com/electron/releases @@ -231,6 +236,7 @@ You can also more options via the 'target' option: 'browserslist' / 'browserslis "nwjs[X[.Y]] / node-webkit[X[.Y]]", "NW.js in version X.Y.", /^(?:nwjs|node-webkit)(\d+(?:\.(\d+))?)?$/, + // @ts-expect-error (major, minor) => { const v = versionDependent(major, minor); // see https://node.green/ + https://github.com/nwjs/nw.js/blob/nw48/CHANGELOG.md @@ -308,7 +314,7 @@ const getTargetProperties = (target, context) => { ).join("\n")}` ); }; - +// @ts-expect-error const mergeTargetProperties = targetProperties => { const keys = new Set(); for (const tp of targetProperties) { @@ -332,6 +338,7 @@ const mergeTargetProperties = targetProperties => { } } if (hasTrue || hasFalse) + // @ts-expect-error result[key] = hasFalse && hasTrue ? null : hasTrue ? true : false; } return /** @type {TargetProperties} */ (result); diff --git a/packages/rspack/src/lib/AbstractMethodError.js b/packages/rspack/src/lib/AbstractMethodError.js index bbf2d08a6c7..1164927583c 100644 --- a/packages/rspack/src/lib/AbstractMethodError.js +++ b/packages/rspack/src/lib/AbstractMethodError.js @@ -21,9 +21,11 @@ function createMessage(method) { */ function Message() { /** @type {string} */ + // @ts-expect-error this.stack = undefined; Error.captureStackTrace(this); /** @type {RegExpMatchArray} */ + // @ts-expect-error const match = this.stack.split("\n")[3].match(CURRENT_METHOD_REGEXP); this.message = match && match[1] ? createMessage(match[1]) : createMessage(); diff --git a/packages/rspack/src/lib/Cache.js b/packages/rspack/src/lib/Cache.js index 484d5b3dad0..46a706962d7 100644 --- a/packages/rspack/src/lib/Cache.js +++ b/packages/rspack/src/lib/Cache.js @@ -33,7 +33,9 @@ const { * @returns {void} */ +// @ts-expect-error const needCalls = (times, callback) => { + // @ts-expect-error return err => { if (--times === 0) { return callback(err); @@ -71,7 +73,9 @@ class Cache { * @returns {void} */ get(identifier, etag, callback) { + // @ts-expect-error const gotHandlers = []; + // @ts-expect-error this.hooks.get.callAsync(identifier, etag, gotHandlers, (err, result) => { if (err) { callback(makeWebpackError(err, "Cache.hooks.get")); @@ -84,10 +88,12 @@ class Cache { const innerCallback = needCalls(gotHandlers.length, () => callback(null, result) ); + // @ts-expect-error for (const gotHandler of gotHandlers) { gotHandler(result, innerCallback); } } else if (gotHandlers.length === 1) { + // @ts-expect-error gotHandlers[0](result, () => callback(null, result)); } else { callback(null, result); @@ -108,6 +114,7 @@ class Cache { identifier, etag, data, + // @ts-expect-error makeWebpackErrorCallback(callback, "Cache.hooks.store") ); } @@ -121,6 +128,7 @@ class Cache { storeBuildDependencies(dependencies, callback) { this.hooks.storeBuildDependencies.callAsync( dependencies, + // @ts-expect-error makeWebpackErrorCallback(callback, "Cache.hooks.storeBuildDependencies") ); } @@ -138,6 +146,7 @@ class Cache { */ endIdle(callback) { this.hooks.endIdle.callAsync( + // @ts-expect-error makeWebpackErrorCallback(callback, "Cache.hooks.endIdle") ); } @@ -148,6 +157,7 @@ class Cache { */ shutdown(callback) { this.hooks.shutdown.callAsync( + // @ts-expect-error makeWebpackErrorCallback(callback, "Cache.hooks.shutdown") ); } diff --git a/packages/rspack/src/lib/CacheFacade.js b/packages/rspack/src/lib/CacheFacade.js index 53449584ea9..0de99d53bca 100644 --- a/packages/rspack/src/lib/CacheFacade.js +++ b/packages/rspack/src/lib/CacheFacade.js @@ -14,7 +14,8 @@ const mergeEtags = require("./cache/mergeEtags.js"); /** @typedef {import("./Cache").Etag} Etag */ /** @typedef {import("./WebpackError")} WebpackError */ /** @typedef {import("./cache/getLazyHashedEtag").HashableObject} HashableObject */ -/** @typedef {typeof import("./util/Hash")} HashConstructor */ +// /** @typedef {typeof import("./util/Hash")} HashConstructor */ +/** @typedef {any} HashConstructor */ /** * @template T @@ -47,6 +48,7 @@ class MultiItemCache { * @returns {void} */ get(callback) { + // @ts-expect-error forEachBail(this._items, (item, callback) => item.get(callback), callback); } @@ -55,6 +57,7 @@ class MultiItemCache { * @returns {Promise} promise with the data */ getPromise() { + // @ts-expect-error const next = i => { return this._items[i].getPromise().then(result => { if (result !== undefined) return result; diff --git a/packages/rspack/src/lib/EnvironmentPlugin.js b/packages/rspack/src/lib/EnvironmentPlugin.js index 31c9391a8f9..b08a23d3241 100644 --- a/packages/rspack/src/lib/EnvironmentPlugin.js +++ b/packages/rspack/src/lib/EnvironmentPlugin.js @@ -9,10 +9,13 @@ import { DefinePlugin } from "../builtin-plugin"; const WebpackError = require("./WebpackError"); -/** @typedef {import("./Compiler")} Compiler */ -/** @typedef {import("./DefinePlugin").CodeValue} CodeValue */ +// /** @typedef {import("./Compiler")} Compiler */ +// /** @typedef {import("./DefinePlugin").CodeValue} CodeValue */ +/** @typedef {any} Compiler */ +/** @typedef {any} CodeValue */ class EnvironmentPlugin { + // @ts-expect-error constructor(...keys) { if (keys.length === 1 && Array.isArray(keys[0])) { this.keys = keys[0]; @@ -41,6 +44,7 @@ class EnvironmentPlugin { : this.defaultValues[key]; if (value === undefined) { + // @ts-expect-error compiler.hooks.thisCompilation.tap("EnvironmentPlugin", compilation => { const error = new WebpackError( `EnvironmentPlugin - ${key} environment variable is undefined.\n\n` + diff --git a/packages/rspack/src/lib/HookWebpackError.js b/packages/rspack/src/lib/HookWebpackError.js index b5a796c3cd9..ba0a9034f44 100644 --- a/packages/rspack/src/lib/HookWebpackError.js +++ b/packages/rspack/src/lib/HookWebpackError.js @@ -7,7 +7,8 @@ const WebpackError = require("./WebpackError.js"); -/** @typedef {import("./Module")} Module */ +// /** @typedef {import("./Module")} Module */ +/** @typedef {any} Module */ /** * @template T @@ -85,6 +86,7 @@ const tryRunOrWebpackError = (fn, hook) => { if (err instanceof WebpackError) { throw err; } + // @ts-expect-error throw new HookWebpackError(err, hook); } return r; diff --git a/packages/rspack/src/lib/LoaderOptionsPlugin.js b/packages/rspack/src/lib/LoaderOptionsPlugin.js index e24e730dc03..458829082cb 100644 --- a/packages/rspack/src/lib/LoaderOptionsPlugin.js +++ b/packages/rspack/src/lib/LoaderOptionsPlugin.js @@ -8,8 +8,10 @@ const ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); const { NormalModule } = require("../NormalModule"); -/** @typedef {import("../declarations/plugins/LoaderOptionsPlugin").LoaderOptionsPluginOptions} LoaderOptionsPluginOptions */ -/** @typedef {import("./Compiler")} Compiler */ +// /** @typedef {import("../declarations/plugins/LoaderOptionsPlugin").LoaderOptionsPluginOptions} LoaderOptionsPluginOptions */ +// /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {any} LoaderOptionsPluginOptions */ +/** @typedef {any} Compiler */ class LoaderOptionsPlugin { /** @@ -32,9 +34,11 @@ class LoaderOptionsPlugin { */ apply(compiler) { const options = this.options; + // @ts-expect-error compiler.hooks.compilation.tap("LoaderOptionsPlugin", compilation => { NormalModule.getCompilationHooks(compilation).loader.tap( "LoaderOptionsPlugin", + // @ts-expect-error context => { const resource = context.resourcePath; if (!resource) return; diff --git a/packages/rspack/src/lib/LoaderTargetPlugin.js b/packages/rspack/src/lib/LoaderTargetPlugin.js index 7156e5fa4c9..f32f5cea15b 100644 --- a/packages/rspack/src/lib/LoaderTargetPlugin.js +++ b/packages/rspack/src/lib/LoaderTargetPlugin.js @@ -7,7 +7,8 @@ const NormalModule = require("../NormalModule"); -/** @typedef {import("./Compiler")} Compiler */ +// /** @typedef {import("./Compiler")} Compiler */ +/** @typedef {any} Compiler */ class LoaderTargetPlugin { /** @@ -23,9 +24,12 @@ class LoaderTargetPlugin { * @returns {void} */ apply(compiler) { + // @ts-expect-error compiler.hooks.compilation.tap("LoaderTargetPlugin", compilation => { + // @ts-expect-error NormalModule.getCompilationHooks(compilation).loader.tap( "LoaderTargetPlugin", + // @ts-expect-error loaderContext => { loaderContext.target = this.target; } diff --git a/packages/rspack/src/lib/ModuleFilenameHelpers.js b/packages/rspack/src/lib/ModuleFilenameHelpers.js index d204667ad05..ef37fc51210 100644 --- a/packages/rspack/src/lib/ModuleFilenameHelpers.js +++ b/packages/rspack/src/lib/ModuleFilenameHelpers.js @@ -5,13 +5,18 @@ "use strict"; -/** @typedef {import("./ChunkGraph")} ChunkGraph */ -/** @typedef {import("./Module")} Module */ -/** @typedef {import("./RequestShortener")} RequestShortener */ -/** @typedef {typeof import("./util/Hash")} Hash */ +// /** @typedef {import("./ChunkGraph")} ChunkGraph */ +// /** @typedef {import("./Module")} Module */ +// /** @typedef {import("./RequestShortener")} RequestShortener */ +// /** @typedef {typeof import("./util/Hash")} Hash */ +/** @typedef {any} ChunkGraph */ +/** @typedef {any} Module */ +/** @typedef {any} RequestShortener */ +/** @typedef {any} Hash */ const ModuleFilenameHelpers = exports; +// @ts-expect-error const asRegExp = test => { if (typeof test === "string") { test = new RegExp("^" + test.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")); @@ -19,6 +24,7 @@ const asRegExp = test => { return test; }; +// @ts-expect-error ModuleFilenameHelpers.matchPart = (str, test) => { if (!test) return true; test = asRegExp(test); @@ -29,6 +35,7 @@ ModuleFilenameHelpers.matchPart = (str, test) => { } }; +// @ts-expect-error ModuleFilenameHelpers.matchObject = (obj, str) => { if (obj.test) { if (!ModuleFilenameHelpers.matchPart(str, obj.test)) { diff --git a/packages/rspack/src/lib/WebpackError.js b/packages/rspack/src/lib/WebpackError.js index cb1f1ca113b..705824aed08 100644 --- a/packages/rspack/src/lib/WebpackError.js +++ b/packages/rspack/src/lib/WebpackError.js @@ -7,9 +7,12 @@ const inspect = require("util").inspect.custom; -/** @typedef {import("./Chunk")} Chunk */ -/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ -/** @typedef {import("./Module")} Module */ +// /** @typedef {import("./Chunk")} Chunk */ +// /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ +// /** @typedef {import("./Module")} Module */ +/** @typedef {any} Chunk */ +/** @typedef {any} DependencyLocation */ +/** @typedef {any} Module */ class WebpackError extends Error { /** @@ -18,17 +21,19 @@ class WebpackError extends Error { */ constructor(message) { super(message); - + // @ts-expect-error this.details = undefined; /** @type {Module} */ this.module = undefined; /** @type {DependencyLocation} */ this.loc = undefined; /** @type {boolean} */ + // @ts-expect-error this.hideStack = undefined; /** @type {Chunk} */ this.chunk = undefined; /** @type {string} */ + // @ts-expect-error this.file = undefined; } diff --git a/packages/rspack/src/lib/cache/getLazyHashedEtag.js b/packages/rspack/src/lib/cache/getLazyHashedEtag.js index dc9421dd370..b69a0a0877c 100644 --- a/packages/rspack/src/lib/cache/getLazyHashedEtag.js +++ b/packages/rspack/src/lib/cache/getLazyHashedEtag.js @@ -7,8 +7,10 @@ const createHash = require("../../util/createHash"); -/** @typedef {import("../util/Hash")} Hash */ -/** @typedef {typeof import("../util/Hash")} HashConstructor */ +// /** @typedef {import("../util/Hash")} Hash */ +// /** @typedef {typeof import("../util/Hash")} HashConstructor */ +/** @typedef {any} Hash */ +/** @typedef {any} HashConstructor */ /** * @typedef {Object} HashableObject @@ -31,6 +33,7 @@ class LazyHashedEtag { */ toString() { if (this._hash === undefined) { + // @ts-expect-error const hash = createHash(this._hashFunction); this._obj.updateHash(hash); this._hash = /** @type {string} */ (hash.digest("base64")); diff --git a/packages/rspack/src/lib/formatLocation.js b/packages/rspack/src/lib/formatLocation.js index f42eea2ded2..b864a05853e 100644 --- a/packages/rspack/src/lib/formatLocation.js +++ b/packages/rspack/src/lib/formatLocation.js @@ -5,8 +5,10 @@ "use strict"; -/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ -/** @typedef {import("./Dependency").SourcePosition} SourcePosition */ +// /** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ +// /** @typedef {import("./Dependency").SourcePosition} SourcePosition */ +/** @typedef {any} DependencyLocation */ +/** @typedef {any} SourcePosition */ /** * @param {SourcePosition} pos position diff --git a/packages/rspack/src/loader-runner/LoaderLoadingError.js b/packages/rspack/src/loader-runner/LoaderLoadingError.js index d9b1fae814c..9e61e36b961 100644 --- a/packages/rspack/src/loader-runner/LoaderLoadingError.js +++ b/packages/rspack/src/loader-runner/LoaderLoadingError.js @@ -11,6 +11,9 @@ "use strict"; class LoadingLoaderError extends Error { + /** + * @param {string=} message + */ constructor(message) { super(message); this.name = "LoaderRunnerError"; diff --git a/packages/rspack/src/loader-runner/loadLoader.js b/packages/rspack/src/loader-runner/loadLoader.js index 427719d51e7..3babed86786 100644 --- a/packages/rspack/src/loader-runner/loadLoader.js +++ b/packages/rspack/src/loader-runner/loadLoader.js @@ -10,7 +10,6 @@ var assert = require("assert"); var LoaderLoadingError = require("./LoaderLoadingError"); -var { stringifyLoaderObject } = require("."); var { toBuffer, serializeObject, @@ -18,13 +17,16 @@ var { toObject, stringifyLoaderObject } = require("../util"); +/** @type {undefined | import('node:url')} */ var url; +// @ts-expect-error module.exports = function loadLoader(loader, callback) { if (loader.type === "module") { try { if (url === undefined) url = require("url"); var loaderUrl = url.pathToFileURL(loader.path); + /** @type {Promise} */ var modulePromise = eval( "import(" + JSON.stringify(loaderUrl.toString()) + ")" ); @@ -40,17 +42,23 @@ module.exports = function loadLoader(loader, callback) { var module; if (loader.path.startsWith("builtin:")) { + // @ts-expect-error module = async function (content, sourceMap, additionalData) { + // @ts-expect-error assert(!this.__internal__context.isPitching); + // @ts-expect-error const callback = this.async(); const { runBuiltinLoader } = require("@rspack/binding"); + // @ts-expect-error let options = this.getOptions() ?? {}; // This is used an hack to tell `builtin:swc-loader` whether to return AST or source. + // @ts-expect-error this.__internal__context.loaderIndexFromJs = this.loaderIndex; try { const context = await runBuiltinLoader( stringifyLoaderObject(loader), JSON.stringify(options), + // @ts-expect-error Object.assign({}, this.__internal__context, { content: isNil(content) ? undefined : toBuffer(content), sourceMap: serializeObject(sourceMap), @@ -58,11 +66,16 @@ module.exports = function loadLoader(loader, callback) { }) ); + // @ts-expect-error this.__internal__context.additionalDataExternal = context.additionalDataExternal; + // @ts-expect-error context.fileDependencies.forEach(this.addDependency); + // @ts-expect-error context.contextDependencies.forEach(this.addContextDependency); + // @ts-expect-error context.missingDependencies.forEach(this.addMissingDependency); + // @ts-expect-error context.buildDependencies.forEach(this.addBuildDependency); callback( null, @@ -74,6 +87,7 @@ module.exports = function loadLoader(loader, callback) { ? undefined : toObject(context.additionalData) ); + // @ts-expect-error this._compilation.__internal__pushNativeDiagnostics( context.diagnosticsExternal ); @@ -81,6 +95,7 @@ module.exports = function loadLoader(loader, callback) { return callback(e); } }; + // @ts-expect-error module.pitch = function () { // Pitching for builtin loader is not supported }; @@ -90,7 +105,9 @@ module.exports = function loadLoader(loader, callback) { } catch (e) { // it is possible for node to choke on a require if the FD descriptor // limit has been reached. give it a chance to recover. + // @ts-expect-error if (e instanceof Error && e.code === "EMFILE") { + // @ts-expect-error var retry = loadLoader.bind(null, loader, callback); if (typeof setImmediate === "function") { // node >= 0.9.0 @@ -106,6 +123,7 @@ module.exports = function loadLoader(loader, callback) { } }; +// @ts-expect-error function handleResult(loader, module, callback) { if (typeof module !== "function" && typeof module !== "object") { return callback( diff --git a/packages/rspack/src/logging/Logger.ts b/packages/rspack/src/logging/Logger.ts index 5f46bfad3b5..f291c0f03f8 100644 --- a/packages/rspack/src/logging/Logger.ts +++ b/packages/rspack/src/logging/Logger.ts @@ -39,7 +39,7 @@ export function getLogTypesBitFlag(types: LogTypeEnum[]) { return types.reduce((acc, cur) => acc | getLogTypeBitFlag(cur), 0); } -export type LogTypeEnum = typeof LogType[keyof typeof LogType]; +export type LogTypeEnum = (typeof LogType)[keyof typeof LogType]; const LOG_SYMBOL = Symbol("webpack logger raw log method"); const TIMERS_SYMBOL = Symbol("webpack logger times"); diff --git a/packages/rspack/src/util/cleverMerge.js b/packages/rspack/src/util/cleverMerge.js index a53b07bfd0d..081cb40f6e3 100644 --- a/packages/rspack/src/util/cleverMerge.js +++ b/packages/rspack/src/util/cleverMerge.js @@ -44,9 +44,11 @@ const cachedCleverMerge = (first, second) => { mergeCache.set(first, innerCache); } const prevMerge = innerCache.get(second); + // @ts-expect-error if (prevMerge !== undefined) return prevMerge; const newMerge = _cleverMerge(first, second, true); innerCache.set(second, newMerge); + // @ts-expect-error return newMerge; }; @@ -74,6 +76,7 @@ const cachedSetProperty = (obj, property, value) => { let result = mapByValue.get(value); + // @ts-expect-error if (result) return result; result = { @@ -82,6 +85,7 @@ const cachedSetProperty = (obj, property, value) => { }; mapByValue.set(value, result); + // @ts-expect-error return result; }; @@ -120,6 +124,7 @@ const cachedParseObject = obj => { const parseObject = obj => { const info = new Map(); let dynamicInfo; + // @ts-expect-error const getInfo = p => { const entry = info.get(p); if (entry !== undefined) return entry; @@ -134,6 +139,7 @@ const parseObject = obj => { for (const key of Object.keys(obj)) { if (key.startsWith("by")) { const byProperty = key; + // @ts-expect-error const byObj = obj[byProperty]; if (typeof byObj === "object") { for (const byValue of Object.keys(byObj)) { @@ -170,10 +176,12 @@ const parseObject = obj => { } } else { const entry = getInfo(key); + // @ts-expect-error entry.base = obj[key]; } } else { const entry = getInfo(key); + // @ts-expect-error entry.base = obj[key]; } } @@ -193,6 +201,7 @@ const serializeObject = (info, dynamicInfo) => { // Setup byProperty structure for (const entry of info.values()) { if (entry.byProperty !== undefined) { + // @ts-expect-error const byObj = (obj[entry.byProperty] = obj[entry.byProperty] || {}); for (const byValue of entry.byValues.keys()) { byObj[byValue] = byObj[byValue] || {}; @@ -201,10 +210,12 @@ const serializeObject = (info, dynamicInfo) => { } for (const [key, entry] of info) { if (entry.base !== undefined) { + // @ts-expect-error obj[key] = entry.base; } // Fill byProperty structure if (entry.byProperty !== undefined) { + // @ts-expect-error const byObj = (obj[entry.byProperty] = obj[entry.byProperty] || {}); for (const byValue of Object.keys(byObj)) { const value = getFromByValues(entry.byValues, byValue); @@ -213,6 +224,7 @@ const serializeObject = (info, dynamicInfo) => { } } if (dynamicInfo !== undefined) { + // @ts-expect-error obj[dynamicInfo.byProperty] = dynamicInfo.fn; } return obj; @@ -262,6 +274,7 @@ const cleverMerge = (first, second) => { if (typeof second !== "object" || second === null) return second; if (typeof first !== "object" || first === null) return first; + // @ts-expect-error return _cleverMerge(first, second, false); }; @@ -281,6 +294,7 @@ const _cleverMerge = (first, second, internalCaching = false) => { // If the first argument has a dynamic part we modify the dynamic part to merge the second argument if (firstDynamicInfo !== undefined) { let { byProperty, fn } = firstDynamicInfo; + // @ts-expect-error const fnInfo = fn[DYNAMIC_INFO]; if (fnInfo) { second = internalCaching @@ -288,12 +302,14 @@ const _cleverMerge = (first, second, internalCaching = false) => { : cleverMerge(fnInfo[1], second); fn = fnInfo[0]; } + // @ts-expect-error const newFn = (...args) => { const fnResult = fn(...args); return internalCaching ? cachedCleverMerge(fnResult, second) : cleverMerge(fnResult, second); }; + // @ts-expect-error newFn[DYNAMIC_INFO] = [fn, second]; return serializeObject(firstObject.static, { byProperty, fn: newFn }); } @@ -478,6 +494,7 @@ const mergeSingleValue = (a, b, internalCaching) => { case VALUE_TYPE_UNDEFINED: return b; case VALUE_TYPE_DELETE: + // @ts-expect-error return b.filter(item => item !== "..."); case VALUE_TYPE_ARRAY_EXTEND: { const newArray = []; @@ -493,6 +510,7 @@ const mergeSingleValue = (a, b, internalCaching) => { return newArray; } case VALUE_TYPE_OBJECT: + // @ts-expect-error return b.map(item => (item === "..." ? a : item)); default: throw new Error("Not implemented"); @@ -509,7 +527,9 @@ const mergeSingleValue = (a, b, internalCaching) => { */ const removeOperations = obj => { const newObj = /** @type {T} */ ({}); + // @ts-expect-error for (const key of Object.keys(obj)) { + // @ts-expect-error const value = obj[key]; const type = getValueType(value); switch (type) { @@ -517,12 +537,15 @@ const removeOperations = obj => { case VALUE_TYPE_DELETE: break; case VALUE_TYPE_OBJECT: + // @ts-expect-error newObj[key] = removeOperations(value); break; case VALUE_TYPE_ARRAY_EXTEND: + // @ts-expect-error newObj[key] = value.filter(i => i !== "..."); break; default: + // @ts-expect-error newObj[key] = value; break; } @@ -536,7 +559,7 @@ const removeOperations = obj => { * @param {T} obj the object * @param {P} byProperty the by description * @param {...any} values values - * @returns {Omit} object with merged byProperty + * @returns {Omit|undefined} object with merged byProperty */ const resolveByProperty = (obj, byProperty, ...values) => { if (typeof obj !== "object" || obj === null || !(byProperty in obj)) { diff --git a/packages/rspack/src/util/hash/BatchedHash.js b/packages/rspack/src/util/hash/BatchedHash.js index 56da6e88648..7ac14b726ad 100644 --- a/packages/rspack/src/util/hash/BatchedHash.js +++ b/packages/rspack/src/util/hash/BatchedHash.js @@ -14,6 +14,7 @@ const Hash = require("."); const MAX_SHORT_STRING = require("./wasm-hash").MAX_SHORT_STRING; class BatchedHash extends Hash { + // @ts-expect-error constructor(hash) { super(); this.string = undefined; diff --git a/packages/rspack/src/util/hash/wasm-hash.js b/packages/rspack/src/util/hash/wasm-hash.js index 7fe0b187c7d..7afc966db3c 100644 --- a/packages/rspack/src/util/hash/wasm-hash.js +++ b/packages/rspack/src/util/hash/wasm-hash.js @@ -138,6 +138,7 @@ class WasmHash { } } + // @ts-expect-error digest(type) { const { exports, buffered, mem, digestSize } = this; exports.final(buffered); @@ -149,6 +150,7 @@ class WasmHash { } } +// @ts-expect-error const create = (wasmModule, instancesPool, chunkSize, digestSize) => { if (instancesPool.length > 0) { const old = instancesPool.pop(); diff --git a/packages/rspack/src/util/identifier.js b/packages/rspack/src/util/identifier.js index dd56ddf4471..7ffe4759d2d 100644 --- a/packages/rspack/src/util/identifier.js +++ b/packages/rspack/src/util/identifier.js @@ -15,6 +15,7 @@ const WINDOWS_PATH_SEPARATOR_REGEXP = /\\/g; * @property {Map>=} relativePaths */ +// @ts-expect-error const relativePathToRequest = relativePath => { if (relativePath === "") return "./."; if (relativePath === "..") return "../."; @@ -81,10 +82,12 @@ const requestToAbsolute = (context, relativePath) => { return relativePath; }; +// @ts-expect-error const makeCacheable = realFn => { /** @type {WeakMap>} */ const cache = new WeakMap(); + // @ts-expect-error const getCache = associatedObjectForCache => { const entry = cache.get(associatedObjectForCache); if (entry !== undefined) return entry; @@ -109,8 +112,10 @@ const makeCacheable = realFn => { return result; }; + // @ts-expect-error fn.bindCache = associatedObjectForCache => { const cache = getCache(associatedObjectForCache); + // @ts-expect-error return str => { const entry = cache.get(str); if (entry !== undefined) return entry; @@ -123,6 +128,7 @@ const makeCacheable = realFn => { return fn; }; +// @ts-expect-error const makeCacheableWithContext = fn => { /** @type {WeakMap>>} */ const cache = new WeakMap(); @@ -164,6 +170,7 @@ const makeCacheableWithContext = fn => { * @returns {function(string, string): string} cached function */ cachedFn.bindCache = associatedObjectForCache => { + // @ts-expect-error let innerCache; if (associatedObjectForCache) { innerCache = cache.get(associatedObjectForCache); @@ -182,8 +189,10 @@ const makeCacheableWithContext = fn => { */ const boundFn = (context, identifier) => { let cachedResult; + // @ts-expect-error let innerSubCache = innerCache.get(context); if (innerSubCache === undefined) { + // @ts-expect-error innerCache.set(context, (innerSubCache = new Map())); } else { cachedResult = innerSubCache.get(identifier); @@ -207,6 +216,7 @@ const makeCacheableWithContext = fn => { * @returns {function(string): string} cached function */ cachedFn.bindContextCache = (context, associatedObjectForCache) => { + // @ts-expect-error let innerSubCache; if (associatedObjectForCache) { let innerCache = cache.get(associatedObjectForCache); @@ -228,11 +238,13 @@ const makeCacheableWithContext = fn => { * @returns {string} the returned relative path */ const boundFn = identifier => { + // @ts-expect-error const cachedResult = innerSubCache.get(identifier); if (cachedResult !== undefined) { return cachedResult; } else { const result = fn(context, identifier); + // @ts-expect-error innerSubCache.set(identifier, result); return result; } @@ -319,8 +331,11 @@ const _parseResource = str => { const match = PATH_QUERY_FRAGMENT_REGEXP.exec(str); return { resource: str, + // @ts-expect-error path: match[1].replace(/\0(.)/g, "$1"), + // @ts-expect-error query: match[2] ? match[2].replace(/\0(.)/g, "$1") : "", + // @ts-expect-error fragment: match[3] || "" }; }; @@ -335,7 +350,9 @@ const _parseResourceWithoutFragment = str => { const match = PATH_QUERY_REGEXP.exec(str); return { resource: str, + // @ts-expect-error path: match[1].replace(/\0(.)/g, "$1"), + // @ts-expect-error query: match[2] ? match[2].replace(/\0(.)/g, "$1") : "" }; }; diff --git a/packages/rspack/tests/tsconfig.json b/packages/rspack/tests/tsconfig.json new file mode 100644 index 00000000000..6a54d8b2221 --- /dev/null +++ b/packages/rspack/tests/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "checkJs": false, + "rootDir": "." + }, + "include": ["."], + "references": [] +} diff --git a/packages/rspack/tsconfig.json b/packages/rspack/tsconfig.json index eab53b28b8f..629a37f6180 100644 --- a/packages/rspack/tsconfig.json +++ b/packages/rspack/tsconfig.json @@ -1,12 +1,13 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { + // TODO: Remove skipLibCheck when fix upstream type bug + "skipLibCheck": true, "outDir": "dist", - "rootDir": "src", - "allowJs": true, - "strict": true + "rootDir": "src" }, "include": ["src"], + "exclude": ["src/config/schema.check.js"], "ts-node": { "transpileOnly": true }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19dfdb496da..53c970d6148 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1526,6 +1526,9 @@ importers: '@types/webpack': specifier: 5.28.3 version: 5.28.3 + '@types/webpack-dev-server': + specifier: ^4.7.2 + version: 4.7.2(webpack@5.89.0) '@types/webpack-sources': specifier: 3.2.0 version: 3.2.0 @@ -1730,9 +1733,6 @@ importers: packages/rspack-plugin-html: dependencies: - '@types/html-minifier-terser': - specifier: 7.0.0 - version: 7.0.0 html-minifier-terser: specifier: 7.0.0 version: 7.0.0 @@ -1749,6 +1749,9 @@ importers: '@rspack/core': specifier: workspace:* version: link:../rspack + '@types/html-minifier-terser': + specifier: 7.0.0 + version: 7.0.0 '@types/lodash.template': specifier: ^4.5.1 version: 4.5.1 @@ -13494,23 +13497,23 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/connect-history-api-fallback@1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: '@types/express-serve-static-core': 4.17.31 - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} @@ -13579,7 +13582,7 @@ packages: /@types/express-serve-static-core@4.17.31: resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} dependencies: - '@types/node': 18.15.11 + '@types/node': 16.11.7 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -13644,11 +13647,12 @@ packages: /@types/html-minifier-terser@7.0.0: resolution: {integrity: sha512-hw3bhStrg5e3FQT8qZKCJTrzt/UbEaunU1xRWJ+aNOTmeBMvE3S4Ml2HiiNnZgL8izu0LFVkHUoPFXL1s5QNpQ==} + dev: true /@types/http-proxy@1.17.9: resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/interpret@1.1.1: resolution: {integrity: sha512-HZ4d0m2Ebl8DmrOdYZHgYyipj/8Ftq1/ssB/oQR7fqfUrwtTP7IW3BDi2V445nhPBLzZjEkApaPVp83moSCXlA==} @@ -13738,7 +13742,6 @@ packages: /@types/node@16.11.7: resolution: {integrity: sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==} - dev: true /@types/node@18.15.11: resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} @@ -13856,7 +13859,7 @@ packages: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/sinon@10.0.13: resolution: {integrity: sha512-UVjDqJblVNQYvVNUsj0PuYYw0ELRmgt1Nt5Vk0pT5f16ROGfcKJY8o1HVuMOJOpD727RrGB9EGvoaTQE5tgxZQ==} @@ -13871,7 +13874,7 @@ packages: /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 16.11.7 /@types/source-list-map@0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} @@ -13923,6 +13926,20 @@ packages: - webpack-cli dev: true + /@types/webpack-dev-server@4.7.2(webpack@5.89.0): + resolution: {integrity: sha512-Y3p0Fmfvp0MHBDoCzo+xFJaWTw0/z37mWIo6P15j+OtmUDLvznJWdZNeD7Q004R+MpQlys12oXbXsrXRmxwg4Q==} + deprecated: This is a stub types definition. webpack-dev-server provides its own type definitions, so you do not need this installed. + dependencies: + webpack-dev-server: 4.13.2(webpack@5.89.0) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + - webpack + - webpack-cli + dev: true + /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: @@ -14615,7 +14632,6 @@ packages: dependencies: webpack: 5.76.0(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack@5.76.0) - dev: true /@webpack-cli/info@1.5.0(webpack-cli@4.10.0): resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} @@ -14624,7 +14640,6 @@ packages: dependencies: envinfo: 7.8.1 webpack-cli: 4.10.0(webpack@5.76.0) - dev: true /@webpack-cli/serve@1.7.0(webpack-cli@4.10.0): resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} @@ -14636,7 +14651,6 @@ packages: optional: true dependencies: webpack-cli: 4.10.0(webpack@5.76.0) - dev: true /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -14812,6 +14826,14 @@ packages: ajv: 6.12.6 dev: true + /ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -14821,6 +14843,7 @@ packages: optional: true dependencies: ajv: 8.12.0 + dev: true /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} @@ -16623,7 +16646,6 @@ packages: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - dev: true /clone-response@1.0.2: resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} @@ -18490,7 +18512,6 @@ packages: resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} engines: {node: '>=4'} hasBin: true - dev: true /err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -19273,7 +19294,6 @@ packages: /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - dev: true /fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} @@ -20979,7 +20999,6 @@ packages: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 - dev: true /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -21117,7 +21136,6 @@ packages: /interpret@2.2.0: resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} engines: {node: '>= 0.10'} - dev: true /interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} @@ -21481,7 +21499,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - dev: true /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} @@ -21675,7 +21692,6 @@ packages: /isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - dev: true /isomorphic-fetch@2.2.1: resolution: {integrity: sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==} @@ -22592,7 +22608,6 @@ packages: /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: true /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -26706,7 +26721,6 @@ packages: engines: {node: '>= 0.10'} dependencies: resolve: 1.22.2 - dev: true /rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} @@ -26993,7 +27007,6 @@ packages: engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 - dev: true /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -27002,7 +27015,6 @@ packages: /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - dev: true /resolve-pathname@3.0.0: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} @@ -27498,7 +27510,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) + ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.12.0) /schema-utils@4.0.1: @@ -27507,7 +27519,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) + ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.12.0) /scroll-into-view-if-needed@2.2.20: @@ -27739,7 +27751,6 @@ packages: engines: {node: '>=8'} dependencies: kind-of: 6.0.3 - dev: true /shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} @@ -29284,7 +29295,7 @@ packages: schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.17.1 - webpack: 5.76.0 + webpack: 5.76.0(webpack-cli@4.10.0) /terser-webpack-plugin@5.3.9(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} @@ -30886,7 +30897,6 @@ packages: rechoir: 0.7.1 webpack: 5.76.0(webpack-cli@4.10.0) webpack-merge: 5.9.0 - dev: true /webpack-dev-middleware@5.3.3: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} @@ -30929,6 +30939,20 @@ packages: webpack: 5.80.0(esbuild@0.17.18) dev: true + /webpack-dev-middleware@5.3.3(webpack@5.89.0): + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.20 + memfs: 3.4.12 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.1 + webpack: 5.89.0 + dev: true + /webpack-dev-middleware@6.0.2: resolution: {integrity: sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==} engines: {node: '>= 14.15.0'} @@ -31131,6 +31155,57 @@ packages: - utf-8-validate dev: true + /webpack-dev-server@4.13.2(webpack@5.89.0): + resolution: {integrity: sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.14 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.0 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.3 + ansi-html-community: 0.0.8 + bonjour-service: 1.0.14 + chokidar: 3.5.3 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6(@types/express@4.17.14) + ipaddr.js: 2.0.1 + launch-editor: 2.6.0 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.1 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.89.0 + webpack-dev-middleware: 5.3.3(webpack@5.89.0) + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + /webpack-hot-middleware@2.25.3: resolution: {integrity: sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA==} dependencies: @@ -31161,7 +31236,6 @@ packages: dependencies: clone-deep: 4.0.1 wildcard: 2.0.0 - dev: true /webpack-sources@2.3.1: resolution: {integrity: sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==} @@ -31276,7 +31350,6 @@ packages: - '@swc/core' - esbuild - uglify-js - dev: true /webpack@5.80.0(esbuild@0.17.18): resolution: {integrity: sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==} @@ -31484,7 +31557,6 @@ packages: /wildcard@2.0.0: resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} - dev: true /window-size@0.1.0: resolution: {integrity: sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==} diff --git a/tsconfig.base.json b/tsconfig.base.json index dfb9e5550eb..09cf2f8798f 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,8 +1,8 @@ { "compilerOptions": { - "module": "CommonJS", + "module": "NodeNext", + "moduleResolution": "NodeNext", "target": "ES2018", - "moduleResolution": "node", "esModuleInterop": true, "outDir": "dist", "declaration": true, @@ -11,6 +11,9 @@ "declarationMap": true, "composite": true, "forceConsistentCasingInFileNames": true, - "skipLibCheck": true + "allowJs": true, + "checkJs": true, + "strict": true, + "skipLibCheck": false } }