diff --git a/developer-extension/tsconfig.webpack.json b/developer-extension/tsconfig.webpack.json index 41883bbadd..6a375dfe5e 100644 --- a/developer-extension/tsconfig.webpack.json +++ b/developer-extension/tsconfig.webpack.json @@ -3,12 +3,14 @@ "compilerOptions": { "baseUrl": ".", - "module": "ES6", + "module": "preserve", "target": "esnext", "jsx": "react", "lib": ["ES2022", "DOM"], "types": ["chrome", "react", "react-dom", "jasmine"], - "skipLibCheck": true + "skipLibCheck": true, + "allowImportingTsExtensions": true, + "noEmit": true }, "include": ["src"] diff --git a/developer-extension/webpack.config.ts b/developer-extension/webpack.config.mts similarity index 100% rename from developer-extension/webpack.config.ts rename to developer-extension/webpack.config.mts diff --git a/eslint-local-rules/disallowEnumExports.js b/eslint-local-rules/disallowEnumExports.js index 0d6ab50689..5fc2ae3a4e 100644 --- a/eslint-local-rules/disallowEnumExports.js +++ b/eslint-local-rules/disallowEnumExports.js @@ -1,4 +1,4 @@ -const { SymbolFlags } = require('typescript') +import { SymbolFlags } from 'typescript' /** * This rule forbids exporting 'enums'. It serves two purposes: @@ -34,7 +34,7 @@ const { SymbolFlags } = require('typescript') * [1]: https://www.typescriptlang.org/tsconfig#isolatedModules * [2]: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export */ -module.exports = { +export default { meta: { docs: { description: 'Disallow export of enums.', diff --git a/eslint-local-rules/disallowGenericUtils.js b/eslint-local-rules/disallowGenericUtils.js index 3483981ded..13cc076fda 100644 --- a/eslint-local-rules/disallowGenericUtils.js +++ b/eslint-local-rules/disallowGenericUtils.js @@ -1,6 +1,6 @@ -const path = require('path') +import path from 'path' -module.exports = { +export default { meta: { docs: { description: 'Disallow the use of too generic utility file names', diff --git a/eslint-local-rules/disallowNonScripts.js b/eslint-local-rules/disallowNonScripts.js index 0d530e83b0..817495c14b 100644 --- a/eslint-local-rules/disallowNonScripts.js +++ b/eslint-local-rules/disallowNonScripts.js @@ -1,4 +1,4 @@ -module.exports = { +export default { meta: { docs: { description: 'Disallow JS files that are not used as a "script"', diff --git a/eslint-local-rules/disallowProtectedDirectoryImport.js b/eslint-local-rules/disallowProtectedDirectoryImport.js index f4ef8bbb4b..d35adc909b 100644 --- a/eslint-local-rules/disallowProtectedDirectoryImport.js +++ b/eslint-local-rules/disallowProtectedDirectoryImport.js @@ -1,10 +1,15 @@ -const path = require('path') -const { minimatch } = require('minimatch') -const resolve = require('eslint-module-utils/resolve').default -const moduleVisitor = require('eslint-module-utils/moduleVisitor').default -const importType = require('eslint-plugin-import/lib/core/importType').default +import path from 'node:path' +import { minimatch } from 'minimatch' -module.exports = { +import resolvePackage from 'eslint-module-utils/resolve.js' +import moduleVisitorPackage from 'eslint-module-utils/moduleVisitor.js' +import importTypePackage from 'eslint-plugin-import/lib/core/importType.js' + +const moduleVisitor = moduleVisitorPackage.default +const importType = importTypePackage.default +const resolve = resolvePackage.default + +export default { meta: { docs: { description: diff --git a/eslint-local-rules/disallowSideEffects.js b/eslint-local-rules/disallowSideEffects.js index f02fc9e968..5f24299ede 100644 --- a/eslint-local-rules/disallowSideEffects.js +++ b/eslint-local-rules/disallowSideEffects.js @@ -1,6 +1,6 @@ -const path = require('path') +import path from 'path' -module.exports = { +export default { meta: { docs: { description: @@ -22,7 +22,7 @@ module.exports = { }, } -const packagesRoot = path.resolve(__dirname, '..', 'packages') +const packagesRoot = path.resolve(import.meta.dirname, '..', 'packages') // Those modules are known to have side effects when evaluated const pathsWithSideEffect = new Set([ diff --git a/eslint-local-rules/disallowSpecImport.js b/eslint-local-rules/disallowSpecImport.js index 9c14f4cb18..861b8d29b3 100644 --- a/eslint-local-rules/disallowSpecImport.js +++ b/eslint-local-rules/disallowSpecImport.js @@ -1,4 +1,4 @@ -module.exports = { +export default { meta: { docs: { description: 'Disallow importing spec file code to avoid to execute the tests from the imported spec file twice', diff --git a/eslint-local-rules/disallowTestImportExportFromSrc.js b/eslint-local-rules/disallowTestImportExportFromSrc.js index c7c52c4c38..c77e14a9a2 100644 --- a/eslint-local-rules/disallowTestImportExportFromSrc.js +++ b/eslint-local-rules/disallowTestImportExportFromSrc.js @@ -1,4 +1,4 @@ -module.exports = { +export default { meta: { docs: { description: diff --git a/eslint-local-rules/disallowUrlConstructorPatchValues.js b/eslint-local-rules/disallowUrlConstructorPatchValues.js index 2edde3d6a7..b9748056d2 100644 --- a/eslint-local-rules/disallowUrlConstructorPatchValues.js +++ b/eslint-local-rules/disallowUrlConstructorPatchValues.js @@ -1,4 +1,4 @@ -module.exports = { +export default { meta: { docs: { description: 'Disallow problematic URL constructor patched values.', diff --git a/eslint-local-rules/disallowZoneJsPatchedValues.js b/eslint-local-rules/disallowZoneJsPatchedValues.js index a4a2311f4a..7dbe8b248e 100644 --- a/eslint-local-rules/disallowZoneJsPatchedValues.js +++ b/eslint-local-rules/disallowZoneJsPatchedValues.js @@ -19,7 +19,7 @@ const PROBLEMATIC_IDENTIFIERS = { removeEventListener: 'Use `addEventListener().stop` from @datadog/browser-core instead', } -module.exports = { +export default { meta: { docs: { description: 'Disallow problematic ZoneJs patched values.', diff --git a/eslint-local-rules/enforceProdDepsImports.js b/eslint-local-rules/enforceProdDepsImports.js index 26ba27e88c..42ca104bef 100644 --- a/eslint-local-rules/enforceProdDepsImports.js +++ b/eslint-local-rules/enforceProdDepsImports.js @@ -1,7 +1,12 @@ -const fs = require('fs') -const moduleVisitor = require('eslint-module-utils/moduleVisitor').default -const importType = require('eslint-plugin-import/lib/core/importType').default -const pkgUp = require('eslint-module-utils/pkgUp').default +import fs from 'node:fs' + +import moduleVisitorPackage from 'eslint-module-utils/moduleVisitor.js' +import importTypePackage from 'eslint-plugin-import/lib/core/importType.js' +import pkgUpPackage from 'eslint-module-utils/pkgUp.js' + +const moduleVisitor = moduleVisitorPackage.default +const pkgUp = pkgUpPackage.default +const importType = importTypePackage.default // The import/no-extraneous-dependencies rule cannot catch this issue[1] where we imported an // aliased package in production code, because it resolves[2] the alias to the real package name, and @@ -15,7 +20,7 @@ const pkgUp = require('eslint-module-utils/pkgUp').default const packageJsonCache = new Map() -module.exports = { +export default { meta: { docs: { description: 'Forbids importing non-prod dependencies in prod files', diff --git a/eslint-local-rules/index.js b/eslint-local-rules/index.js index 3fbbaf62bf..6f9134d952 100644 --- a/eslint-local-rules/index.js +++ b/eslint-local-rules/index.js @@ -1,3 +1,16 @@ +import disallowSideEffects from './disallowSideEffects.js' +import disallowEnumExports from './disallowEnumExports.js' +import disallowSpecImport from './disallowSpecImport.js' +import disallowProtectedDirectoryImport from './disallowProtectedDirectoryImport.js' +import disallowTestImportExportFromSrc from './disallowTestImportExportFromSrc.js' +import disallowZoneJsPatchedValues from './disallowZoneJsPatchedValues.js' +import disallowUrlConstructorPatchValues from './disallowUrlConstructorPatchValues.js' +import disallowGenericUtils from './disallowGenericUtils.js' +import disallowNonScripts from './disallowNonScripts.js' +import enforceProdDepsImports from './enforceProdDepsImports.js' +import secureCommandExecution from './secureCommandExecution.js' +import monitorUntilCommentRules from './monitorUntilCommentRules.js' + // Declare the local rules used by the Browser SDK // // See https://eslint.org/docs/developer-guide/working-with-rules for documentation on how to write @@ -6,17 +19,17 @@ // You can use https://astexplorer.net/ to explore the parsed data structure of a code snippet. // Choose '@typescript-eslint/parser' as a parser to have the exact same structure as our ESLint // parser. -module.exports = { - 'disallow-side-effects': require('./disallowSideEffects'), - 'disallow-enum-exports': require('./disallowEnumExports'), - 'disallow-spec-import': require('./disallowSpecImport'), - 'disallow-protected-directory-import': require('./disallowProtectedDirectoryImport'), - 'disallow-test-import-export-from-src': require('./disallowTestImportExportFromSrc'), - 'disallow-zone-js-patched-values': require('./disallowZoneJsPatchedValues'), - 'disallow-url-constructor-patched-values': require('./disallowUrlConstructorPatchValues.js'), - 'disallow-generic-utils': require('./disallowGenericUtils'), - 'disallow-non-scripts': require('./disallowNonScripts'), - 'enforce-prod-deps-imports': require('./enforceProdDepsImports.js'), - 'secure-command-execution': require('./secureCommandExecution'), - ...require('./monitorUntilCommentRules'), +export default { + 'disallow-side-effects': disallowSideEffects, + 'disallow-enum-exports': disallowEnumExports, + 'disallow-spec-import': disallowSpecImport, + 'disallow-protected-directory-import': disallowProtectedDirectoryImport, + 'disallow-test-import-export-from-src': disallowTestImportExportFromSrc, + 'disallow-zone-js-patched-values': disallowZoneJsPatchedValues, + 'disallow-url-constructor-patched-values': disallowUrlConstructorPatchValues, + 'disallow-generic-utils': disallowGenericUtils, + 'disallow-non-scripts': disallowNonScripts, + 'enforce-prod-deps-imports': enforceProdDepsImports, + 'secure-command-execution': secureCommandExecution, + ...monitorUntilCommentRules, } diff --git a/eslint-local-rules/monitorUntilCommentRules.js b/eslint-local-rules/monitorUntilCommentRules.js index 84afdb385f..895230ec7c 100644 --- a/eslint-local-rules/monitorUntilCommentRules.js +++ b/eslint-local-rules/monitorUntilCommentRules.js @@ -1,7 +1,7 @@ const METHODS_TO_CHECK = ['addTelemetryDebug', 'addTelemetryMetrics'] const MONITOR_COMMENT_FORMAT = /^\s*monitor-until: (\d{4}-\d{2}-\d{2}|forever)/ -module.exports = { +export default { 'enforce-monitor-until-comment': { meta: { docs: { diff --git a/eslint-local-rules/secureCommandExecution.js b/eslint-local-rules/secureCommandExecution.js index c5e106232b..6baf9a721a 100644 --- a/eslint-local-rules/secureCommandExecution.js +++ b/eslint-local-rules/secureCommandExecution.js @@ -1,4 +1,4 @@ -module.exports = { +export default { meta: { docs: { description: 'Check command execution within nodejs scripts', diff --git a/eslint.config.mjs b/eslint.config.mjs index 4a44946d74..ff404c161b 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -330,7 +330,7 @@ export default tseslint.config( { // JS files. Allow weaker typings since TS can't infer types as accurately as TS files. - files: ['**/*.js', '**/*.mjs'], + files: ['**/*.{js,mjs}'], rules: { '@typescript-eslint/no-unsafe-call': 'off', '@typescript-eslint/no-unsafe-return': 'off', @@ -432,9 +432,9 @@ export default tseslint.config( }, { - files: ['**/webpack.*.ts'], + files: ['**/webpack.*.{ts,mts}', 'eslint-local-rules/**/*.js'], rules: { - // Webpack configuration files are expected to use a default export. + // Webpack configuration files and eslint rules files are expected to use a default export. 'import/no-default-export': 'off', }, }, diff --git a/package.json b/package.json index f047d52eae..1ee71f5d95 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,10 @@ "workspaces": [ "packages/*", "developer-extension", - "performances" + "performances", + "test/e2e" ], + "type": "module", "scripts": { "postinstall": "scripts/cli init_submodule", "build": "lerna run build --stream", @@ -15,7 +17,7 @@ "build:docs:json": "typedoc --logLevel Verbose --json ./docs.json", "build:docs:html": "typedoc --out ./docs", "format": "prettier --check .", - "lint": "scripts/cli lint .", + "lint": "NODE_OPTIONS='--max-old-space-size=4096' eslint .", "typecheck": "tsc -b --noEmit true", "dev": "node scripts/dev-server.ts", "release": "scripts/cli release", diff --git a/packages/flagging/webpack.config.ts b/packages/flagging/webpack.config.mts similarity index 100% rename from packages/flagging/webpack.config.ts rename to packages/flagging/webpack.config.mts diff --git a/packages/logs/webpack.config.ts b/packages/logs/webpack.config.mts similarity index 100% rename from packages/logs/webpack.config.ts rename to packages/logs/webpack.config.mts diff --git a/packages/rum-slim/webpack.config.ts b/packages/rum-slim/webpack.config.mts similarity index 100% rename from packages/rum-slim/webpack.config.ts rename to packages/rum-slim/webpack.config.mts diff --git a/packages/rum/webpack.config.ts b/packages/rum/webpack.config.mts similarity index 100% rename from packages/rum/webpack.config.ts rename to packages/rum/webpack.config.mts diff --git a/packages/worker/webpack.config.ts b/packages/worker/webpack.config.mts similarity index 100% rename from packages/worker/webpack.config.ts rename to packages/worker/webpack.config.mts diff --git a/scripts/cli b/scripts/cli index f2ffcafd70..614a69738f 100755 --- a/scripts/cli +++ b/scripts/cli @@ -26,11 +26,6 @@ cmd_typecheck () { tsc -p "$project_path" --noEmit true } -cmd_lint () { - local project_path="${1}" - eslint "$project_path" -} - cmd_init_submodule () { git submodule update --init } diff --git a/scripts/dev-server.ts b/scripts/dev-server.ts index ba65fc115c..f08be09627 100644 --- a/scripts/dev-server.ts +++ b/scripts/dev-server.ts @@ -4,11 +4,11 @@ import HtmlWebpackPlugin from 'html-webpack-plugin' import webpack from 'webpack' import cors from 'cors' import webpackBase from '../webpack.base.ts' -import logsConfig from '../packages/logs/webpack.config.ts' -import rumSlimConfig from '../packages/rum-slim/webpack.config.ts' -import rumConfig from '../packages/rum/webpack.config.ts' -import flaggingConfig from '../packages/flagging/webpack.config.ts' -import workerConfig from '../packages/worker/webpack.config.ts' +import logsConfig from '../packages/logs/webpack.config.mts' +import rumSlimConfig from '../packages/rum-slim/webpack.config.mts' +import rumConfig from '../packages/rum/webpack.config.mts' +import flaggingConfig from '../packages/flagging/webpack.config.mts' +import workerConfig from '../packages/worker/webpack.config.mts' import { printLog, runMain } from './lib/executionUtils.ts' const sandboxPath = './sandbox' diff --git a/test/e2e/lib/helpers/playwright.ts b/test/e2e/lib/helpers/playwright.ts index be5173e471..a6affa5973 100644 --- a/test/e2e/lib/helpers/playwright.ts +++ b/test/e2e/lib/helpers/playwright.ts @@ -1,7 +1,7 @@ import type { PlaywrightWorkerOptions } from '@playwright/test' import type { BrowserConfiguration } from '../../../browsers.conf' -import { getBuildInfos } from '../../../envUtils' -import packageJson from '../../../../package.json' +import { getBuildInfos } from '../../../envUtils.ts' +import packageJson from '../../../../package.json' with { type: 'json' } export const DEV_SERVER_BASE_URL = 'http://localhost:8080' diff --git a/test/e2e/package.json b/test/e2e/package.json new file mode 100644 index 0000000000..352055cdf8 --- /dev/null +++ b/test/e2e/package.json @@ -0,0 +1,3 @@ +{ + "private": true +} diff --git a/test/e2e/playwright.base.config.ts b/test/e2e/playwright.base.config.ts index 93ee21fd5f..9bc8fb1a0d 100644 --- a/test/e2e/playwright.base.config.ts +++ b/test/e2e/playwright.base.config.ts @@ -30,8 +30,11 @@ export const config: Config = { use: { trace: isCi ? 'off' : 'retain-on-failure', }, + webServer: isLocal ? { + stdout: 'pipe', + cwd: path.join(__dirname, '../..'), command: 'yarn dev', url: DEV_SERVER_BASE_URL, reuseExistingServer: true, diff --git a/test/e2e/tsconfig.json b/test/e2e/tsconfig.json index 887a50d94b..bd9d2a803a 100644 --- a/test/e2e/tsconfig.json +++ b/test/e2e/tsconfig.json @@ -8,9 +8,10 @@ "moduleResolution": "node", "resolveJsonModule": true, "target": "ES2022", - "module": "ES2020", + "module": "preserve", "types": ["node", "ajv"], "allowJs": true, - "noEmit": true + "noEmit": true, + "allowImportingTsExtensions": true } } diff --git a/test/envUtils.d.ts b/test/envUtils.d.ts deleted file mode 100644 index e436b06bcf..0000000000 --- a/test/envUtils.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export function getIp(): string -export function getRunId(): string -export function getBuildInfos(): string -export function getTestReportDirectory(): string diff --git a/test/envUtils.js b/test/envUtils.ts similarity index 65% rename from test/envUtils.js rename to test/envUtils.ts index a67da0b92a..b0a197aaf4 100644 --- a/test/envUtils.js +++ b/test/envUtils.ts @@ -1,12 +1,12 @@ -const os = require('os') +import os from 'os' -function getIp() { - return Object.values(os.networkInterfaces()) +export function getIp() { + return (Object.values(os.networkInterfaces()) as os.NetworkInterfaceInfo[][]) .flat() - .find(({ family, internal }) => family === 'IPv4' && !internal).address + .find(({ family, internal }) => family === 'IPv4' && !internal)!.address } -function getBuildInfos() { +export function getBuildInfos() { const ciInfos = getCIInfos() if (ciInfos) { return ciInfos @@ -17,8 +17,8 @@ function getBuildInfos() { } } -function getRunId() { - return process.env.CI_JOB_ID || process.env.USER +export function getRunId() { + return process.env.CI_JOB_ID || process.env.USER || 'n/a' } function getCIInfos() { @@ -32,24 +32,16 @@ function getLocalInfos() { return `${process.env.USER} ${new Date().toLocaleString()}` } -function getTestReportDirectory() { +export function getTestReportDirectory() { if (process.env.CI_JOB_NAME) { return `test-report/${process.env.CI_JOB_NAME}` } } -function getCoverageReportDirectory() { +export function getCoverageReportDirectory() { if (process.env.CI_JOB_NAME) { return `coverage/${process.env.CI_JOB_NAME}` } return 'coverage' } - -module.exports = { - getRunId, - getBuildInfos, - getIp, - getTestReportDirectory, - getCoverageReportDirectory, -} diff --git a/test/unit/browsers.conf.js b/test/unit/browsers.conf.ts similarity index 84% rename from test/unit/browsers.conf.js rename to test/unit/browsers.conf.ts index 1b06b9b363..858862ac5c 100644 --- a/test/unit/browsers.conf.js +++ b/test/unit/browsers.conf.ts @@ -1,9 +1,8 @@ // Capabilities: https://www.browserstack.com/automate/capabilities -/** - * @type {Array} - */ -const browserConfigurations = [ +import type { BrowserConfiguration } from '../browsers.conf' + +export const browserConfigurations: BrowserConfiguration[] = [ { sessionName: 'Edge', name: 'Edge', @@ -47,7 +46,3 @@ const browserConfigurations = [ device: 'iPhone 13', }, ] - -module.exports = { - browserConfigurations, -} diff --git a/test/unit/jasmineSeedReporterPlugin.js b/test/unit/jasmineSeedReporterPlugin.js index 3fb7dce313..e43e8ac6c3 100644 --- a/test/unit/jasmineSeedReporterPlugin.js +++ b/test/unit/jasmineSeedReporterPlugin.js @@ -9,6 +9,7 @@ function seedReporter(logger) { seedReporter.$inject = ['logger'] -module.exports = { +// eslint-disable-next-line import/no-default-export +export default { 'reporter:jasmine-seed': ['type', seedReporter], } diff --git a/test/unit/karma.base.conf.js b/test/unit/karma.base.conf.js index 76a346a2f4..4202809aa1 100644 --- a/test/unit/karma.base.conf.js +++ b/test/unit/karma.base.conf.js @@ -1,14 +1,17 @@ -const { parseArgs } = require('util') -const webpackConfig = require('../../webpack.base.ts').default({ +import { parseArgs } from 'node:util' +import webpackBase from '../../webpack.base.ts' + +import { getTestReportDirectory } from '../envUtils.ts' +import jasmineSeedReporterPlugin from './jasmineSeedReporterPlugin.js' +import karmaSkippedFailedReporterPlugin from './karmaSkippedFailedReporterPlugin.js' +import karmaDuplicateTestNameReporterPlugin from './karmaDuplicateTestNameReporterPlugin.js' + +const webpackConfig = webpackBase({ mode: 'development', types: ['jasmine', 'chrome'], // do not replace some build env variables in unit test in order to test different build behaviors keepBuildEnvVariables: ['SDK_VERSION'], }) -const { getTestReportDirectory } = require('../envUtils') -const jasmineSeedReporterPlugin = require('./jasmineSeedReporterPlugin') -const karmaSkippedFailedReporterPlugin = require('./karmaSkippedFailedReporterPlugin') -const karmaDuplicateTestNameReporterPlugin = require('./karmaDuplicateTestNameReporterPlugin') const reporters = ['spec', 'jasmine-seed', 'karma-skipped-failed', 'karma-duplicate-test-name'] @@ -30,7 +33,8 @@ const FILES_SPECS = [ 'developer-extension/@(src|test)/**/*.spec.@(ts|tsx)', ] -module.exports = { +// eslint-disable-next-line import/no-default-export +export default { basePath: '../..', files: getFiles(), frameworks: ['jasmine', 'webpack'], diff --git a/test/unit/karma.bs.conf.js b/test/unit/karma.bs.conf.js index 2cd9328717..c6b4314a8c 100644 --- a/test/unit/karma.bs.conf.js +++ b/test/unit/karma.bs.conf.js @@ -1,8 +1,9 @@ -const { getBuildInfos } = require('../envUtils') -const { browserConfigurations } = require('./browsers.conf') -const karmaBaseConf = require('./karma.base.conf') +import { getBuildInfos } from '../envUtils.ts' +import { browserConfigurations } from './browsers.conf.ts' +import karmaBaseConf from './karma.base.conf.js' -module.exports = function (config) { +// eslint-disable-next-line import/no-default-export +export default function (config) { config.set({ ...karmaBaseConf, exclude: [ diff --git a/test/unit/karma.local.conf.js b/test/unit/karma.local.conf.js index 6bba34d0db..cc519e3c94 100644 --- a/test/unit/karma.local.conf.js +++ b/test/unit/karma.local.conf.js @@ -1,6 +1,6 @@ -const path = require('path') -const { getCoverageReportDirectory } = require('../envUtils') -const karmaBaseConf = require('./karma.base.conf') +import path from 'node:path' +import { getCoverageReportDirectory } from '../envUtils.ts' +import karmaBaseConf from './karma.base.conf.js' const coverageReports = ['text-summary', 'html'] @@ -8,7 +8,8 @@ if (process.env.CI) { coverageReports.push('clover') } -module.exports = function (config) { +// eslint-disable-next-line import/no-default-export +export default function (config) { config.set({ ...karmaBaseConf, reporters: ['coverage-istanbul', ...karmaBaseConf.reporters], @@ -28,7 +29,7 @@ module.exports = function (config) { module: withIstanbulRule(karmaBaseConf.webpack.module), }, sourceMapLoader: { - remapSource: (source) => source.replace(/webpack:\/\//g, path.join(__dirname, '../../')), + remapSource: (source) => source.replace(/webpack:\/\//g, path.join(import.meta.dirname, '../../')), }, }) } diff --git a/test/unit/karmaDuplicateTestNameReporterPlugin.js b/test/unit/karmaDuplicateTestNameReporterPlugin.js index 27f453c590..f66dd08d3c 100644 --- a/test/unit/karmaDuplicateTestNameReporterPlugin.js +++ b/test/unit/karmaDuplicateTestNameReporterPlugin.js @@ -36,6 +36,7 @@ function KarmaDuplicateTestNameReporter(logger) { KarmaDuplicateTestNameReporter.$inject = ['logger'] -module.exports = { +// eslint-disable-next-line import/no-default-export +export default { 'reporter:karma-duplicate-test-name': ['type', KarmaDuplicateTestNameReporter], } diff --git a/test/unit/karmaSkippedFailedReporterPlugin.js b/test/unit/karmaSkippedFailedReporterPlugin.js index 3ee46237d2..215c235660 100644 --- a/test/unit/karmaSkippedFailedReporterPlugin.js +++ b/test/unit/karmaSkippedFailedReporterPlugin.js @@ -13,6 +13,7 @@ function KarmaSkippedFailedReporter(logger) { KarmaSkippedFailedReporter.$inject = ['logger'] -module.exports = { +// eslint-disable-next-line import/no-default-export +export default { 'reporter:karma-skipped-failed': ['type', KarmaSkippedFailedReporter], } diff --git a/tsconfig.default.json b/tsconfig.default.json index f9fbe7a532..da5376ce76 100644 --- a/tsconfig.default.json +++ b/tsconfig.default.json @@ -14,8 +14,9 @@ "packages/*/bundle", // Files included in ./tsconfig.scripts.json - "**/webpack.*.ts", + "**/webpack.*", "scripts", + "test/envUtils.ts", // Files included in ./test/e2e/tsconfig.json "test/e2e", diff --git a/tsconfig.scripts.json b/tsconfig.scripts.json index ee9e02c00f..248668d87c 100644 --- a/tsconfig.scripts.json +++ b/tsconfig.scripts.json @@ -15,5 +15,5 @@ "checkJs": false, "allowImportingTsExtensions": true }, - "include": ["scripts", "**/webpack.*.ts"] + "include": ["scripts", "**/webpack.*.mts", "test/envUtils.ts"] } diff --git a/yarn.lock b/yarn.lock index 402d37292d..af352e28c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5329,6 +5329,12 @@ __metadata: languageName: node linkType: hard +"e2e-079dc0@workspace:test/e2e": + version: 0.0.0-use.local + resolution: "e2e-079dc0@workspace:test/e2e" + languageName: unknown + linkType: soft + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0"