From b56723b5af9b6c5fc52f038c8723d21b03331517 Mon Sep 17 00:00:00 2001 From: lizschwab Date: Thu, 12 Nov 2026 09:54:43 -0800 Subject: [PATCH 1/5] feat: Updated field-date to ESM --- eslint.config.mjs | 1 + packages/plugins/field-date/package.json | 17 ++++++++++++++--- packages/plugins/field-date/src/field_date.ts | 2 +- packages/plugins/field-date/src/index.ts | 2 +- .../field-date/test/field_date_test.mocha.js | 4 ++-- packages/plugins/field-date/test/index.ts | 2 +- packages/plugins/field-date/tsconfig.json | 10 ++-------- 7 files changed, 22 insertions(+), 16 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 84e32d76f49..a51a3be7a6a 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -420,6 +420,7 @@ export default defineConfig( 'packages/plugins/dev-tools/**', 'packages/plugins/field-colour/**', 'packages/plugins/field-colour-hsv-sliders/**', + 'packages/plugins/field-date/**', 'packages/plugins/field-grid-dropdown/**', 'packages/plugins/modal/**', 'packages/plugins/theme-modern/**', diff --git a/packages/plugins/field-date/package.json b/packages/plugins/field-date/package.json index 54687bea681..bd022234af1 100644 --- a/packages/plugins/field-date/package.json +++ b/packages/plugins/field-date/package.json @@ -11,9 +11,13 @@ "start": "blockly-scripts start", "test": "blockly-scripts test" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "unpkg": "./dist/index.js", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "unpkg": "./dist/esm/index.js", + "type": "module", + "engines": { + "node": ">=24" + }, "author": "Blockly Team", "keywords": [ "blockly", @@ -41,6 +45,13 @@ "dist", "src" ], + "exports": { + ".": { + "node": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"}, + "import": {"types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js"}, + "require": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"} + } + }, "devDependencies": { "@blockly/dev-scripts": "^13.4.0", "@blockly/dev-tools": "^13.4.0", diff --git a/packages/plugins/field-date/src/field_date.ts b/packages/plugins/field-date/src/field_date.ts index cf9601b30f6..47c4bac8553 100644 --- a/packages/plugins/field-date/src/field_date.ts +++ b/packages/plugins/field-date/src/field_date.ts @@ -8,7 +8,7 @@ * @fileoverview Plugin overview. */ import * as Blockly from 'blockly/core'; -import {getLocaleDateString} from './utils'; +import {getLocaleDateString} from './utils.js'; /** * Class for a date input field. diff --git a/packages/plugins/field-date/src/index.ts b/packages/plugins/field-date/src/index.ts index 480c3fe80de..7b73d409284 100644 --- a/packages/plugins/field-date/src/index.ts +++ b/packages/plugins/field-date/src/index.ts @@ -4,4 +4,4 @@ * SPDX-License-Identifier: Apache-2.0 */ -export * from './field_date'; +export * from './field_date.js'; diff --git a/packages/plugins/field-date/test/field_date_test.mocha.js b/packages/plugins/field-date/test/field_date_test.mocha.js index f818c08ce80..204c80b3db9 100644 --- a/packages/plugins/field-date/test/field_date_test.mocha.js +++ b/packages/plugins/field-date/test/field_date_test.mocha.js @@ -6,8 +6,8 @@ import {assert} from 'chai'; import {testHelpers} from '@blockly/dev-tools'; -import {FieldDate} from '../src/index'; -import {getLocaleDateString} from '../src/utils'; +import {FieldDate} from '../src/index.js'; +import {getLocaleDateString} from '../src/utils.js'; const { assertFieldValue, diff --git a/packages/plugins/field-date/test/index.ts b/packages/plugins/field-date/test/index.ts index 050763dab19..f991a61217e 100644 --- a/packages/plugins/field-date/test/index.ts +++ b/packages/plugins/field-date/test/index.ts @@ -10,7 +10,7 @@ import * as Blockly from 'blockly'; import {createPlayground} from '@blockly/dev-tools'; -import '../src/index'; +import '../src/index.js'; /** * An array of blocks that are defined only for the purposes of diff --git a/packages/plugins/field-date/tsconfig.json b/packages/plugins/field-date/tsconfig.json index 99858c525f1..a6e04369c08 100644 --- a/packages/plugins/field-date/tsconfig.json +++ b/packages/plugins/field-date/tsconfig.json @@ -1,14 +1,8 @@ { + "extends": "@blockly/dev-scripts/config/tsconfig.base.json", "compilerOptions": { "rootDir": "./src", - "outDir": "dist", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "module": "es2015", - "moduleResolution": "bundler", - "target": "es6", - "strict": true + "outDir": "dist/esm" }, // NOTE: `test/**/*` is automatically included in `blockly-scripts start`. // Only src matters for production builds. From eeb3c6e241b16d509542d963ba7f74e10a8a77ac Mon Sep 17 00:00:00 2001 From: lizschwab Date: Thu, 12 Nov 2026 10:39:22 -0800 Subject: [PATCH 2/5] feat: Update field-dependent-dropdown to ESM --- eslint.config.mjs | 1 + .../field-dependent-dropdown/package.json | 17 ++++++++++++++--- .../src/dependent_dropdown_options_change.ts | 2 +- .../src/field_dependent_dropdown.ts | 2 +- .../field-dependent-dropdown/src/index.ts | 2 +- .../test/field_dependent_dropdown.mocha.js | 10 ++++------ .../test/field_dependent_dropdown_test_block.ts | 2 +- .../field-dependent-dropdown/test/index.ts | 2 +- .../field-dependent-dropdown/tsconfig.json | 10 ++-------- 9 files changed, 26 insertions(+), 22 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index a51a3be7a6a..90d9854e4c8 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -421,6 +421,7 @@ export default defineConfig( 'packages/plugins/field-colour/**', 'packages/plugins/field-colour-hsv-sliders/**', 'packages/plugins/field-date/**', + 'packages/plugins/field-dependent-dropdown/**', 'packages/plugins/field-grid-dropdown/**', 'packages/plugins/modal/**', 'packages/plugins/theme-modern/**', diff --git a/packages/plugins/field-dependent-dropdown/package.json b/packages/plugins/field-dependent-dropdown/package.json index 1852efcc3ee..ae03f10d1e4 100644 --- a/packages/plugins/field-dependent-dropdown/package.json +++ b/packages/plugins/field-dependent-dropdown/package.json @@ -11,9 +11,13 @@ "start": "blockly-scripts start", "test": "blockly-scripts test" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "unpkg": "./dist/index.js", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "unpkg": "./dist/esm/index.js", + "type": "module", + "engines": { + "node": ">=24" + }, "author": "Blockly Team", "keywords": [ "blockly", @@ -40,6 +44,13 @@ "dist", "src" ], + "exports": { + ".": { + "node": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"}, + "import": {"types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js"}, + "require": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"} + } + }, "devDependencies": { "@blockly/dev-scripts": "^13.4.0", "@blockly/dev-tools": "^13.4.0", diff --git a/packages/plugins/field-dependent-dropdown/src/dependent_dropdown_options_change.ts b/packages/plugins/field-dependent-dropdown/src/dependent_dropdown_options_change.ts index ec8efd5ed39..23d6675e081 100644 --- a/packages/plugins/field-dependent-dropdown/src/dependent_dropdown_options_change.ts +++ b/packages/plugins/field-dependent-dropdown/src/dependent_dropdown_options_change.ts @@ -10,7 +10,7 @@ */ import * as Blockly from 'blockly/core'; -import type {FieldDependentDropdown} from './field_dependent_dropdown'; +import type {FieldDependentDropdown} from './field_dependent_dropdown.js'; /** * A deep equality comparison between the two provided arrays recursively diff --git a/packages/plugins/field-dependent-dropdown/src/field_dependent_dropdown.ts b/packages/plugins/field-dependent-dropdown/src/field_dependent_dropdown.ts index e2348bcd4d6..f451700a27f 100644 --- a/packages/plugins/field-dependent-dropdown/src/field_dependent_dropdown.ts +++ b/packages/plugins/field-dependent-dropdown/src/field_dependent_dropdown.ts @@ -10,7 +10,7 @@ */ import * as Blockly from 'blockly/core'; -import {DependentDropdownOptionsChange} from './dependent_dropdown_options_change'; +import {DependentDropdownOptionsChange} from './dependent_dropdown_options_change.js'; /** The type of the mapping from parent value to child options. */ export interface ChildOptionMapping { diff --git a/packages/plugins/field-dependent-dropdown/src/index.ts b/packages/plugins/field-dependent-dropdown/src/index.ts index e837ff51ff9..5ec13b33f72 100644 --- a/packages/plugins/field-dependent-dropdown/src/index.ts +++ b/packages/plugins/field-dependent-dropdown/src/index.ts @@ -4,4 +4,4 @@ * SPDX-License-Identifier: Apache-2.0 */ -export * from './field_dependent_dropdown'; +export * from './field_dependent_dropdown.js'; diff --git a/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown.mocha.js b/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown.mocha.js index 61d32499a69..f0f5e268e58 100644 --- a/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown.mocha.js +++ b/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown.mocha.js @@ -4,12 +4,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -const chai = require('chai'); -const sinon = require('sinon'); -const Blockly = require('blockly'); -require('./field_dependent_dropdown_test_block'); - -const assert = chai.assert; +import {assert} from 'chai'; +import sinon from 'sinon'; +import * as Blockly from 'blockly'; +import './field_dependent_dropdown_test_block.js'; suite('fieldDependentDropdown', function () { setup(function () { diff --git a/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown_test_block.ts b/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown_test_block.ts index 2cf7c180490..64b86788f52 100644 --- a/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown_test_block.ts +++ b/packages/plugins/field-dependent-dropdown/test/field_dependent_dropdown_test_block.ts @@ -1,5 +1,5 @@ import * as Blockly from 'blockly'; -import {ChildOptionMapping, FieldDependentDropdown} from '../src/index'; +import {ChildOptionMapping, FieldDependentDropdown} from '../src/index.js'; Blockly.defineBlocksWithJsonArray([ { diff --git a/packages/plugins/field-dependent-dropdown/test/index.ts b/packages/plugins/field-dependent-dropdown/test/index.ts index c69b2e98ce3..1fdea7127be 100644 --- a/packages/plugins/field-dependent-dropdown/test/index.ts +++ b/packages/plugins/field-dependent-dropdown/test/index.ts @@ -10,7 +10,7 @@ import * as Blockly from 'blockly'; import {createPlayground} from '@blockly/dev-tools'; -import './field_dependent_dropdown_test_block'; +import './field_dependent_dropdown_test_block.js'; const toolbox: Blockly.utils.toolbox.ToolboxDefinition = { kind: 'flyoutToolbox', diff --git a/packages/plugins/field-dependent-dropdown/tsconfig.json b/packages/plugins/field-dependent-dropdown/tsconfig.json index 99858c525f1..a6e04369c08 100644 --- a/packages/plugins/field-dependent-dropdown/tsconfig.json +++ b/packages/plugins/field-dependent-dropdown/tsconfig.json @@ -1,14 +1,8 @@ { + "extends": "@blockly/dev-scripts/config/tsconfig.base.json", "compilerOptions": { "rootDir": "./src", - "outDir": "dist", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "module": "es2015", - "moduleResolution": "bundler", - "target": "es6", - "strict": true + "outDir": "dist/esm" }, // NOTE: `test/**/*` is automatically included in `blockly-scripts start`. // Only src matters for production builds. From a307ebb3d078647a101285ea3f3024a4e5cef5ae Mon Sep 17 00:00:00 2001 From: lizschwab Date: Thu, 12 Nov 2026 11:38:08 -0800 Subject: [PATCH 3/5] feat: Update field-multilineinput to ESM --- eslint.config.mjs | 1 + .../plugins/field-multilineinput/package.json | 17 ++++++++++++++--- .../src/blocks/textMultiline.ts | 4 ++-- .../plugins/field-multilineinput/src/index.ts | 6 +++--- .../test/block_test.mocha.js | 2 +- .../test/field_multilineinput_test.mocha.js | 15 ++++++++------- .../plugins/field-multilineinput/test/index.ts | 2 +- .../plugins/field-multilineinput/tsconfig.json | 10 ++-------- 8 files changed, 32 insertions(+), 25 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 90d9854e4c8..687519845d3 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -423,6 +423,7 @@ export default defineConfig( 'packages/plugins/field-date/**', 'packages/plugins/field-dependent-dropdown/**', 'packages/plugins/field-grid-dropdown/**', + 'packages/plugins/field-multilineinput/**', 'packages/plugins/modal/**', 'packages/plugins/theme-modern/**', 'packages/plugins/typed-variable-modal/**', diff --git a/packages/plugins/field-multilineinput/package.json b/packages/plugins/field-multilineinput/package.json index 1b34e957467..1e54a07bf14 100644 --- a/packages/plugins/field-multilineinput/package.json +++ b/packages/plugins/field-multilineinput/package.json @@ -12,9 +12,13 @@ "start": "blockly-scripts start", "test": "blockly-scripts test" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "unpkg": "./dist/index.js", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "unpkg": "./dist/esm/index.js", + "type": "module", + "engines": { + "node": ">=24" + }, "author": "Blockly Team", "keywords": [ "blockly", @@ -39,6 +43,13 @@ "dist", "src" ], + "exports": { + ".": { + "node": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"}, + "import": {"types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js"}, + "require": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"} + } + }, "devDependencies": { "@blockly/dev-scripts": "^13.4.0", "@blockly/dev-tools": "^13.4.0", diff --git a/packages/plugins/field-multilineinput/src/blocks/textMultiline.ts b/packages/plugins/field-multilineinput/src/blocks/textMultiline.ts index 831c79ed10b..b553dbed27c 100644 --- a/packages/plugins/field-multilineinput/src/blocks/textMultiline.ts +++ b/packages/plugins/field-multilineinput/src/blocks/textMultiline.ts @@ -13,8 +13,8 @@ import {DartGenerator, Order as DartOrder} from 'blockly/dart'; import {LuaGenerator, Order as LuaOrder} from 'blockly/lua'; import {PhpGenerator, Order as PhpOrder} from 'blockly/php'; import {PythonGenerator, Order as PythonOrder} from 'blockly/python'; -import {registerFieldMultilineInput} from '../field_multilineinput'; -import {Generators} from './generatorsType'; +import {registerFieldMultilineInput} from '../field_multilineinput.js'; +import {Generators} from './generatorsType.js'; /** The name this block is registered under. */ export const BLOCK_NAME = 'text_multiline'; diff --git a/packages/plugins/field-multilineinput/src/index.ts b/packages/plugins/field-multilineinput/src/index.ts index 051fded12e4..b9f6c278af0 100644 --- a/packages/plugins/field-multilineinput/src/index.ts +++ b/packages/plugins/field-multilineinput/src/index.ts @@ -4,12 +4,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -import * as textMultiline from './blocks/textMultiline'; +import * as textMultiline from './blocks/textMultiline.js'; -export * from './field_multilineinput'; +export * from './field_multilineinput.js'; // Re-export all parts of the block definition. -export * as textMultiline from './blocks/textMultiline'; +export * as textMultiline from './blocks/textMultiline.js'; // This package currently exports a single block. More may // be added later. diff --git a/packages/plugins/field-multilineinput/test/block_test.mocha.js b/packages/plugins/field-multilineinput/test/block_test.mocha.js index d60fd2cf156..4b533b129df 100644 --- a/packages/plugins/field-multilineinput/test/block_test.mocha.js +++ b/packages/plugins/field-multilineinput/test/block_test.mocha.js @@ -14,7 +14,7 @@ import {dartGenerator} from 'blockly/dart'; import {phpGenerator} from 'blockly/php'; import {pythonGenerator} from 'blockly/python'; import {luaGenerator} from 'blockly/lua'; -import {installAllBlocks} from '../src/index'; +import {installAllBlocks} from '../src/index.js'; import {assert} from 'chai'; const blockJson = { diff --git a/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js b/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js index cbfcfe5b873..52a0bf0a30c 100644 --- a/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js +++ b/packages/plugins/field-multilineinput/test/field_multilineinput_test.mocha.js @@ -4,14 +4,15 @@ * SPDX-License-Identifier: Apache-2.0 */ -const {testHelpers} = require('@blockly/dev-tools'); -const { +import jsdomGlobal from 'jsdom-global'; +import {assert} from 'chai'; +import sinon from 'sinon'; +import * as Blockly from 'blockly'; +import {testHelpers} from '@blockly/dev-tools'; +import { FieldMultilineInput, registerFieldMultilineInput, -} = require('../src/index'); -const Blockly = require('blockly'); -const {assert} = require('chai'); -const sinon = require('sinon'); +} from '../src/index.js'; const { assertFieldValue, @@ -150,7 +151,7 @@ suite('FieldMultilineInput', function () { }; setup(function () { - this.jsdomCleanup = require('jsdom-global')( + this.jsdomCleanup = jsdomGlobal( '
', ); // See https://github.com/RaspberryPiFoundation/blockly-samples/issues/2528. diff --git a/packages/plugins/field-multilineinput/test/index.ts b/packages/plugins/field-multilineinput/test/index.ts index 7977e561371..c7f093df924 100644 --- a/packages/plugins/field-multilineinput/test/index.ts +++ b/packages/plugins/field-multilineinput/test/index.ts @@ -15,7 +15,7 @@ import {phpGenerator} from 'blockly/php'; import {pythonGenerator} from 'blockly/python'; import {luaGenerator} from 'blockly/lua'; import {createPlayground} from '@blockly/dev-tools'; -import {FieldMultilineInput, textMultiline} from '../src/index'; +import {FieldMultilineInput, textMultiline} from '../src/index.js'; /** * An array of blocks that are defined only for the purposes of diff --git a/packages/plugins/field-multilineinput/tsconfig.json b/packages/plugins/field-multilineinput/tsconfig.json index 99858c525f1..a6e04369c08 100644 --- a/packages/plugins/field-multilineinput/tsconfig.json +++ b/packages/plugins/field-multilineinput/tsconfig.json @@ -1,14 +1,8 @@ { + "extends": "@blockly/dev-scripts/config/tsconfig.base.json", "compilerOptions": { "rootDir": "./src", - "outDir": "dist", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "module": "es2015", - "moduleResolution": "bundler", - "target": "es6", - "strict": true + "outDir": "dist/esm" }, // NOTE: `test/**/*` is automatically included in `blockly-scripts start`. // Only src matters for production builds. From 4a912a99b0ac8b149319d0b145e56d8200b15954 Mon Sep 17 00:00:00 2001 From: lizschwab Date: Thu, 12 Nov 2026 12:40:08 -0800 Subject: [PATCH 4/5] feat: Update field-slider to ESM --- eslint.config.mjs | 1 + packages/plugins/field-slider/package.json | 17 ++++++++++++++--- packages/plugins/field-slider/src/index.ts | 2 +- .../test/field_slider_test.mocha.js | 12 ++++++------ .../test/field_slider_test_helpers.mocha.js | 13 +++++-------- packages/plugins/field-slider/test/index.ts | 2 +- packages/plugins/field-slider/tsconfig.json | 10 ++-------- 7 files changed, 30 insertions(+), 27 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 687519845d3..da5cfd26521 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -424,6 +424,7 @@ export default defineConfig( 'packages/plugins/field-dependent-dropdown/**', 'packages/plugins/field-grid-dropdown/**', 'packages/plugins/field-multilineinput/**', + 'packages/plugins/field-slider/**', 'packages/plugins/modal/**', 'packages/plugins/theme-modern/**', 'packages/plugins/typed-variable-modal/**', diff --git a/packages/plugins/field-slider/package.json b/packages/plugins/field-slider/package.json index 10c7cf641ef..293cb550911 100644 --- a/packages/plugins/field-slider/package.json +++ b/packages/plugins/field-slider/package.json @@ -11,9 +11,13 @@ "start": "blockly-scripts start", "test": "blockly-scripts test" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "unpkg": "./dist/index.js", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "unpkg": "./dist/esm/index.js", + "type": "module", + "engines": { + "node": ">=24" + }, "author": "Blockly Team", "keywords": [ "blockly", @@ -38,6 +42,13 @@ "dist", "src" ], + "exports": { + ".": { + "node": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"}, + "import": {"types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js"}, + "require": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"} + } + }, "devDependencies": { "@blockly/dev-scripts": "^13.4.0", "@blockly/dev-tools": "^13.4.0", diff --git a/packages/plugins/field-slider/src/index.ts b/packages/plugins/field-slider/src/index.ts index 7057226589a..9933642bf88 100644 --- a/packages/plugins/field-slider/src/index.ts +++ b/packages/plugins/field-slider/src/index.ts @@ -4,4 +4,4 @@ * SPDX-License-Identifier: Apache-2.0 */ -export * from './field_slider'; +export * from './field_slider.js'; diff --git a/packages/plugins/field-slider/test/field_slider_test.mocha.js b/packages/plugins/field-slider/test/field_slider_test.mocha.js index da28519c1a8..acd04e7c7db 100644 --- a/packages/plugins/field-slider/test/field_slider_test.mocha.js +++ b/packages/plugins/field-slider/test/field_slider_test.mocha.js @@ -4,14 +4,14 @@ * SPDX-License-Identifier: Apache-2.0 */ -const {assert} = require('chai'); -const sinon = require('sinon'); -const { +import {assert} from 'chai'; +import sinon from 'sinon'; +import { assertSliderField, assertSliderFieldDefault, -} = require('./field_slider_test_helpers.mocha'); -const {testHelpers} = require('@blockly/dev-tools'); -const {FieldSlider} = require('../src/index'); +} from './field_slider_test_helpers.mocha.js'; +import {testHelpers} from '@blockly/dev-tools'; +import {FieldSlider} from '../src/index.js'; const { assertFieldValue, diff --git a/packages/plugins/field-slider/test/field_slider_test_helpers.mocha.js b/packages/plugins/field-slider/test/field_slider_test_helpers.mocha.js index c3d2116d037..87470c43a61 100644 --- a/packages/plugins/field-slider/test/field_slider_test_helpers.mocha.js +++ b/packages/plugins/field-slider/test/field_slider_test_helpers.mocha.js @@ -4,9 +4,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -const {assert} = require('chai'); -const {assertFieldValue} = require('@blockly/dev-tools').testHelpers; -const {FieldSlider} = require('../src/index'); +import {assert} from 'chai'; +import {testHelpers} from '@blockly/dev-tools'; +import {FieldSlider} from '../src/index.js'; /** * Assert the slider field options. @@ -23,7 +23,7 @@ function assertSliderField( expectedPrecision, expectedValue, ) { - assertFieldValue(sliderField, expectedValue); + testHelpers.assertFieldValue(sliderField, expectedValue); assert.equal(sliderField.getMin(), expectedMin, 'Min'); assert.equal(sliderField.getMax(), expectedMax, 'Max'); assert.equal(sliderField.getPrecision(), expectedPrecision, 'Precision'); @@ -36,7 +36,4 @@ function assertSliderFieldDefault(sliderField) { assertSliderField(sliderField, -Infinity, Infinity, 0, 0); } -module.exports = { - assertSliderField, - assertSliderFieldDefault, -}; +export {assertSliderField, assertSliderFieldDefault}; diff --git a/packages/plugins/field-slider/test/index.ts b/packages/plugins/field-slider/test/index.ts index 0625e56592f..a8911abe699 100644 --- a/packages/plugins/field-slider/test/index.ts +++ b/packages/plugins/field-slider/test/index.ts @@ -11,7 +11,7 @@ import * as Blockly from 'blockly'; import {createPlayground} from '@blockly/dev-tools'; -import '../src/index'; +import '../src/index.js'; /** * An array of blocks that are defined only for the purposes of diff --git a/packages/plugins/field-slider/tsconfig.json b/packages/plugins/field-slider/tsconfig.json index 99858c525f1..a6e04369c08 100644 --- a/packages/plugins/field-slider/tsconfig.json +++ b/packages/plugins/field-slider/tsconfig.json @@ -1,14 +1,8 @@ { + "extends": "@blockly/dev-scripts/config/tsconfig.base.json", "compilerOptions": { "rootDir": "./src", - "outDir": "dist", - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "module": "es2015", - "moduleResolution": "bundler", - "target": "es6", - "strict": true + "outDir": "dist/esm" }, // NOTE: `test/**/*` is automatically included in `blockly-scripts start`. // Only src matters for production builds. From c7785a6c844d058940bfb2f9282a1eaafb3d7bfb Mon Sep 17 00:00:00 2001 From: lizschwab Date: Thu, 12 Nov 2026 13:06:06 -0800 Subject: [PATCH 5/5] feat: Updated fixed-edges to ESM --- eslint.config.mjs | 1 + packages/plugins/fixed-edges/package.json | 17 ++++++++++++++--- packages/plugins/fixed-edges/test/index.js | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index da5cfd26521..52e7a152262 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -425,6 +425,7 @@ export default defineConfig( 'packages/plugins/field-grid-dropdown/**', 'packages/plugins/field-multilineinput/**', 'packages/plugins/field-slider/**', + 'packages/plugins/fixed-edges/**', 'packages/plugins/modal/**', 'packages/plugins/theme-modern/**', 'packages/plugins/typed-variable-modal/**', diff --git a/packages/plugins/fixed-edges/package.json b/packages/plugins/fixed-edges/package.json index 2dca1be49af..d1a170a4df8 100644 --- a/packages/plugins/fixed-edges/package.json +++ b/packages/plugins/fixed-edges/package.json @@ -10,9 +10,13 @@ "predeploy": "blockly-scripts predeploy", "start": "blockly-scripts start" }, - "main": "./dist/index.js", - "module": "./src/index.js", - "unpkg": "./dist/index.js", + "main": "./dist/cjs/index.js", + "module": "./dist/esm/index.js", + "unpkg": "./dist/esm/index.js", + "type": "module", + "engines": { + "node": ">=24" + }, "author": "Blockly Team", "keywords": [ "blockly", @@ -37,6 +41,13 @@ "dist", "src" ], + "exports": { + ".": { + "node": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"}, + "import": {"types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js"}, + "require": {"types": "./dist/cjs/index.d.ts", "default": "./dist/cjs/index.js"} + } + }, "devDependencies": { "@blockly/dev-scripts": "^13.4.0", "@blockly/dev-tools": "^13.4.0" diff --git a/packages/plugins/fixed-edges/test/index.js b/packages/plugins/fixed-edges/test/index.js index 6e9ecba01ef..efad1e2220e 100644 --- a/packages/plugins/fixed-edges/test/index.js +++ b/packages/plugins/fixed-edges/test/index.js @@ -10,7 +10,7 @@ import * as Blockly from 'blockly'; import {toolboxCategories, createPlayground} from '@blockly/dev-tools'; -import {FixedEdgesMetricsManager} from '../src/index'; +import {FixedEdgesMetricsManager} from '../src/index.js'; /** * Create a workspace.