diff --git a/.github/workflows/call-core-tests.yml b/.github/workflows/call-core-tests.yml index 0edc8977d29..cc326273aca 100644 --- a/.github/workflows/call-core-tests.yml +++ b/.github/workflows/call-core-tests.yml @@ -48,6 +48,6 @@ jobs: if: matrix.override-react-version != '' # This should be safe since we are caching pnpm store and not node_modules run: | - node ./scripts/override-react.js --version=${{ matrix.override-react-version }} + node ./scripts/override-react.mjs --version=${{ matrix.override-react-version }} grep version node_modules/{react,react-dom}/package.json - run: pnpm run test-unit diff --git a/.github/workflows/call-e2e-test.yml b/.github/workflows/call-e2e-test.yml index fa0ad2a5b47..3be648b145c 100644 --- a/.github/workflows/call-e2e-test.yml +++ b/.github/workflows/call-e2e-test.yml @@ -44,7 +44,7 @@ jobs: - name: Install React ${{ inputs.override-react-version }} if: inputs.override-react-version != '' run: | - node ./scripts/override-react.js --version=${{ inputs.override-react-version }} + node ./scripts/override-react.mjs --version=${{ inputs.override-react-version }} grep version node_modules/{react,react-dom}/package.json - name: Restore playwright from cache uses: actions/cache/restore@v5 diff --git a/AGENTS.md b/AGENTS.md index 68ace75e483..f19384fbdc2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -191,4 +191,4 @@ When creating custom nodes: - Build script: `scripts/build.mjs` - Supports multiple build modes: development, production, www (Meta internal) - TypeScript source → compiled to CommonJS and ESM -- Package manager logic in `scripts/shared/packagesManager.js` +- Package manager logic in `scripts/shared/packagesManager.mjs` diff --git a/babel.config.js b/babel.config.mjs similarity index 71% rename from babel.config.js rename to babel.config.mjs index 7ef7f39d372..5e72b50f1c7 100644 --- a/babel.config.js +++ b/babel.config.mjs @@ -6,15 +6,10 @@ * */ -'use strict'; +import transformErrorMessages from './scripts/error-codes/transform-error-messages.mjs'; -module.exports = { - plugins: [ - [ - require('./scripts/error-codes/transform-error-messages'), - {noMinify: true}, - ], - ], +export default { + plugins: [[transformErrorMessages, {noMinify: true}]], presets: [ [ '@babel/preset-env', diff --git a/eslint.config.mjs b/eslint.config.mjs index 54a6a8252e1..81f08242888 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -311,21 +311,13 @@ export default [ // Override: Scripts (no header required, allow console) { - files: ['scripts/**/*.js'], + files: ['scripts/**/*.js', 'scripts/**/*.mjs'], rules: { 'header/header': OFF, 'no-console': OFF, }, }, - // Override: Scripts .mjs (no header required) - { - files: ['scripts/**/*.mjs'], - rules: { - 'header/header': OFF, - }, - }, - // Override: TypeScript files ...tseslint.configs.recommended.map((config) => ({ ...config, diff --git a/libdefs/globals.d.ts b/libdefs/globals.d.ts index 7f3bf1ae5e0..bb09cdeea0a 100644 --- a/libdefs/globals.d.ts +++ b/libdefs/globals.d.ts @@ -1,3 +1,4 @@ +declare module '*.css'; declare module '*.jpg'; declare module '*.jpeg'; declare module '*.gif'; diff --git a/package.json b/package.json index 1fb8a32b94e..ae7056898c5 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,11 @@ "build-playground-prod": "pnpm run build-prod && pnpm -C packages/lexical-playground run build-prod", "build-release": "pnpm run build-prod --release --codes", "build-www": "pnpm run clean && pnpm run build --www && pnpm run build --www --prod && pnpm run prepare-www", - "build-types": "tsc -p ./tsconfig.build.json && node ./scripts/validate-tsc-types.js", - "lint-flow": "node ./scripts/lint-flow-types.js", - "clean": "node scripts/clean.js", + "build-types": "tsc -p ./tsconfig.build.json && node ./scripts/validate-tsc-types.mjs", + "lint-flow": "node ./scripts/lint-flow-types.mjs", + "clean": "node scripts/clean.mjs", "extract-codes": "node scripts/build.mjs --codes", - "flow": "node ./scripts/check-flow-types.js", + "flow": "node ./scripts/check-flow-types.mjs", "flow-typed-install": "flow-typed install -s -o --ignoreDeps dev peer bundled", "tsc": "tsc", "tsc-extension": "pnpm --filter @lexical/devtools run compile", @@ -89,23 +89,23 @@ "prettier:fix": "prettier --write .", "prepare-ci": "pnpm run build-playground-dev", "prepare-ci-prod": "pnpm run build-playground-prod", - "prepare-release": "pnpm run build-release && node ./scripts/npm/prepare-release.js && node ./scripts/validate-tsc-types.js", + "prepare-release": "pnpm run build-release && node ./scripts/npm/prepare-release.mjs && node ./scripts/validate-tsc-types.mjs", "prepare": "husky", - "prepare-www": "node scripts/www/rewriteImports.js", + "prepare-www": "node scripts/www/rewriteImports.mjs", "changelog": "func() { git --no-pager log --oneline ${1}...HEAD --pretty=format:\"- %s %an\"; }; func", - "increment-version": "node ./scripts/npm/increment-version", - "update-changelog": "node ./scripts/npm/update-changelog", - "create-docs": "node ./scripts/create-docs", - "update-version": "node ./scripts/updateVersion", + "increment-version": "node ./scripts/npm/increment-version.mjs", + "update-changelog": "node ./scripts/npm/update-changelog.mjs", + "create-docs": "node ./scripts/create-docs.mjs", + "update-version": "node ./scripts/updateVersion.mjs", "update-tsconfig": "node ./scripts/update-tsconfig.mjs", - "update-flowconfig": "node ./scripts/update-flowconfig", + "update-flowconfig": "node ./scripts/update-flowconfig.mjs", "update-examples": "node ./scripts/update-examples.mjs", "update-team-data": "node ./scripts/generate-team-data.mjs", - "create-www-stubs": "node ./scripts/create-www-stubs", + "create-www-stubs": "node ./scripts/create-www-stubs.mjs", "update-packages": "pnpm run update-version && pnpm run update-tsconfig && pnpm run update-flowconfig && pnpm run create-docs && pnpm run create-www-stubs", - "postversion": "node ./scripts/npm/postversion", + "postversion": "node ./scripts/npm/postversion.mjs", "publish-extension": "pnpm --filter @lexical/devtools run zip && pnpm --filter @lexical/devtools run publish", - "release": "pnpm run prepare-release && node ./scripts/npm/release.js" + "release": "pnpm run prepare-release && node ./scripts/npm/release.mjs" }, "devDependencies": { "@babel/core": "^7.29.0", @@ -115,6 +115,10 @@ "@babel/preset-flow": "^7.27.1", "@babel/preset-react": "^7.28.5", "@babel/preset-typescript": "^7.28.5", + "@docusaurus/plugin-content-docs": "^3.10.0", + "@docusaurus/types": "^3.10.0", + "@eslint/compat": "^2.0.5", + "@eslint/js": "^10.0.0", "@lexical/eslint-plugin": "file:./packages/lexical-eslint-plugin", "@lexical/eslint-plugin-internal": "file:./packages/lexical-eslint-plugin-internal", "@playwright/test": "^1.59.1", @@ -126,6 +130,7 @@ "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-replace": "^6.0.3", "@rollup/plugin-terser": "^1.0.0", + "@types/babel__helper-module-imports": "^7.18.3", "@types/fs-extra": "^11.0.4", "@types/jsdom": "^21.1.6", "@types/katex": "^0.16.7", @@ -134,8 +139,6 @@ "@types/proper-lockfile": "^4.1.4", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@eslint/compat": "^2.0.5", - "@eslint/js": "^10.0.0", "@vitejs/plugin-react": "^6.0.1", "@y/websocket-server": "^0.1.5", "baseline-browser-mapping": "^2.10.18", diff --git a/packages/lexical-devtools/wxt.config.ts b/packages/lexical-devtools/wxt.config.ts index 529f1a77be9..ee69fb3c851 100644 --- a/packages/lexical-devtools/wxt.config.ts +++ b/packages/lexical-devtools/wxt.config.ts @@ -13,6 +13,7 @@ import fs from 'fs'; import * as path from 'path'; import {defineConfig, UserManifest} from 'wxt'; +import transformErrorMessages from '../../scripts/error-codes/transform-error-messages.mjs'; import moduleResolution from '../shared/viteModuleResolution'; // See https://wxt.dev/api/config.html @@ -104,8 +105,7 @@ export default defineConfig({ plugins: [ '@babel/plugin-transform-flow-strip-types', [ - // eslint-disable-next-line @typescript-eslint/no-require-imports - require('../../scripts/error-codes/transform-error-messages'), + transformErrorMessages, { noMinify: true, }, diff --git a/packages/lexical-eslint-plugin-internal/src/rules/no-imports-from-self.js b/packages/lexical-eslint-plugin-internal/src/rules/no-imports-from-self.js index 2f9c524ffd6..ded86f046e4 100644 --- a/packages/lexical-eslint-plugin-internal/src/rules/no-imports-from-self.js +++ b/packages/lexical-eslint-plugin-internal/src/rules/no-imports-from-self.js @@ -9,41 +9,9 @@ // From: https://github.com/payloadcms/payload/blob/main/packages/eslint-plugin/customRules/no-imports-from-self.js import fs from 'node:fs'; -import {createRequire} from 'node:module'; import path from 'node:path'; -import {fileURLToPath} from 'node:url'; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); - -/** - * Find the monorepo root by walking up from this file's directory - * looking for a package.json with a "workspaces" field. - * @returns {string} - */ -function findMonorepoRoot() { - let dir = __dirname; - while (dir !== path.dirname(dir)) { - const pkgPath = path.join(dir, 'package.json'); - if (fs.existsSync(pkgPath)) { - try { - const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); - if (pkg.workspaces) { - return dir; - } - } catch { - // ignore - } - } - dir = path.dirname(dir); - } - throw new Error('Could not find monorepo root'); -} - -// PackageMetadata.js is CJS (uses fs-extra), so use createRequire to load it -const require = createRequire(import.meta.url); -const {PackageMetadata} = require( - path.join(findMonorepoRoot(), 'scripts/shared/PackageMetadata.js'), -); +import {PackageMetadata} from '../../../../scripts/shared/PackageMetadata.mjs'; /** * @param {string} fn diff --git a/packages/lexical-playground/vite.config.ts b/packages/lexical-playground/vite.config.ts index d56603405a1..48e8c65ce4f 100644 --- a/packages/lexical-playground/vite.config.ts +++ b/packages/lexical-playground/vite.config.ts @@ -8,15 +8,13 @@ import babel from '@rollup/plugin-babel'; import react from '@vitejs/plugin-react'; -import {createRequire} from 'node:module'; import {defineConfig} from 'vite'; +import transformErrorMessages from '../../scripts/error-codes/transform-error-messages.mjs'; import viteMonorepoResolutionPlugin from '../shared/lexicalMonorepoPlugin'; import viteCopyEsm from './viteCopyEsm'; import viteCopyExcalidrawAssets from './viteCopyExcalidrawAssets'; -const require = createRequire(import.meta.url); - // https://vitejs.dev/config/ export default defineConfig(({mode}) => ({ build: { @@ -51,7 +49,7 @@ export default defineConfig(({mode}) => ({ ...(mode !== 'production' ? [ [ - require('../../scripts/error-codes/transform-error-messages'), + transformErrorMessages, { noMinify: true, }, diff --git a/packages/lexical-text/src/findTextIntersectionFromCharacters.ts b/packages/lexical-text/src/findTextIntersectionFromCharacters.ts index 1b5d89d2878..9177f93771c 100644 --- a/packages/lexical-text/src/findTextIntersectionFromCharacters.ts +++ b/packages/lexical-text/src/findTextIntersectionFromCharacters.ts @@ -13,6 +13,7 @@ import {$isElementNode, $isTextNode, RootNode, TextNode} from 'lexical'; * @param root - The RootNode. * @param targetCharacters - The number of characters whose TextNode must be larger than. * @returns The TextNode and the intersections offset, or null if no TextNode is found. + * @deprecated $findTextIntersectionFromCharacters has never worked correctly and will be removed */ export function $findTextIntersectionFromCharacters( root: RootNode, diff --git a/packages/lexical-website/docusaurus.config.js b/packages/lexical-website/docusaurus.config.ts similarity index 72% rename from packages/lexical-website/docusaurus.config.js rename to packages/lexical-website/docusaurus.config.ts index a3b6828739e..a5eb9a8d19d 100644 --- a/packages/lexical-website/docusaurus.config.js +++ b/packages/lexical-website/docusaurus.config.ts @@ -6,18 +6,29 @@ * */ -'use strict'; -// @ts-check -// Note: type annotations allow type checking and IDEs autocompletion - -const {github: lightCodeTheme, dracula: darkCodeTheme} = - require('prism-react-renderer').themes; -const slugifyPlugin = require('./src/plugins/lexical-remark-slugify-anchors'); -const {packagesManager} = process.env.FB_INTERNAL - ? {} - : require('../../scripts/shared/packagesManager'); -const path = require('node:path'); -const fs = require('node:fs'); +import type {Options as DocsPluginOptions} from '@docusaurus/plugin-content-docs'; +import type {Config} from '@docusaurus/types'; + +import fs from 'node:fs'; +import {createRequire} from 'node:module'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; +import {themes} from 'prism-react-renderer'; + +import {packagesManager} from '../../scripts/shared/packagesManager.mjs'; +import packageDocsPlugin from './plugins/package-docs/index.mjs'; +import slugifyPlugin from './src/plugins/lexical-remark-slugify-anchors/index.js'; + +type SidebarItemsGenerator = NonNullable< + DocsPluginOptions['sidebarItemsGenerator'] +>; +type NormalizedSidebarItem = Awaited>[number]; + +// Use import.meta.url (not import.meta.dirname) for jiti v1 compatibility +const require = createRequire(import.meta.url); +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const {github: lightCodeTheme, dracula: darkCodeTheme} = themes; /** * Build webpack resolve.alias entries that map each lexical package's module @@ -31,8 +42,7 @@ function buildLexicalWebpackAliases() { if (process.env.FB_INTERNAL) { return {}; } - /** @type {Record} */ - const aliases = {}; + const aliases: Record = {}; for (const pkg of packagesManager.getPublicPackages()) { for (const [ @@ -78,18 +88,12 @@ function sourceLinkOptions() { }; } -/** - * @typedef {import('@docusaurus/plugin-content-docs').PluginOptions['sidebarItemsGenerator']} SidebarItemsGenerator - * @typedef {Awaited>[number]} NormalizedSidebarItem - */ -/** @type Record */ -const docLabels = { +const docLabels: Record = { 'api/index': 'Readme', 'api/modules': 'Table of Contents', }; -/** @param {string} lowercaseLabel */ -function categoryOrder(lowercaseLabel) { +function categoryOrder(lowercaseLabel: string) { switch (lowercaseLabel) { case 'Modules': return 0; @@ -102,23 +106,16 @@ function categoryOrder(lowercaseLabel) { } } -/** - * @param {string} label - */ -function capitalizeLabel(label) { +function capitalizeLabel(label: string) { // modules, classes, interfaces -> Modules, Classes, Interfaces return label.charAt(0).toUpperCase() + label.slice(1); } -/** - * @param {NormalizedSidebarItem} a - * @param {NormalizedSidebarItem} b - */ -function sidebarSort(a, b) { +function sidebarSort(a: NormalizedSidebarItem, b: NormalizedSidebarItem) { // Categories always come last and have their own defined sort order // Otherwise leave the sort as-is if (a.type === 'category' && b.type === 'category') { - return categoryOrder(a.label) - categoryOrder(b.label); + return categoryOrder(a.label!) - categoryOrder(b.label!); } else if (a.type === 'category') { return 1; } else if (b.type === 'category') { @@ -131,10 +128,8 @@ function sidebarSort(a, b) { /** * Map an 'api/modules/...' id back to the original module name without * loading the markdown and parsing the frontmatter. - * - * @param {string} id */ -function idToModuleName(id) { +function idToModuleName(id: string) { return id .replace(/^api\/modules\//i, '') .replace(/^lexical_react_/, '@lexical/react/') @@ -145,17 +140,12 @@ function idToModuleName(id) { /** * Map an 'api/{category}/{fileId}.ClassName' to the class or interface name. * These are already capitalized and always preceded by a '.'. - * - * @param {string} id */ -function classOrInterfaceIdToLabel(id) { +function classOrInterfaceIdToLabel(id: string) { return id.replace(/^[^.]+./, ''); } -/** - * @type {SidebarItemsGenerator} - */ -const sidebarItemsGenerator = async ({ +const sidebarItemsGenerator: SidebarItemsGenerator = async ({ defaultSidebarItemsGenerator, ...args }) => { @@ -168,14 +158,9 @@ const sidebarItemsGenerator = async ({ } else if (sidebarItem.type !== 'category') { return sidebarItem; } - /** @type {NormalizedSidebarItem[]} */ - const groupedItems = []; + const groupedItems: NormalizedSidebarItem[] = []; for (const item of sidebarItem.items) { if (item.type === 'doc' && item.id.match(/^api\/modules\//i)) { - // autoConfiguration is disabled because the frontmatter - // sidebar_label otherwise takes precedence over anything we do - // here, and the default labels come from the page titles which - // are parsed at a later stage of the pipeline. const label = idToModuleName(item.id); const lastItem = groupedItems.at(-1); if ( @@ -232,8 +217,9 @@ const sidebarItemsGenerator = async ({ return items; }; -/** @type {import('@docusaurus/types').ParseFrontMatter} */ -const parseFrontMatter = async (params) => { +const parseFrontMatter: NonNullable< + Config['markdown'] +>['parseFrontMatter'] = async (params) => { const result = await params.defaultParseFrontMatter(params); if (params.filePath.endsWith('/docs/api/modules.md')) { Object.assign(result.frontMatter, { @@ -252,7 +238,6 @@ const parseFrontMatter = async (params) => { return result; }; -/** @type {Partial} */ const docusaurusPluginTypedocConfig = { ...sourceLinkOptions(), customAnchorsFormat: 'curlyBrace', @@ -273,8 +258,14 @@ const docusaurusPluginTypedocConfig = { excludeInternal: true, plugin: [ 'typedoc-plugin-no-inherit', - require.resolve('./src/plugins/lexical-typedoc-plugin-module-name'), - require.resolve('./src/plugins/lexical-typedoc-plugin-legacy-router'), + path.resolve( + __dirname, + 'src/plugins/lexical-typedoc-plugin-module-name/index.mjs', + ), + path.resolve( + __dirname, + 'src/plugins/lexical-typedoc-plugin-legacy-router/index.mjs', + ), 'typedoc-plugin-rename-defaults', ], router: 'legacy', @@ -297,8 +288,7 @@ const STACKBLITZ_PREFIX = `https://stackblitz.com/github/${GIT_REPO_OWNER}/${GIT : GIT_COMMIT_SHA }/`; -/** @type {import('@docusaurus/types').Config} */ -const config = { +const config: Config = { baseUrl: '/', customFields: { @@ -324,7 +314,7 @@ const config = { }, mermaid: true, parseFrontMatter, - preprocessor: ({fileContent}) => + preprocessor: ({fileContent}: {fileContent: string}) => fileContent.replaceAll( 'https://stackblitz.com/github/facebook/lexical/tree/main/', STACKBLITZ_PREFIX, @@ -339,8 +329,7 @@ const config = { process.env.FB_INTERNAL ? null : [ - './plugins/package-docs', - /** @type {import('./plugins/package-docs').PackageDocsPluginOptions} */ + packageDocsPlugin, { baseDir: path.resolve(__dirname, '..'), editUrl: `${GITHUB_REPO_URL}/tree/main/packages/`, @@ -396,8 +385,10 @@ const config = { ['docusaurus-plugin-typedoc', docusaurusPluginTypedocConfig], async function tailwindcss() { return { - configurePostCss(postcssOptions) { - postcssOptions.plugins.push(require('@tailwindcss/postcss')); + async configurePostCss(postcssOptions: {plugins: unknown[]}) { + postcssOptions.plugins.push( + (await import('@tailwindcss/postcss')).default, + ); return postcssOptions; }, name: 'docusaurus-tailwindcss', @@ -443,85 +434,81 @@ const config = { tagline: 'A text editor framework that does things differently', - themeConfig: - /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - docs: { - sidebar: { - autoCollapseCategories: true, - hideable: true, - }, + themeConfig: { + docs: { + sidebar: { + autoCollapseCategories: true, + hideable: true, }, - navbar: { - items: [ - { - label: 'Playground', - position: 'left', - to: 'https://playground.lexical.dev/', - }, - { - label: 'Docs', - position: 'left', - sidebarId: 'docs', - type: 'docSidebar', - }, - process.env.FB_INTERNAL - ? { - href: 'https://lexical.dev/docs/api/', - label: 'API', - position: 'left', - } - : { - label: 'API', - position: 'left', - sidebarId: 'api', - type: 'docSidebar', - }, + }, + navbar: { + items: [ + { + label: 'Playground', + position: 'left', + to: 'https://playground.lexical.dev/', + }, + { + label: 'Docs', + position: 'left', + sidebarId: 'docs', + type: 'docSidebar', + }, + process.env.FB_INTERNAL + ? { + href: 'https://lexical.dev/docs/api/', + label: 'API', + position: 'left', + } + : { + label: 'API', + position: 'left', + sidebarId: 'api', + type: 'docSidebar', + }, - {label: 'Community', position: 'left', to: '/community'}, - { - label: 'Demos', - position: 'left', - to: '/gallery', - }, - { - 'aria-label': 'GitHub', - className: 'icon-link icon-link-mask icon-link-github', - position: 'right', - to: GITHUB_REPO_URL, - }, - { - 'aria-label': 'Discord', - className: 'icon-link icon-link-mask icon-link-discord', - position: 'right', - to: DISCORD_URL, - }, - ].filter((item) => item != null), - logo: { - alt: 'Lexical', - height: 12, - src: 'img/logo.svg', - srcDark: 'img/logo-dark.svg', + {label: 'Community', position: 'left', to: '/community'}, + { + label: 'Demos', + position: 'left', + to: '/gallery', }, + { + 'aria-label': 'GitHub', + className: 'icon-link icon-link-mask icon-link-github', + position: 'right', + to: GITHUB_REPO_URL, + }, + { + 'aria-label': 'Discord', + className: 'icon-link icon-link-mask icon-link-discord', + position: 'right', + to: DISCORD_URL, + }, + ].filter((item) => item != null), + logo: { + alt: 'Lexical', + height: 12, + src: 'img/logo.svg', + srcDark: 'img/logo-dark.svg', }, - prism: { - darkTheme: darkCodeTheme, - theme: lightCodeTheme, - }, - }), + }, + prism: { + darkTheme: darkCodeTheme, + theme: lightCodeTheme, + }, + }, themes: [ '@docusaurus/theme-mermaid', [ require.resolve('@easyops-cn/docusaurus-search-local'), - /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */ - ({ - // ... Your options. + { // `hashed` is recommended as long-term-cache of index file is possible. hashed: true, indexBlog: false, language: ['en'], - }), + }, ], ], @@ -529,4 +516,4 @@ const config = { url: 'https://lexical.dev', }; -module.exports = config; +export default config; diff --git a/packages/lexical-website/plugins/package-docs/index.js b/packages/lexical-website/plugins/package-docs/index.mjs similarity index 90% rename from packages/lexical-website/plugins/package-docs/index.js rename to packages/lexical-website/plugins/package-docs/index.mjs index 46c93ba3b9b..250be4941dd 100644 --- a/packages/lexical-website/plugins/package-docs/index.js +++ b/packages/lexical-website/plugins/package-docs/index.mjs @@ -6,13 +6,12 @@ * */ -'use strict'; +import {glob} from 'glob'; +import fs from 'node:fs'; +import path from 'node:path'; -const fs = require('fs'); -const path = require('path'); -const glob = require('glob'); // Not using packagesManager since it will cache package.json files -const {PackageMetadata} = require('../../../../scripts/shared/PackageMetadata'); +import {PackageMetadata} from '../../../../scripts/shared/PackageMetadata.mjs'; /** * @typedef {Object} PackageDocsPluginOptions @@ -30,7 +29,7 @@ const {PackageMetadata} = require('../../../../scripts/shared/PackageMetadata'); * @param {PackageDocsPluginOptions} options * @returns {import('@docusaurus/types').Plugin} */ -module.exports = async function (context, options) { +export default async function (context, options) { return { getPathsToWatch: () => [`${options.baseDir}/*/{README.md,package.json}`], loadContent: () => { @@ -80,4 +79,4 @@ module.exports = async function (context, options) { }, name: 'package-docs', }; -}; +} diff --git a/packages/shared/viteModuleResolution.ts b/packages/shared/viteModuleResolution.ts index 7b00ae8a54d..b1671b95548 100644 --- a/packages/shared/viteModuleResolution.ts +++ b/packages/shared/viteModuleResolution.ts @@ -10,16 +10,13 @@ import type { ModuleExportEntry, NpmModuleExportEntry, PackageMetadata, -} from '../../scripts/shared/PackageMetadata'; +} from '../../scripts/shared/PackageMetadata.mjs'; import type {Alias} from 'vite'; import * as fs from 'node:fs'; -import {createRequire} from 'node:module'; import * as path from 'node:path'; -const require = createRequire(import.meta.url); -const {packagesManager} = - require('../../scripts/shared/packagesManager') as typeof import('../../scripts/shared/packagesManager'); +import {packagesManager} from '../../scripts/shared/packagesManager.mjs'; /** * Escape a string for exact match in a RegExp diff --git a/playwright.config.js b/playwright.config.mjs similarity index 94% rename from playwright.config.js rename to playwright.config.mjs index 61a2093ff60..b1d60985c93 100644 --- a/playwright.config.js +++ b/playwright.config.mjs @@ -6,8 +6,7 @@ * */ -'use strict'; -const {devices} = require('@playwright/test'); +import {devices} from '@playwright/test'; const {CI} = process.env; const IS_CI = CI === 'true'; @@ -69,4 +68,4 @@ const config = { : undefined, workers: 4, }; -module.exports = config; +export default config; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4bc637a0a5..1149bf907ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,6 +47,12 @@ importers: '@babel/preset-typescript': specifier: ^7.28.5 version: 7.28.5(@babel/core@7.29.0) + '@docusaurus/plugin-content-docs': + specifier: ^3.10.0 + version: 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': + specifier: ^3.10.0 + version: 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@eslint/compat': specifier: ^2.0.5 version: 2.0.5(eslint@10.2.0(jiti@2.6.1)) @@ -86,6 +92,9 @@ importers: '@rollup/plugin-terser': specifier: ^1.0.0 version: 1.0.0(rollup@4.60.1) + '@types/babel__helper-module-imports': + specifier: ^7.18.3 + version: 7.18.3 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -1794,10 +1803,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime-corejs3@7.28.4': - resolution: {integrity: sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.2': resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} engines: {node: '>=6.9.0'} @@ -2268,10 +2273,6 @@ packages: resolution: {integrity: sha512-mqCJhCZNZUDg0zgDEaPTM4DnRsisa24HdqTy/qn/MQlbwhTb4WVaZg6ZyX6yIVKqTz8fS1hBMgM+98z+BeJJDg==} engines: {node: '>=20.0'} - '@docusaurus/babel@3.9.2': - resolution: {integrity: sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==} - engines: {node: '>=20.0'} - '@docusaurus/bundler@3.10.0': resolution: {integrity: sha512-iONUGZGgp+lAkw/cJZH6irONcF4p8+278IsdRlq8lYhxGjkoNUs0w7F4gVXBYSNChq5KG5/JleTSsdJySShxow==} engines: {node: '>=20.0'} @@ -2281,15 +2282,6 @@ packages: '@docusaurus/faster': optional: true - '@docusaurus/bundler@3.9.2': - resolution: {integrity: sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==} - engines: {node: '>=20.0'} - peerDependencies: - '@docusaurus/faster': '*' - peerDependenciesMeta: - '@docusaurus/faster': - optional: true - '@docusaurus/core@3.10.0': resolution: {integrity: sha512-mgLdQsO8xppnQZc3LPi+Mf+PkPeyxJeIx11AXAq/14fsaMefInQiMEZUUmrc7J+956G/f7MwE7tn8KZgi3iRcA==} engines: {node: '>=20.0'} @@ -2303,23 +2295,10 @@ packages: '@docusaurus/faster': optional: true - '@docusaurus/core@3.9.2': - resolution: {integrity: sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==} - engines: {node: '>=20.0'} - hasBin: true - peerDependencies: - '@mdx-js/react': ^3.0.0 - react: 19.2.5 - react-dom: 19.2.5 - '@docusaurus/cssnano-preset@3.10.0': resolution: {integrity: sha512-qzSshTO1DB3TYW+dPUal5KHM7XPc5YQfzF3Kdb2NDACJUyGbNcFtw3tGkCJlYwhNCRKbZcmwraKUS1i5dcHdGg==} engines: {node: '>=20.0'} - '@docusaurus/cssnano-preset@3.9.2': - resolution: {integrity: sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==} - engines: {node: '>=20.0'} - '@docusaurus/faster@3.10.0': resolution: {integrity: sha512-GNPtVH14ISjHfSwnHu3KiFGf86ICmJSQDeSv/QaanpBgiZGOtgZaslnC5q8WiguxM1EVkwcGxPuD8BXF4eggKw==} engines: {node: '>=20.0'} @@ -2341,25 +2320,12 @@ packages: react: 19.2.5 react-dom: 19.2.5 - '@docusaurus/mdx-loader@3.9.2': - resolution: {integrity: sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==} - engines: {node: '>=20.0'} - peerDependencies: - react: 19.2.5 - react-dom: 19.2.5 - '@docusaurus/module-type-aliases@3.10.0': resolution: {integrity: sha512-/1O0Zg8w3DFrYX/I6Fbss7OJrtZw1QoyjDhegiFNHVi9A9Y0gQ3jUAytVxF6ywpAWpLyLxch8nN8H/V3XfzdJQ==} peerDependencies: react: 19.2.5 react-dom: 19.2.5 - '@docusaurus/module-type-aliases@3.9.2': - resolution: {integrity: sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==} - peerDependencies: - react: 19.2.5 - react-dom: 19.2.5 - '@docusaurus/plugin-client-redirects@3.10.0': resolution: {integrity: sha512-P+VLoLoZTc74so8+IbsaPZ33/mkf2BWL1CYXQpPRkl0v1QVCN2CgfsZY/8QtbYjQnx2upXUnv45abDhNcSggNw==} engines: {node: '>=20.0'} @@ -2382,13 +2348,6 @@ packages: react: 19.2.5 react-dom: 19.2.5 - '@docusaurus/plugin-content-docs@3.9.2': - resolution: {integrity: sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==} - engines: {node: '>=20.0'} - peerDependencies: - react: 19.2.5 - react-dom: 19.2.5 - '@docusaurus/plugin-content-pages@3.10.0': resolution: {integrity: sha512-5amX8kEJI+nIGtuLVjYk59Y5utEJ3CHETFOPEE4cooIRLA4xM4iBsA6zFgu4ljcopeYwvBzFEWf5g2I6Yb9SkA==} engines: {node: '>=20.0'} @@ -2469,14 +2428,6 @@ packages: react: 19.2.5 react-dom: 19.2.5 - '@docusaurus/theme-common@3.9.2': - resolution: {integrity: sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==} - engines: {node: '>=20.0'} - peerDependencies: - '@docusaurus/plugin-content-docs': '*' - react: 19.2.5 - react-dom: 19.2.5 - '@docusaurus/theme-mermaid@3.10.0': resolution: {integrity: sha512-Y2xrlwhIJ80oOZIO3PXL6A7J869splfcMI87E3NKpYsy3zJxOyV+BP1QMtGi59ajKgU868HPuyyn6J+6BZGOBg==} engines: {node: '>=20.0'} @@ -4797,6 +4748,9 @@ packages: '@types/babel__generator@7.27.0': resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@types/babel__helper-module-imports@7.18.3': + resolution: {integrity: sha512-2pyr9Vlriessj2KI85SEF7qma8vA3vzquQMw3wn6kL5lsfjH/YxJ1Noytk4/FJElpYybUbyaC37CVfEgfyme9A==} + '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} @@ -6343,9 +6297,6 @@ packages: core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} - core-js-pure@3.47.0: - resolution: {integrity: sha512-BcxeDbzUrRnXGYIVAGFtcGQVNpFcUhVjr6W7F8XktvQW2iJP9e66GP6xdKotCRFlrxBvNIBrhwKteRXqMV86Nw==} - core-js@3.47.0: resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} @@ -10678,13 +10629,6 @@ packages: react: 19.2.5 react-dom: 19.2.5 - react-loadable-ssr-addon-v5-slorber@1.0.1: - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' - react-loadable-ssr-addon-v5-slorber@1.0.3: resolution: {integrity: sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ==} engines: {node: '>=10.13.0'} @@ -11183,9 +11127,6 @@ packages: resolution: {integrity: sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==} engines: {node: '>=20.0.0'} - serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} - serve-handler@6.1.7: resolution: {integrity: sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==} @@ -12950,7 +12891,7 @@ snapshots: '@atlaskit/drag-and-drop-hitbox@0.8.1': dependencies: '@atlaskit/drag-and-drop': 0.15.1 - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 '@atlaskit/drag-and-drop-indicator@0.11.1(@types/react@19.2.14)(react@19.2.5)': dependencies: @@ -12966,7 +12907,7 @@ snapshots: '@atlaskit/drag-and-drop@0.15.1': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 bind-event-listener: 2.1.1 raf-schd: 4.0.3 @@ -12994,7 +12935,7 @@ snapshots: dependencies: '@atlaskit/ds-lib': 2.7.0(@types/react@19.2.14)(react@19.2.5) '@atlaskit/platform-feature-flags': 0.3.0 - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 bind-event-listener: 3.0.0 @@ -13752,10 +13693,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime-corejs3@7.28.4': - dependencies: - core-js-pure: 3.47.0 - '@babel/runtime@7.28.2': {} '@babel/runtime@7.29.2': {} @@ -14267,32 +14204,6 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/babel@3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': - dependencies: - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.29.0) - '@babel/preset-env': 7.29.2(@babel/core@7.29.0) - '@babel/preset-react': 7.28.5(@babel/core@7.29.0) - '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) - '@babel/runtime': 7.29.2 - '@babel/runtime-corejs3': 7.28.4 - '@babel/traverse': 7.29.0 - '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - babel-plugin-dynamic-import-node: 2.3.3 - fs-extra: 11.3.4 - tslib: 2.8.1 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - react - - react-dom - - supports-color - - uglify-js - - webpack-cli - '@docusaurus/bundler@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: '@babel/core': 7.29.0 @@ -14336,50 +14247,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': - dependencies: - '@babel/core': 7.29.0 - '@docusaurus/babel': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/cssnano-preset': 3.9.2 - '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - cssnano: 6.1.2(postcss@8.5.9) - file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.4(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - null-loader: 4.0.1(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - postcss: 8.5.9 - postcss-loader: 7.3.4(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - postcss-preset-env: 10.5.0(postcss@8.5.9) - terser-webpack-plugin: 5.3.16(@swc/core@1.15.24)(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - webpack: 5.106.1(@swc/core@1.15.24)(esbuild@0.27.7) - webpackbar: 6.0.1(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - optionalDependencies: - '@docusaurus/faster': 3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7) - transitivePeerDependencies: - - '@parcel/css' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - csso - - esbuild - - lightningcss - - react - - react-dom - - supports-color - - typescript - - uglify-js - - webpack-cli - - '@docusaurus/core@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': + '@docusaurus/core@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: '@docusaurus/babel': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/bundler': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) @@ -14444,15 +14312,15 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/core@3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': + '@docusaurus/core@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/babel': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/babel': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/bundler': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/logger': 3.10.0 + '@docusaurus/mdx-loader': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.5) boxen: 6.2.1 chalk: 4.1.2 @@ -14478,12 +14346,12 @@ snapshots: react-dom: 19.2.5(react@19.2.5) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) react-router: 5.3.4(react@19.2.5) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.5))(react@19.2.5) react-router-dom: 5.3.4(react@19.2.5) semver: 7.7.4 - serve-handler: 6.1.6 + serve-handler: 6.1.7 tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 @@ -14491,8 +14359,9 @@ snapshots: webpack-bundle-analyzer: 4.10.2 webpack-dev-server: 5.2.2(debug@4.4.3)(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) webpack-merge: 6.0.1 + optionalDependencies: + '@docusaurus/faster': 3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7) transitivePeerDependencies: - - '@docusaurus/faster' - '@parcel/css' - '@rspack/core' - '@swc/core' @@ -14515,13 +14384,6 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.9) tslib: 2.8.1 - '@docusaurus/cssnano-preset@3.9.2': - dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.9) - postcss: 8.5.9 - postcss-sort-media-queries: 5.2.0(postcss@8.5.9) - tslib: 2.8.1 - '@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7)': dependencies: '@docusaurus/types': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -14585,41 +14447,6 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/mdx-loader@3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': - dependencies: - '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@mdx-js/mdx': 3.1.1 - '@slorber/remark-comment': 1.0.0 - escape-html: 1.0.3 - estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - fs-extra: 11.3.4 - image-size: 2.0.2 - mdast-util-mdx: 3.0.0 - mdast-util-to-string: 4.0.0 - react: 19.2.5 - react-dom: 19.2.5(react@19.2.5) - rehype-raw: 7.0.0 - remark-directive: 3.0.1 - remark-emoji: 4.0.1 - remark-frontmatter: 5.0.0 - remark-gfm: 4.0.1 - stringify-object: 3.3.0 - tslib: 2.8.1 - unified: 11.0.5 - unist-util-visit: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)) - vfile: 6.0.3 - webpack: 5.106.1(@swc/core@1.15.24)(esbuild@0.27.7) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - supports-color - - uglify-js - - webpack-cli - '@docusaurus/module-type-aliases@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@docusaurus/types': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -14638,37 +14465,61 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@docusaurus/plugin-client-redirects@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@types/history': 4.7.11 - '@types/react': 19.2.14 - '@types/react-router-config': 5.0.11 - '@types/react-router-dom': 5.3.3 + '@docusaurus/core': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/logger': 3.10.0 + '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + eta: 2.2.0 + fs-extra: 11.3.4 + lodash: 4.17.21 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)' - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' + tslib: 2.8.1 transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' + - '@parcel/css' + - '@rspack/core' - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug - esbuild + - lightningcss - supports-color + - typescript - uglify-js + - utf-8-validate - webpack-cli - '@docusaurus/plugin-client-redirects@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': + '@docusaurus/plugin-content-blog@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: '@docusaurus/core': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.10.0 + '@docusaurus/mdx-loader': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/plugin-content-docs': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-common': 3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/types': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils-validation': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - eta: 2.2.0 + cheerio: 1.0.0-rc.12 + combine-promises: 1.2.0 + feed: 4.2.2 fs-extra: 11.3.4 lodash: 4.17.21 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) + schema-dts: 1.1.5 + srcset: 4.0.0 tslib: 2.8.1 + unist-util-visit: 5.1.0 + utility-types: 3.11.0 + webpack: 5.106.1(@swc/core@1.15.24)(esbuild@0.27.7) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -14687,28 +14538,26 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': + '@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/core': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.10.0 '@docusaurus/mdx-loader': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/plugin-content-docs': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/module-type-aliases': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/theme-common': 3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/types': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/utils-validation': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - cheerio: 1.0.0-rc.12 + '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 - feed: 4.2.2 fs-extra: 11.3.4 + js-yaml: 4.1.0 lodash: 4.17.21 react: 19.2.5 react-dom: 19.2.5(react@19.2.5) schema-dts: 1.1.5 - srcset: 4.0.0 tslib: 2.8.1 - unist-util-visit: 5.1.0 utility-types: 3.11.0 webpack: 5.106.1(@swc/core@1.15.24)(esbuild@0.27.7) transitivePeerDependencies: @@ -14769,17 +14618,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': + '@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) - '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/core': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/logger': 3.10.0 + '@docusaurus/mdx-loader': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/module-type-aliases': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/theme-common': 3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/types': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.4 @@ -15151,13 +15000,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': + '@docusaurus/theme-common@3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/mdx-loader': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/module-type-aliases': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/plugin-content-docs': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/utils': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -15436,7 +15285,7 @@ snapshots: '@easyops-cn/docusaurus-search-local@0.55.1(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@docusaurus/theme-common@3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-docs': 3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(debug@4.4.3)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/theme-common': 3.10.0(@docusaurus/plugin-content-docs@3.10.0(@docusaurus/faster@3.10.0(@docusaurus/types@3.10.0(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5))(@rspack/core@1.7.11)(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/utils': 3.9.2(@swc/core@1.15.24)(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -15497,7 +15346,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.28.6 - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -16672,7 +16521,7 @@ snapshots: '@radix-ui/react-tabs@1.0.2(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-context': 1.0.0(react@19.2.5) '@radix-ui/react-direction': 1.0.0(react@19.2.5) @@ -17457,23 +17306,24 @@ snapshots: '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 - optional: true '@types/babel__generator@7.27.0': dependencies: '@babel/types': 7.29.0 - optional: true + + '@types/babel__helper-module-imports@7.18.3': + dependencies: + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 '@types/babel__template@7.4.4': dependencies: '@babel/parser': 7.29.2 '@babel/types': 7.29.0 - optional: true '@types/babel__traverse@7.28.0': dependencies: '@babel/types': 7.29.0 - optional: true '@types/body-parser@1.19.6': dependencies: @@ -18408,7 +18258,7 @@ snapshots: aria-hidden@1.2.6: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 aria-query@5.3.2: {} @@ -19166,8 +19016,6 @@ snapshots: dependencies: browserslist: 4.28.2 - core-js-pure@3.47.0: {} - core-js@3.47.0: {} core-util-is@1.0.3: {} @@ -20857,7 +20705,7 @@ snapshots: dir-glob: 3.0.1 fast-glob: 3.3.3 glob: 7.2.3 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -24380,7 +24228,7 @@ snapshots: react-focus-lock@2.13.7(@types/react@19.2.14)(react@19.2.5): dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.29.2 focus-lock: 1.3.6 prop-types: 15.8.1 react: 19.2.5 @@ -24415,12 +24263,6 @@ snapshots: react-simple-code-editor: 0.11.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5) unescape: 1.0.1 - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)): - dependencies: - '@babel/runtime': 7.29.2 - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' - webpack: 5.106.1(@swc/core@1.15.24)(esbuild@0.27.7) - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24)(esbuild@0.27.7)): dependencies: '@babel/runtime': 7.29.2 @@ -24449,7 +24291,7 @@ snapshots: react: 19.2.5 react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.5) react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.5) - tslib: 2.6.3 + tslib: 2.8.1 use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.5) use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.5) optionalDependencies: @@ -25095,16 +24937,6 @@ snapshots: serialize-javascript@7.0.4: {} - serve-handler@6.1.6: - dependencies: - bytes: 3.0.0 - content-disposition: 0.5.2 - mime-types: 2.1.18 - minimatch: 3.1.2 - path-is-inside: 1.0.2 - path-to-regexp: 3.3.0 - range-parser: 1.2.0 - serve-handler@6.1.7: dependencies: bytes: 3.0.0 diff --git a/scripts/__tests__/integration/ascii-only.test.mjs b/scripts/__tests__/integration/ascii-only.test.mjs index 7817f2a8962..ef243de03b4 100644 --- a/scripts/__tests__/integration/ascii-only.test.mjs +++ b/scripts/__tests__/integration/ascii-only.test.mjs @@ -10,7 +10,7 @@ import fs from 'fs-extra'; import {glob} from 'glob'; import {describe, expect, test} from 'vitest'; -import {packagesManager} from '../../shared/packagesManager.js'; +import {packagesManager} from '../../shared/packagesManager.mjs'; describe('prod ascii-only check', () => { for (const pkg of packagesManager.getPublicPackages()) { diff --git a/scripts/__tests__/integration/prepare-release.test.mjs b/scripts/__tests__/integration/prepare-release.test.mjs index 6e474353f54..4ba6bb95786 100644 --- a/scripts/__tests__/integration/prepare-release.test.mjs +++ b/scripts/__tests__/integration/prepare-release.test.mjs @@ -11,7 +11,7 @@ import {glob} from 'glob'; import path from 'node:path'; import {describe, expect, test} from 'vitest'; -import {packagesManager} from '../../shared/packagesManager.js'; +import {packagesManager} from '../../shared/packagesManager.mjs'; import {describeExample} from './utils.mjs'; describe('prepare-release tests', () => { diff --git a/scripts/__tests__/integration/setup.mjs b/scripts/__tests__/integration/setup.mjs index 36c7fa83fd1..8f885bdeb39 100644 --- a/scripts/__tests__/integration/setup.mjs +++ b/scripts/__tests__/integration/setup.mjs @@ -9,9 +9,9 @@ import fs from 'fs-extra'; import path from 'node:path'; -import {exec} from '../../shared/childProcess.js'; -import {packagesManager} from '../../shared/packagesManager.js'; -import readMonorepoPackageJson from '../../shared/readMonorepoPackageJson.js'; +import {exec} from '../../shared/childProcess.mjs'; +import {packagesManager} from '../../shared/packagesManager.mjs'; +import readMonorepoPackageJson from '../../shared/readMonorepoPackageJson.mjs'; const {version} = readMonorepoPackageJson(); @@ -28,7 +28,6 @@ export default async function () { ), ); if (!needsBuild) { - // eslint-disable-next-line no-console console.log( '\nWARNING: Running integration tests with cached build artifacts from a previous `pnpm run prepare-release`.', ); diff --git a/scripts/__tests__/integration/utils.mjs b/scripts/__tests__/integration/utils.mjs index 71223c3561f..dc4b3d82bf7 100644 --- a/scripts/__tests__/integration/utils.mjs +++ b/scripts/__tests__/integration/utils.mjs @@ -10,9 +10,9 @@ import fs from 'fs-extra'; import path from 'node:path'; import {beforeAll, describe, expect, test} from 'vitest'; -import {exec} from '../../shared/childProcess.js'; -import {packagesManager} from '../../shared/packagesManager.js'; -import readMonorepoPackageJson from '../../shared/readMonorepoPackageJson.js'; +import {exec} from '../../shared/childProcess.mjs'; +import {packagesManager} from '../../shared/packagesManager.mjs'; +import readMonorepoPackageJson from '../../shared/readMonorepoPackageJson.mjs'; const monorepoVersion = readMonorepoPackageJson().version; diff --git a/scripts/__tests__/unit/childProcess.test.ts b/scripts/__tests__/unit/childProcess.test.ts index bc3734a8262..8eea9c86cff 100644 --- a/scripts/__tests__/unit/childProcess.test.ts +++ b/scripts/__tests__/unit/childProcess.test.ts @@ -8,8 +8,7 @@ import {describe, expect, it} from 'vitest'; -// eslint-disable-next-line @typescript-eslint/no-require-imports -const {exec, spawn} = require('../../shared/childProcess'); +import {exec, spawn} from '../../shared/childProcess.mjs'; describe('childProcess', () => { describe('exec', () => { diff --git a/scripts/build.mjs b/scripts/build.mjs index 63573fbd0d2..af2e4723ea7 100644 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -17,20 +17,15 @@ import terser from '@rollup/plugin-terser'; import fs from 'fs-extra'; import {glob} from 'glob'; import minimist from 'minimist'; -import {createRequire} from 'module'; import path from 'path'; import {rollup} from 'rollup'; -import {fileURLToPath} from 'url'; -import {exec} from './shared/childProcess.js'; -import {packagesManager} from './shared/packagesManager.js'; -import npmToWwwName from './www/npmToWwwName.js'; +import transformErrorMessages from './error-codes/transform-error-messages.mjs'; +import {exec} from './shared/childProcess.mjs'; +import {packagesManager} from './shared/packagesManager.mjs'; +import npmToWwwName from './www/npmToWwwName.mjs'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// Create require for loading CJS modules -const require = createRequire(import.meta.url); +const __dirname = import.meta.dirname; const argv = minimist(process.argv.slice(2)); @@ -163,7 +158,7 @@ function getExtension(format) { * @param {boolean} isProd * @param {'cjs'|'esm'} format * @param {string} version - * @param {import('./shared/PackageMetadata.js').PackageMetadata} pkg + * @param {import('./shared/PackageMetadata.mjs').PackageMetadata} pkg * @returns {Promise>} the exports of the built module */ async function build( @@ -277,10 +272,7 @@ async function build( exclude: '**/node_modules/**', extensions, plugins: [ - [ - require('./error-codes/transform-error-messages'), - {extractCodes, noMinify: !isProd}, - ], + [transformErrorMessages, {extractCodes, noMinify: !isProd}], '@babel/plugin-transform-optional-catch-binding', ], presets: [ diff --git a/scripts/check-flow-types.js b/scripts/check-flow-types.mjs similarity index 86% rename from scripts/check-flow-types.js rename to scripts/check-flow-types.mjs index b073ad27c51..7d24404c24a 100644 --- a/scripts/check-flow-types.js +++ b/scripts/check-flow-types.mjs @@ -6,13 +6,11 @@ * */ -'use strict'; - -const {spawn} = require('child_process'); +import {spawn} from 'node:child_process'; async function runFlow(renderer, args) { return new Promise((resolve) => { - let cmd = __dirname + '/../node_modules/.bin/flow'; + let cmd = import.meta.dirname + '/../node_modules/.bin/flow'; if (process.platform === 'win32') { cmd = cmd.replace(/\//g, '\\') + '.cmd'; } diff --git a/scripts/clean.js b/scripts/clean.mjs similarity index 74% rename from scripts/clean.js rename to scripts/clean.mjs index 0d4db110a03..e12d4e6910e 100644 --- a/scripts/clean.js +++ b/scripts/clean.mjs @@ -6,11 +6,10 @@ * */ -'use strict'; +import fs from 'fs-extra'; +import path from 'node:path'; -const fs = require('fs-extra'); -const path = require('node:path'); -const {packagesManager} = require('./shared/packagesManager'); +import {packagesManager} from './shared/packagesManager.mjs'; fs.removeSync(path.resolve(`./npm`)); fs.removeSync(path.resolve(`./.ts-temp`)); diff --git a/scripts/create-docs.js b/scripts/create-docs.mjs similarity index 88% rename from scripts/create-docs.js rename to scripts/create-docs.mjs index 02ac0c8b199..b70d993f793 100644 --- a/scripts/create-docs.js +++ b/scripts/create-docs.mjs @@ -6,11 +6,11 @@ * */ // @ts-check -'use strict'; -const fs = require('fs-extra'); -const path = require('node:path'); -const {packagesManager} = require('./shared/packagesManager'); +import fs from 'fs-extra'; +import path from 'node:path'; + +import {packagesManager} from './shared/packagesManager.mjs'; function readmeTemplate(npmName, directoryName, description) { const apiModuleName = directoryName.replace(/-/g, '_'); diff --git a/scripts/create-www-stubs.js b/scripts/create-www-stubs.mjs similarity index 83% rename from scripts/create-www-stubs.js rename to scripts/create-www-stubs.mjs index b4590947302..e679754207a 100644 --- a/scripts/create-www-stubs.js +++ b/scripts/create-www-stubs.mjs @@ -6,15 +6,15 @@ * */ // @ts-check -'use strict'; -const fs = require('fs-extra'); -const path = require('node:path'); -const {packagesManager} = require('./shared/packagesManager'); -const npmToWwwName = require('./www/npmToWwwName'); +import fs from 'fs-extra'; +import path from 'node:path'; + +import {packagesManager} from './shared/packagesManager.mjs'; +import npmToWwwName from './www/npmToWwwName.mjs'; const headerTemplate = fs.readFileSync( - path.resolve(__dirname, 'www', 'headerTemplate.js'), + path.resolve(import.meta.dirname, 'www', 'headerTemplate.js'), 'utf8', ); diff --git a/scripts/error-codes/ErrorMap.js b/scripts/error-codes/ErrorMap.mjs similarity index 96% rename from scripts/error-codes/ErrorMap.js rename to scripts/error-codes/ErrorMap.mjs index 969bd9939c5..5e3451a1a28 100644 --- a/scripts/error-codes/ErrorMap.js +++ b/scripts/error-codes/ErrorMap.mjs @@ -5,13 +5,12 @@ * LICENSE file in the root directory of this source tree. * */ -'use strict'; // @ts-check /** * Data structure to manage reading from and writing to codes.json */ -class ErrorMap { +export default class ErrorMap { /** * The map of error code numbers (as String(number)) to the error messages * @@ -21,7 +20,7 @@ class ErrorMap { /** * The map of error messages to the error code numbers (as integers) * - * @type {Record} */ inverseErrorMap = {}; /** @@ -92,5 +91,3 @@ class ErrorMap { } } } - -module.exports = ErrorMap; diff --git a/scripts/error-codes/__tests__/unit/transform-error-messages.test.ts b/scripts/error-codes/__tests__/unit/transform-error-messages.test.ts index fb76b08a98c..13a8493f057 100644 --- a/scripts/error-codes/__tests__/unit/transform-error-messages.test.ts +++ b/scripts/error-codes/__tests__/unit/transform-error-messages.test.ts @@ -11,7 +11,7 @@ import * as fs from 'fs-extra'; import * as path from 'node:path'; import {describe, expect, it} from 'vitest'; -import transformErrorMessages from '../../transform-error-messages'; +import transformErrorMessages from '../../transform-error-messages.mjs'; const prettierConfig = prettier.resolveConfig(__filename) || {}; diff --git a/scripts/error-codes/evalToString.js b/scripts/error-codes/evalToString.mjs similarity index 84% rename from scripts/error-codes/evalToString.js rename to scripts/error-codes/evalToString.mjs index f61ff535eba..b5c2a076305 100644 --- a/scripts/error-codes/evalToString.js +++ b/scripts/error-codes/evalToString.mjs @@ -6,9 +6,7 @@ * */ -'use strict'; - -function evalToString(ast /* : Object */) /* : string */ { +export default function evalToString(ast /* : Object */) /* : string */ { switch (ast.type) { case 'StringLiteral': case 'Literal': // ESLint @@ -22,5 +20,3 @@ function evalToString(ast /* : Object */) /* : string */ { throw new Error('Unsupported type ' + ast.type); } } - -module.exports = evalToString; diff --git a/scripts/error-codes/invertObject.js b/scripts/error-codes/invertObject.mjs similarity index 83% rename from scripts/error-codes/invertObject.js rename to scripts/error-codes/invertObject.mjs index 1029e6c25ac..63722c33ba8 100644 --- a/scripts/error-codes/invertObject.js +++ b/scripts/error-codes/invertObject.mjs @@ -6,8 +6,6 @@ * */ -'use strict'; - /*:: import type { ErrorMap } from './Types' */ /** @@ -16,7 +14,9 @@ * into * { 0: 'MUCH ERROR', 1: 'SUCH WRONG' } */ -function invertObject(targetObj /* : ErrorMap */) /* : ErrorMap */ { +export default function invertObject( + targetObj /* : ErrorMap */, +) /* : ErrorMap */ { const result = {}; const mapKeys = Object.keys(targetObj); @@ -28,5 +28,3 @@ function invertObject(targetObj /* : ErrorMap */) /* : ErrorMap */ { return result; } - -module.exports = invertObject; diff --git a/scripts/error-codes/transform-error-messages.js b/scripts/error-codes/transform-error-messages.mjs similarity index 92% rename from scripts/error-codes/transform-error-messages.js rename to scripts/error-codes/transform-error-messages.mjs index 164da0e47d1..939e6cd4f01 100644 --- a/scripts/error-codes/transform-error-messages.js +++ b/scripts/error-codes/transform-error-messages.mjs @@ -6,21 +6,19 @@ * */ -'use strict'; -// @ts-check +import * as helperModuleImports from '@babel/helper-module-imports'; +import prettier from '@prettier/sync'; +import fs from 'fs-extra'; -const fs = require('fs-extra'); -const ErrorMap = require('./ErrorMap'); -const evalToString = require('./evalToString'); -const helperModuleImports = require('@babel/helper-module-imports'); -const prettier = require('@prettier/sync'); +import ErrorMap from './ErrorMap.mjs'; +import evalToString from './evalToString.mjs'; /** @type {Map} */ const errorMaps = new Map(); /** * Get a module-global ErrorMap instance so that all instances of this * plugin are working with the same data structure. Typically there is - * at most one entry in this map (`${__dirname}/codes.json`). + * at most one entry in this map (`${import.meta.dirname}/codes.json`). * * @param {string} filepath * @returns {ErrorMap} @@ -29,7 +27,7 @@ function getErrorMap(filepath) { let errorMap = errorMaps.get(filepath); if (!errorMap) { const prettierConfig = { - ...(prettier.resolveConfig(__filename) || {}), + ...(prettier.resolveConfig(import.meta.filename) || {}), filepath, }; errorMap = new ErrorMap(fs.readJsonSync(filepath), (newErrorMap) => @@ -70,10 +68,10 @@ const invariantExpressions = [ * @param {Partial} opts * @returns {Promise} */ -module.exports = function (babel, opts) { +export default function transformErrorMessages(babel, opts) { const t = babel.types; const errorMap = getErrorMap( - (opts && opts.errorCodesPath) || `${__dirname}/codes.json`, + (opts && opts.errorCodesPath) || `${import.meta.dirname}/codes.json`, ); return { visitor: { @@ -199,4 +197,4 @@ module.exports = function (babel, opts) { }, }, }; -}; +} diff --git a/scripts/find-all-pr-reviewers.mjs b/scripts/find-all-pr-reviewers.mjs index dff8a853dfa..8026b2abd5d 100644 --- a/scripts/find-all-pr-reviewers.mjs +++ b/scripts/find-all-pr-reviewers.mjs @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. * */ -/* eslint-disable no-console */ + // @ts-check /** diff --git a/scripts/format-reviewers-markdown.mjs b/scripts/format-reviewers-markdown.mjs index c66574f708c..8ad910c4ac8 100644 --- a/scripts/format-reviewers-markdown.mjs +++ b/scripts/format-reviewers-markdown.mjs @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. * */ -/* eslint-disable no-console */ /** * This script was used to seed the initial data for diff --git a/scripts/generate-team-data.mjs b/scripts/generate-team-data.mjs index ad3ece0a32c..effbe2b19fa 100644 --- a/scripts/generate-team-data.mjs +++ b/scripts/generate-team-data.mjs @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. * */ -/* eslint-disable no-console */ + // @ts-check /** diff --git a/scripts/lint-flow-types.js b/scripts/lint-flow-types.mjs similarity index 95% rename from scripts/lint-flow-types.js rename to scripts/lint-flow-types.mjs index dced0765f6e..f69dcbe4d7a 100644 --- a/scripts/lint-flow-types.js +++ b/scripts/lint-flow-types.mjs @@ -6,13 +6,13 @@ * */ // @ts-check -'use strict'; -const fs = require('fs-extra'); -const ts = require('typescript'); -const tsMorph = require('ts-morph'); -const hermesParser = require('hermes-parser'); -const {packagesManager} = require('./shared/packagesManager'); +import fs from 'fs-extra'; +import * as hermesParser from 'hermes-parser'; +import * as tsMorph from 'ts-morph'; +import ts from 'typescript'; + +import {packagesManager} from './shared/packagesManager.mjs'; const pretty = process.env.CI !== 'true'; diff --git a/scripts/npm/increment-version.js b/scripts/npm/increment-version.mjs similarity index 91% rename from scripts/npm/increment-version.js rename to scripts/npm/increment-version.mjs index c588d652dc2..fa801b0bd96 100644 --- a/scripts/npm/increment-version.js +++ b/scripts/npm/increment-version.mjs @@ -8,10 +8,11 @@ * */ -'use strict'; +import minimist from 'minimist'; -const {spawn} = require('../shared/childProcess'); -const argv = require('minimist')(process.argv.slice(2)); +import {spawn} from '../shared/childProcess.mjs'; + +const argv = minimist(process.argv.slice(2)); const increment = argv.i || process.env.INCREMENT; const channel = argv.channel || process.env.CHANNEL; diff --git a/scripts/npm/npm-init.js b/scripts/npm/npm-init.js deleted file mode 100644 index b5a588e6127..00000000000 --- a/scripts/npm/npm-init.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ -// @ts-check -// npm-init can not use strict mode because PromZard is very strange -// and does not simply require this module -/* eslint-disable strict */ -/* eslint-disable sort-keys-fix/sort-keys-fix */ - -const path = require('node:path'); -const npmToWwwName = require('../www/npmToWwwName'); -const argv = require('minimist')(process.argv.slice(2)); -const {PackageMetadata} = require('../shared/PackageMetadata'); - -const lexicalPkg = new PackageMetadata('packages/lexical/package.json'); - -// NOTE: This script is legacy from when npm workspaces were used. -// With pnpm, create packages manually using mkdir and a package.json template. -// See the maintainers guide for the current recommended workflow. -const workspace = argv.w || argv.workspace; -if ( - !Array.isArray(argv._) || - argv._.join(' ') !== 'init' || - typeof workspace !== 'string' || - !/^packages\/[^/]+$/.test(workspace) -) { - throw new Error( - 'Legacy script: npm init -w is from npm workspaces era. With pnpm, create packages manually.', - ); -} -const pkgDirName = path.basename(workspace); - -module.exports = { - name: pkgDirName.replace(/^lexical-/, '@lexical/'), - description: '', - keywords: ['lexical', 'editor'], - version: lexicalPkg.packageJson.version, - license: lexicalPkg.packageJson.license, - repository: {...lexicalPkg.packageJson.repository, directory: workspace}, - main: `${npmToWwwName(pkgDirName)}.js`, - types: 'index.d.ts', -}; diff --git a/scripts/npm/postversion.js b/scripts/npm/postversion.mjs similarity index 96% rename from scripts/npm/postversion.js rename to scripts/npm/postversion.mjs index 0b4fbae172d..ee7e2a5d065 100644 --- a/scripts/npm/postversion.js +++ b/scripts/npm/postversion.mjs @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env node /** * Copyright (c) Meta Platforms, Inc. and affiliates. @@ -8,9 +8,7 @@ * */ -'use strict'; - -const {spawn} = require('../shared/childProcess'); +import {spawn} from '../shared/childProcess.mjs'; const {npm_package_version, CHANNEL, GITHUB_OUTPUT} = process.env; diff --git a/scripts/npm/prepare-release.js b/scripts/npm/prepare-release.mjs similarity index 84% rename from scripts/npm/prepare-release.js rename to scripts/npm/prepare-release.mjs index f03541ef622..4a37be35924 100644 --- a/scripts/npm/prepare-release.js +++ b/scripts/npm/prepare-release.mjs @@ -8,14 +8,14 @@ * */ -'use strict'; +import fs from 'fs-extra'; +import {glob} from 'glob'; +import path from 'node:path'; -const fs = require('fs-extra'); -const glob = require('glob'); -const path = require('node:path'); -const {packagesManager} = require('../shared/packagesManager'); +import {packagesManager} from '../shared/packagesManager.mjs'; +import readMonorepoPackageJson from '../shared/readMonorepoPackageJson.mjs'; -const monorepoPackageJson = require('../shared/readMonorepoPackageJson')(); +const monorepoPackageJson = readMonorepoPackageJson(); const version = monorepoPackageJson.version; @@ -26,7 +26,7 @@ const version = monorepoPackageJson.version; * - The package.json and README.md from pkg * - The LICENSE file from the monorepo root * - * @param {import('../shared/PackageMetadata').PackageMetadata} pkg the directory name of the package to process (e.g. 'lexical-rich-text') + * @param {import('../shared/PackageMetadata.mjs').PackageMetadata} pkg the directory name of the package to process (e.g. 'lexical-rich-text') */ function preparePackage(pkg) { console.log( diff --git a/scripts/npm/release.js b/scripts/npm/release.mjs similarity index 89% rename from scripts/npm/release.js rename to scripts/npm/release.mjs index 1e6ddcc7e92..2989ea2303e 100644 --- a/scripts/npm/release.js +++ b/scripts/npm/release.mjs @@ -8,12 +8,13 @@ * */ -'use strict'; +import minimist from 'minimist'; +import readline from 'node:readline'; -const readline = require('readline'); -const {exec} = require('../shared/childProcess'); -const {packagesManager} = require('../shared/packagesManager'); -const argv = require('minimist')(process.argv.slice(2)); +import {exec} from '../shared/childProcess.mjs'; +import {packagesManager} from '../shared/packagesManager.mjs'; + +const argv = minimist(process.argv.slice(2)); const nonInteractive = argv['non-interactive']; const dryRun = argv['dry-run']; diff --git a/scripts/npm/update-changelog.js b/scripts/npm/update-changelog.mjs similarity index 93% rename from scripts/npm/update-changelog.js rename to scripts/npm/update-changelog.mjs index 0afd810040a..5a3090cc77c 100644 --- a/scripts/npm/update-changelog.js +++ b/scripts/npm/update-changelog.mjs @@ -8,9 +8,7 @@ * */ -'use strict'; - -const {exec} = require('../shared/childProcess'); +import {exec} from '../shared/childProcess.mjs'; const isPrerelease = process.env.npm_package_version.indexOf('-') !== -1; diff --git a/scripts/override-react.js b/scripts/override-react.mjs similarity index 87% rename from scripts/override-react.js rename to scripts/override-react.mjs index 237797d1260..013abdae760 100644 --- a/scripts/override-react.js +++ b/scripts/override-react.mjs @@ -6,12 +6,14 @@ * */ // @ts-check -'use strict'; -const glob = require('glob'); -const fs = require('fs-extra'); -const argv = require('minimist')(process.argv.slice(2)); -const {exec} = require('./shared/childProcess'); +import fs from 'fs-extra'; +import {glob} from 'glob'; +import minimist from 'minimist'; + +import {exec} from './shared/childProcess.mjs'; + +const argv = minimist(process.argv.slice(2)); async function main() { const {version} = argv; diff --git a/scripts/shared/PackageMetadata.js b/scripts/shared/PackageMetadata.mjs similarity index 97% rename from scripts/shared/PackageMetadata.js rename to scripts/shared/PackageMetadata.mjs index ec43a962420..308aa5d5454 100644 --- a/scripts/shared/PackageMetadata.js +++ b/scripts/shared/PackageMetadata.mjs @@ -6,11 +6,11 @@ * */ // @ts-check -'use strict'; -const path = require('node:path'); -const fs = require('fs-extra'); -const npmToWwwName = require('../www/npmToWwwName'); +import fs from 'fs-extra'; +import path from 'node:path'; + +import npmToWwwName from '../www/npmToWwwName.mjs'; /** * @typedef {Object} ModuleBuildDefinition @@ -55,7 +55,7 @@ function readableName(wwwName) { /** * Metadata abstraction for a package.json file */ -class PackageMetadata { +export class PackageMetadata { /** @type {string} the path to the package.json file */ packageJsonPath; /** @type {Record} the parsed package.json */ @@ -252,5 +252,3 @@ class PackageMetadata { fs.writeJsonSync(this.packageJsonPath, this.packageJson, {spaces: 2}); } } - -exports.PackageMetadata = PackageMetadata; diff --git a/scripts/shared/childProcess.js b/scripts/shared/childProcess.mjs similarity index 75% rename from scripts/shared/childProcess.js rename to scripts/shared/childProcess.mjs index 3a057115ca7..06bac202151 100644 --- a/scripts/shared/childProcess.js +++ b/scripts/shared/childProcess.mjs @@ -6,12 +6,10 @@ * */ -'use strict'; +import {exec as execCb, spawn as spawnCb} from 'node:child_process'; +import {promisify} from 'node:util'; -const {exec: execCb, spawn: spawnCb} = require('child_process'); -const {promisify} = require('util'); - -const exec = promisify(execCb); +export const exec = promisify(execCb); /** * @param {string} command @@ -19,7 +17,7 @@ const exec = promisify(execCb); * @param {import('child_process').SpawnOptions} [options] * @returns {Promise} */ -function spawn(command, args, options) { +export function spawn(command, args, options) { return new Promise((resolve, reject) => { const child = spawnCb(command, args, options); child.on('close', (code) => { @@ -34,6 +32,3 @@ function spawn(command, args, options) { child.on('error', reject); }); } - -exports.exec = exec; -exports.spawn = spawn; diff --git a/scripts/shared/packagesManager.js b/scripts/shared/packagesManager.mjs similarity index 90% rename from scripts/shared/packagesManager.js rename to scripts/shared/packagesManager.mjs index 412a68b7bc0..382e40642ff 100644 --- a/scripts/shared/packagesManager.js +++ b/scripts/shared/packagesManager.mjs @@ -6,12 +6,15 @@ * */ // @ts-check -'use strict'; -const path = require('node:path'); -const glob = require('glob'); +import {glob} from 'glob'; +import path from 'node:path'; +import {fileURLToPath} from 'node:url'; -const {PackageMetadata} = require('./PackageMetadata'); +import {PackageMetadata} from './PackageMetadata.mjs'; + +// Use import.meta.url (not import.meta.dirname) for jiti v1 compatibility +const __dirname = path.dirname(fileURLToPath(import.meta.url)); /** * @@ -123,7 +126,7 @@ class PackagesManager { } } -exports.packagesManager = new PackagesManager( +export const packagesManager = new PackagesManager( glob.sync( path.resolve( path.dirname(path.dirname(__dirname)), diff --git a/scripts/shared/readMonorepoPackageJson.js b/scripts/shared/readMonorepoPackageJson.js deleted file mode 100644 index b905b31eb22..00000000000 --- a/scripts/shared/readMonorepoPackageJson.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ -// @ts-check -'use strict'; - -const fs = require('fs-extra'); -const path = require('node:path'); - -module.exports = function readMonorepoPackageJson() { - return fs.readJsonSync(path.resolve(__dirname, '../../package.json')); -}; diff --git a/scripts/shared/readMonorepoPackageJson.mjs b/scripts/shared/readMonorepoPackageJson.mjs new file mode 100644 index 00000000000..d0b679e0021 --- /dev/null +++ b/scripts/shared/readMonorepoPackageJson.mjs @@ -0,0 +1,17 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ +// @ts-check + +import fs from 'fs-extra'; +import path from 'node:path'; + +export default function readMonorepoPackageJson() { + return fs.readJsonSync( + path.resolve(import.meta.dirname, '../../package.json'), + ); +} diff --git a/scripts/update-examples.mjs b/scripts/update-examples.mjs index 827ef820015..13b816d0fce 100644 --- a/scripts/update-examples.mjs +++ b/scripts/update-examples.mjs @@ -7,15 +7,15 @@ */ // @ts-check -/* eslint-disable no-console */ + import {sync as globSync} from 'glob'; import minimist from 'minimist'; import * as fs from 'node:fs'; import * as path from 'node:path'; import {gt as semverGt} from 'semver'; -import {spawn} from './shared/childProcess.js'; -import {PackageMetadata} from './shared/PackageMetadata.js'; +import {spawn} from './shared/childProcess.mjs'; +import {PackageMetadata} from './shared/PackageMetadata.mjs'; async function main() { const argv = minimist(process.argv.slice(2)); diff --git a/scripts/update-flowconfig.js b/scripts/update-flowconfig.mjs similarity index 90% rename from scripts/update-flowconfig.js rename to scripts/update-flowconfig.mjs index 81c82d4c6c6..ab54c123ba1 100644 --- a/scripts/update-flowconfig.js +++ b/scripts/update-flowconfig.mjs @@ -6,15 +6,15 @@ * */ // @ts-check -'use strict'; -const fs = require('fs-extra'); -const path = require('node:path'); -const {packagesManager} = require('./shared/packagesManager'); -const npmToWwwName = require('./www/npmToWwwName'); +import fs from 'fs-extra'; +import path from 'node:path'; + +import {packagesManager} from './shared/packagesManager.mjs'; +import npmToWwwName from './www/npmToWwwName.mjs'; const headerTemplate = fs.readFileSync( - path.resolve(__dirname, 'www', 'headerTemplate.js'), + path.resolve(import.meta.dirname, 'www', 'headerTemplate.js'), 'utf8', ); diff --git a/scripts/update-tsconfig.mjs b/scripts/update-tsconfig.mjs index a00ff07ee60..0477c09f9fe 100644 --- a/scripts/update-tsconfig.mjs +++ b/scripts/update-tsconfig.mjs @@ -11,7 +11,7 @@ import {globSync} from 'glob'; import path from 'node:path'; import prettier from 'prettier'; -import {packagesManager} from './shared/packagesManager.js'; +import {packagesManager} from './shared/packagesManager.mjs'; /** * @typedef {Object} UpdateTsconfigOptions diff --git a/scripts/updateVersion.js b/scripts/updateVersion.mjs similarity index 94% rename from scripts/updateVersion.js rename to scripts/updateVersion.mjs index 1167ce9e529..0d245b86b41 100644 --- a/scripts/updateVersion.js +++ b/scripts/updateVersion.mjs @@ -6,16 +6,16 @@ * */ -'use strict'; +import fs from 'fs-extra'; +import {glob} from 'glob'; +import path from 'node:path'; -const fs = require('fs-extra'); -const path = require('path'); -const glob = require('glob'); -const {packagesManager} = require('./shared/packagesManager'); -const {PackageMetadata} = require('./shared/PackageMetadata'); -const npmToWwwName = require('./www/npmToWwwName'); +import {PackageMetadata} from './shared/PackageMetadata.mjs'; +import {packagesManager} from './shared/packagesManager.mjs'; +import readMonorepoPackageJson from './shared/readMonorepoPackageJson.mjs'; +import npmToWwwName from './www/npmToWwwName.mjs'; -const monorepoPackageJson = require('./shared/readMonorepoPackageJson')(); +const monorepoPackageJson = readMonorepoPackageJson(); // get version from monorepo package.json version const version = monorepoPackageJson.version; diff --git a/scripts/validate-tsc-types.js b/scripts/validate-tsc-types.mjs similarity index 95% rename from scripts/validate-tsc-types.js rename to scripts/validate-tsc-types.mjs index c2bdd350dce..b8f97f61bb9 100644 --- a/scripts/validate-tsc-types.js +++ b/scripts/validate-tsc-types.mjs @@ -6,11 +6,10 @@ * */ // @ts-check -'use strict'; -const fs = require('fs-extra'); -const glob = require('glob'); -const ts = require('typescript'); +import fs from 'fs-extra'; +import {glob} from 'glob'; +import ts from 'typescript'; const pretty = process.env.CI !== 'true'; diff --git a/scripts/www/npmToWwwName.js b/scripts/www/npmToWwwName.mjs similarity index 95% rename from scripts/www/npmToWwwName.js rename to scripts/www/npmToWwwName.mjs index 6269640b963..8c3bbbd129b 100644 --- a/scripts/www/npmToWwwName.js +++ b/scripts/www/npmToWwwName.mjs @@ -5,7 +5,6 @@ * LICENSE file in the root directory of this source tree. * */ -'use strict'; /** * Converts a package name in the npm name convention to the www @@ -18,7 +17,7 @@ * @param {boolean} [forTypes] true to match the name that typescript will produce * @returns {string} the name of the package in www format */ -module.exports = function npmToWwwName(name) { +export default function npmToWwwName(name) { let parts = name.replace(/^@/, '').split(/\//g); // Handle the @lexical/react/FlatNameSpace scenario @@ -40,4 +39,4 @@ module.exports = function npmToWwwName(name) { : part.charAt(0).toUpperCase() + part.slice(1), ) .join(''); -}; +} diff --git a/scripts/www/rewriteImports.js b/scripts/www/rewriteImports.mjs similarity index 81% rename from scripts/www/rewriteImports.js rename to scripts/www/rewriteImports.mjs index 4afc44b5304..e45ad91a460 100644 --- a/scripts/www/rewriteImports.js +++ b/scripts/www/rewriteImports.mjs @@ -6,13 +6,12 @@ * */ -'use strict'; +import fs from 'fs-extra'; +import {glob} from 'glob'; +import path from 'node:path'; -const fs = require('fs-extra'); -const glob = require('glob'); -const path = require('node:path'); -const {packagesManager} = require('../shared/packagesManager'); -const transformFlowFileContents = require('./transformFlowFileContents'); +import {packagesManager} from '../shared/packagesManager.mjs'; +import transformFlowFileContents from './transformFlowFileContents.mjs'; // This script attempts to find all Flow definition modules, and makes // them compatible with www. Specifically, it finds any imports that diff --git a/scripts/www/transformFlowFileContents.js b/scripts/www/transformFlowFileContents.mjs similarity index 90% rename from scripts/www/transformFlowFileContents.js rename to scripts/www/transformFlowFileContents.mjs index 98f601fb39b..f5d1cf41d00 100644 --- a/scripts/www/transformFlowFileContents.js +++ b/scripts/www/transformFlowFileContents.mjs @@ -6,12 +6,11 @@ * */ -'use strict'; +import {t, transform} from 'hermes-transform'; +import prettier from 'prettier'; -const {packagesManager} = require('../shared/packagesManager'); -const npmToWwwName = require('./npmToWwwName'); -const {t, transform} = require('hermes-transform'); -const prettier = require('prettier'); +import {packagesManager} from '../shared/packagesManager.mjs'; +import npmToWwwName from './npmToWwwName.mjs'; const wwwMappings = Object.fromEntries( packagesManager @@ -22,7 +21,7 @@ const wwwMappings = Object.fromEntries( ); const prettierConfig = prettier - .resolveConfig(__filename) + .resolveConfig(import.meta.filename) .then((cfg) => cfg || {}); /** @@ -56,7 +55,7 @@ function unwrapCode(code) { * @param {string} source * @returns {Promise} transformed source */ -module.exports = async function transformFlowFileContents(source) { +export default async function transformFlowFileContents(source) { return unwrapCode( await transform( wrapCode(source), @@ -99,4 +98,4 @@ module.exports = async function transformFlowFileContents(source) { await prettierConfig, ), ); -}; +} diff --git a/tsconfig.json b/tsconfig.json index 588a7e93c77..72f50775f6d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -291,7 +291,8 @@ "**/dist/**", "**/npm/**", "**/node_modules/**", - "./packages/lexical-devtools/**" + "./packages/lexical-devtools/**", + "./packages/lexical-website/**" ], "typedocOptions": {"logLevel": "Verbose"}, "ts-node": {"require": ["tsconfig-paths/register"], "transpileOnly": true}