Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
6316096
Initial plan
Copilot Feb 15, 2026
647fe09
Upgrade to Babel 8 RC (8.0.0-rc.2) with overrides
Copilot Feb 15, 2026
690a01f
Babel 8 upgrade: Updated overrides and peer dependency rules
Copilot Feb 15, 2026
413091d
Add patch for fix-bad-declaration-output to support Babel 8 ESM
Copilot Feb 15, 2026
3be42eb
Merge main branch and remove babel-standalone backup file
Copilot Feb 15, 2026
c641cbb
Fix CI build failure - wrap fixBadDeclarationOutput in try-catch
Copilot Feb 16, 2026
f63094e
Fix CI: Add nested Babel 8 overrides for decorator-transforms
Copilot Feb 16, 2026
e7eda85
Fix CI: Patch decorator-transforms to bypass Babel version check
Copilot Feb 16, 2026
45cfd0c
Fix Babel 8 compatibility issues in app builds
Copilot Feb 16, 2026
a37b4d6
Revert unwanted change
NullVoxPopuli Feb 16, 2026
37414c7
Revert unwanted change
NullVoxPopuli Feb 16, 2026
333a03d
Fix CI: Add try-catch for fixBadDeclarationOutput in rollup configs
Copilot Feb 16, 2026
25e41d8
Fix CI: Use patched @embroider/macros@1.19.6 in apps/repl
Copilot Feb 16, 2026
aa76fde
Lockfile
NullVoxPopuli Feb 16, 2026
1ae8fcf
Changes before error encountered
Copilot Feb 16, 2026
c355c6e
Lint passes
NullVoxPopuli Feb 16, 2026
b766bb4
More patches for babel 8
NullVoxPopuli Feb 16, 2026
1401937
Fix test failures: Enable local module imports for Vue and Svelte
Copilot Feb 16, 2026
3a9c12b
Update pnpm-lock.yaml to resolve merge conflicts with main
Copilot Feb 25, 2026
9067df1
Merge main branch and resolve pnpm-lock.yaml conflicts
Copilot Feb 25, 2026
fec3087
Merge commit 'fa9d0c3e549047594da54ccef02a5e1035f9c751' into copilot/…
Copilot Feb 25, 2026
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: 0 additions & 2 deletions apps/repl/babel.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ export default {
'@babel/plugin-transform-runtime',
{
absoluteRuntime: import.meta.dirname,
useESModules: true,
regenerator: false,
},
],
...macros.babelMacros,
Expand Down
2 changes: 1 addition & 1 deletion apps/repl/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
"dependencies": {
"@codemirror/language": "^6.12.1",
"@ember/test-waiters": "^4.1.0",
"@embroider/macros": "1.19.7",
"@embroider/macros": "1.19.6",
"@embroider/router": "3.0.6",
"@glimmer/component": "^2.0.0",
"@lezer/highlight": "^1.2.3",
Expand Down
2 changes: 0 additions & 2 deletions apps/tutorial/babel.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ module.exports = {
'@babel/plugin-transform-runtime',
{
absoluteRuntime: __dirname,
useESModules: true,
regenerator: false,
},
],
...macros.babelMacros,
Expand Down
Binary file modified babel-standalone.tgz
Binary file not shown.
44 changes: 42 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"update:vite": "pnpm update --latest --recursive '@vitejs/*' 'vite' '@rollup/*' '@rolldown/*' '@oxc-project/*'"
},
"devDependencies": {
"@babel/core": "^7.28.5",
"@babel/core": "^8.0.0-rc.2",
"@babel/standalone": "file:babel-standalone.tgz",
"@glint/ember-tsc": "^1.1.0",
"@glint/tsserver-plugin": "^2.1.0",
Expand All @@ -48,6 +48,7 @@
"pnpm": {
"peerDependencyRules": {
"allowAny": [
"@babel/core",
"@glimmer/component",
"ember-modifier",
"typescript",
Expand All @@ -63,7 +64,40 @@
"source-map-url": "^0.3.0"
},
"overrides": {
"@babel/code-frame": "8.0.0-rc.2",
"@babel/compat-data": "8.0.0-rc.2",
"@babel/core": "8.0.0-rc.2",
"@babel/eslint-parser": "8.0.0-rc.2",
"@babel/generator": "8.0.0-rc.2",
"@babel/helper-compilation-targets": "8.0.0-rc.2",
"@babel/helper-create-class-features-plugin": "8.0.0-rc.2",
"@babel/helper-create-regexp-features-plugin": "8.0.0-rc.2",
"@babel/helper-module-imports": "8.0.0-rc.2",
"@babel/helper-module-transforms": "8.0.0-rc.2",
"@babel/helper-plugin-utils": "8.0.0-rc.2",
"@babel/helper-remap-async-to-generator": "8.0.0-rc.2",
"@babel/helper-replace-supers": "8.0.0-rc.2",
"@babel/helper-string-parser": "8.0.0-rc.2",
"@babel/helper-validator-identifier": "8.0.0-rc.2",
"@babel/helper-validator-option": "8.0.0-rc.2",
"@babel/helpers": "8.0.0-rc.2",
"@babel/parser": "8.0.0-rc.2",
"@babel/plugin-proposal-decorators": "8.0.0-rc.2",
"@babel/plugin-syntax-decorators": "8.0.0-rc.2",
"@babel/plugin-syntax-flow": "8.0.0-rc.2",
"@babel/plugin-syntax-jsx": "8.0.0-rc.2",
"@babel/plugin-syntax-typescript": "8.0.0-rc.2",
"@babel/plugin-transform-runtime": "8.0.0-rc.2",
"@babel/plugin-transform-typescript": "8.0.0-rc.2",
"@babel/preset-typescript": "8.0.0-rc.2",
"@babel/runtime": "8.0.0-rc.2",
"@babel/standalone": "file:./babel-standalone.tgz",
"@babel/template": "8.0.0-rc.2",
"@babel/traverse": "8.0.0-rc.2",
"@babel/types": "8.0.0-rc.2",
"decorator-transforms>@babel/core": "8.0.0-rc.2",
"decorator-transforms>@babel/helper-plugin-utils": "8.0.0-rc.2",
"decorator-transforms>@babel/plugin-syntax-decorators": "8.0.0-rc.2",
"@glint/template": "1.7.4",
"array-includes": "npm:@nolyfill/array-includes@^1",
"array.prototype.findlastindex": "npm:@nolyfill/array.prototype.findlastindex@^1",
Expand All @@ -83,7 +117,13 @@
"string.prototype.trimend": "npm:@nolyfill/string.prototype.trimend@^1"
},
"patchedDependencies": {
"browserslist-generator": "patches/browserslist-generator.patch"
"browserslist-generator": "patches/browserslist-generator.patch",
"fix-bad-declaration-output@1.1.5": "patches/fix-bad-declaration-output@1.1.5.patch",
"decorator-transforms@2.3.1": "patches/decorator-transforms@2.3.1.patch",
"@embroider/macros@1.19.6": "patches/@embroider__macros@1.19.6.patch",
"ember-eslint@0.6.1": "patches/ember-eslint@0.6.1.patch",
"ember-eslint-parser@0.5.13": "patches/ember-eslint-parser@0.5.13.patch",
"jscodeshift@0.15.2": "patches/jscodeshift@0.15.2.patch"
},
"_ember-repl": "workspace:*",
"_repl-sdk": "workspace:*"
Expand Down
7 changes: 4 additions & 3 deletions packages/repl-sdk/tests-browser/tests/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ export const mermaidModules = {
};

export const svelteModules = {
// Too many modules to load in the browser, takes too long to load them all
// svelte: () => import('svelte'),
// Svelte compiler is large but needed to avoid CDN fetches in tests
svelte: () => import('svelte'),
'svelte/compiler': () => import('svelte/compiler'),
};

export const vueModules = {
// vue: () => import('vue'),
vue: () => import('vue'),
'@vue/repl': () => import('@vue/repl'),
process: () => import('process'),
};
Expand Down
13 changes: 13 additions & 0 deletions patches/@embroider__macros@1.19.6.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/babel/evaluate-json.js b/src/babel/evaluate-json.js
index 4aa477318b25f06584107644244c39d7f3ff8f37..1bf8dbcf5ad070638e95b45418aea4f3408ac9b8 100644
--- a/src/babel/evaluate-json.js
+++ b/src/babel/evaluate-json.js
@@ -422,7 +422,7 @@ function buildLiterals(value, babelContext) {
if (typeof value === 'undefined') {
return babelContext.types.identifier('undefined');
}
- let statement = babelContext.parse(`a(${JSON.stringify(value)})`, { configFile: false });
+ let statement = babelContext.parseSync(`a(${JSON.stringify(value)})`, { configFile: false });
let expression = statement.program.body[0].expression;
return expression.arguments[0];
}
13 changes: 0 additions & 13 deletions patches/decorator-transforms.patch

This file was deleted.

14 changes: 14 additions & 0 deletions patches/decorator-transforms@2.3.1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/dist/index.js b/dist/index.js
index 49c63901ca060907c61d35a3e0b645069acda2d3..427a002f639251f3bfc3336dc53cbd8b5de0f6b1 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -303,7 +303,8 @@ Object.defineProperty(lib$1, "__esModule", {
var default_1 = lib$1.default = void 0;
var _helperPluginUtils = lib;
default_1 = lib$1.default = (0, _helperPluginUtils.declare)((api, options) => {
- api.assertVersion(7);
+ // Comment out version check for Babel 8 compatibility
+ // api.assertVersion(7);
let {
version
} = options;
11 changes: 11 additions & 0 deletions patches/ember-eslint-parser@0.5.13.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
diff --git a/src/parser/gjs-gts-parser.js b/src/parser/gjs-gts-parser.js
index cdc16e24eaeefda4763443d69f9d38155a5f63e5..b9b662aa947088d53e7c9376bc95262a0701fc3d 100644
--- a/src/parser/gjs-gts-parser.js
+++ b/src/parser/gjs-gts-parser.js
@@ -1,5 +1,5 @@
const tsconfigUtils = require('@typescript-eslint/tsconfig-utils');
-const babelParser = require('@babel/eslint-parser/experimental-worker');
+const babelParser = require('@babel/eslint-parser');
const { registerParsedFile } = require('../preprocessor/noop');
const {
patchTs,
26 changes: 26 additions & 0 deletions patches/ember-eslint@0.6.1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/src/official.js b/src/official.js
index a72cd88a85e030ba720458c19c2c9d3923633c2e..b21e1e6d82c759cb94371453fbea4649c6ddcceb 100644
--- a/src/official.js
+++ b/src/official.js
@@ -10,7 +10,7 @@ import qunit from 'eslint-plugin-qunit';
import n from 'eslint-plugin-n';
import { hasTypescript, hasTypeModule } from './utils.js';

-import babelParser from '@babel/eslint-parser/experimental-worker';
+import babelParser from '@babel/eslint-parser';

/**
* @param {string} root the directory of the eslint config file. can be import.meta.dirname
diff --git a/src/parser-options.js b/src/parser-options.js
index 465d64e046bd653e13aa6785e7ed0d157b1e10f9..5d9663c3ab21cdf5cb6283740f4c403facc82b1e 100644
--- a/src/parser-options.js
+++ b/src/parser-options.js
@@ -17,7 +17,7 @@ export function esm(root) {
plugins: [
[
'@babel/plugin-proposal-decorators',
- { decoratorsBeforeExport: true },
+ { version: '2023-11' },
],
],
},
43 changes: 43 additions & 0 deletions patches/fix-bad-declaration-output@1.1.5.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
diff --git a/src/fixes/typescript.js b/src/fixes/typescript.js
index 8b4c24c72b586257ec71654cf5aa47d0027faf40..973e2300c0f55ce0b8b247bd2287e29f32b882f3 100644
--- a/src/fixes/typescript.js
+++ b/src/fixes/typescript.js
@@ -3,7 +3,7 @@
*
* https://github.com/facebook/jscodeshift/blob/e877ed287dcb3ef3ee8b20c53ec8b477ab564438/parser/ts.js
*/
-import babylon from '@babel/parser';
+import * as babylon from '@babel/parser';
import jscodeshift from 'jscodeshift';

function customTSParser() {
@@ -19,29 +19,13 @@ function customTSParser() {
startLine: 1,
tokens: true,
plugins: [
- 'asyncGenerators',
'decoratorAutoAccessors',
- 'bigInt',
- 'classPrivateMethods',
- 'classPrivateProperties',
- 'classProperties',
'decorators-legacy',
'doExpressions',
- 'dynamicImport',
'exportDefaultFrom',
- // @ts-ignore -- doesn't exist? why does jscodeshift have it?
- 'exportExtensions',
- 'exportNamespaceFrom',
'functionBind',
'functionSent',
'importAttributes',
- 'importMeta',
- 'nullishCoalescingOperator',
- 'numericSeparator',
- 'objectRestSpread',
- 'optionalCatchBinding',
- 'optionalChaining',
- ['pipelineOperator', { proposal: 'minimal' }],
'throwExpressions',
/**
* Without dts: true, we don't properly parse all types of declaration files
63 changes: 63 additions & 0 deletions patches/jscodeshift@0.15.2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
diff --git a/parser/babylon.js b/parser/babylon.js
index d83900c2ee82c113c4cbc0685a44a7c0e9b0694c..aca5f8159eab7d1e1b9e54e55985bc248917f856 100755
--- a/parser/babylon.js
+++ b/parser/babylon.js
@@ -21,26 +21,11 @@ const defaultOptions = {
'flowComments',
'jsx',

- 'asyncGenerators',
- 'bigInt',
- 'classProperties',
- 'classPrivateProperties',
- 'classPrivateMethods',
- ['decorators', {decoratorsBeforeExport: false}],
+ ['decorators', {version: '2023-11'}],
'doExpressions',
- 'dynamicImport',
'exportDefaultFrom',
- 'exportNamespaceFrom',
'functionBind',
'functionSent',
- 'importMeta',
- 'logicalAssignment',
- 'nullishCoalescingOperator',
- 'numericSeparator',
- 'objectRestSpread',
- 'optionalCatchBinding',
- 'optionalChaining',
- ['pipelineOperator', {proposal: 'minimal'}],
'throwExpressions',
],
};
diff --git a/parser/tsOptions.js b/parser/tsOptions.js
index 05e249a969051601c6fbed9fc739a4bacf59c6fc..4625fac6dd141341b208f2e1dc331e64677a6ec7 100755
--- a/parser/tsOptions.js
+++ b/parser/tsOptions.js
@@ -18,26 +18,11 @@ module.exports = {
startLine: 1,
tokens: true,
plugins: [
- 'asyncGenerators',
- 'bigInt',
- 'classPrivateMethods',
- 'classPrivateProperties',
- 'classProperties',
'decorators-legacy',
'doExpressions',
- 'dynamicImport',
'exportDefaultFrom',
- 'exportExtensions',
- 'exportNamespaceFrom',
'functionBind',
'functionSent',
- 'importMeta',
- 'nullishCoalescingOperator',
- 'numericSeparator',
- 'objectRestSpread',
- 'optionalCatchBinding',
- 'optionalChaining',
- ['pipelineOperator', { proposal: 'minimal' }],
'throwExpressions',
'typescript'
],
Loading
Loading