Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/call-core-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion .github/workflows/call-e2e-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
11 changes: 3 additions & 8 deletions babel.config.js → babel.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
10 changes: 1 addition & 9 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
1 change: 1 addition & 0 deletions libdefs/globals.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
declare module '*.css';
declare module '*.jpg';
declare module '*.jpeg';
declare module '*.gif';
Expand Down
35 changes: 19 additions & 16 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions packages/lexical-devtools/wxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 2 additions & 4 deletions packages/lexical-playground/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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: {
Expand Down Expand Up @@ -51,7 +49,7 @@ export default defineConfig(({mode}) => ({
...(mode !== 'production'
? [
[
require('../../scripts/error-codes/transform-error-messages'),
transformErrorMessages,
{
noMinify: true,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Loading