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
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,11 @@
"esbuild"
],
"patchedDependencies": {
"@tracerbench/core@8.0.1": "patches/@tracerbench__core@8.0.1.patch"
"@tracerbench/core@8.0.1": "patches/@tracerbench__core@8.0.1.patch",
"ember-cli@6.11.0": "patches/ember-cli@6.11.0.patch",
"@embroider/compat@4.1.16": "patches/@embroider__compat@4.1.16.patch",
"ember-cli-htmlbars@7.0.0": "patches/ember-cli-htmlbars@7.0.0.patch",
"ember-auto-import@2.13.0": "patches/ember-auto-import@2.13.0.patch"
}
},
"peerDependencies": {
Expand Down
24 changes: 24 additions & 0 deletions patches/@embroider__compat@4.1.16.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/dist/src/compat-app.js b/dist/src/compat-app.js
index e22220b687d2434136227e16c15bf1826a483c98..53c0036eb17403e93e9bb5d248047afefc412ec7 100644
--- a/dist/src/compat-app.js
+++ b/dist/src/compat-app.js
@@ -241,10 +241,15 @@ class CompatApp {
//
// The template compiler is still here so that apps using a V2 ember can
// still app.import the traditional runtime template compiler.
- trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember.js', () => ''));
- trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-testing.js', () => ''));
- const templateCompilerSrc = (0, fs_1.readFileSync)((0, path_1.join)(emberSource.root, 'dist/ember-template-compiler.js'), 'utf8');
- trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-template-compiler.js', () => templateCompilerSrc));
+ //
+ // When ember-source no longer provides `paths` (v7+), these legacy vendor
+ // files are not needed at all — ember-source is fully ESM.
+ if (emberSource.paths) {
+ trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember.js', () => ''));
+ trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-testing.js', () => ''));
+ const templateCompilerSrc = (0, fs_1.readFileSync)((0, path_1.join)(emberSource.root, 'dist/ember-template-compiler.js'), 'utf8');
+ trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-template-compiler.js', () => templateCompilerSrc));
+ }
}
if (this.vendorTree) {
trees.push((0, broccoli_funnel_1.default)(this.vendorTree, {
14 changes: 14 additions & 0 deletions patches/ember-auto-import@2.13.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/js/package.js b/js/package.js
index 91c757199e649b581e3064130f35f45d2af771a4..67f1aaebf0f58e51ebb04b992ae89d44f021374d 100644
--- a/js/package.js
+++ b/js/package.js
@@ -413,7 +413,8 @@ class Package {
}
let ensureModuleApiPolyfill = semver_1.default.satisfies(emberSource.pkg.version, '<3.27.0', { includePrerelease: true });
let templateCompilerPath = emberSource.absolutePaths
- .templateCompiler;
+ ? emberSource.absolutePaths.templateCompiler
+ : require('path').join(emberSource.root, 'dist', 'dev', 'packages', 'ember-template-compiler', 'index.js');
const babelPluginPrecompile = ensureModuleApiPolyfill
? [
require.resolve('babel-plugin-htmlbars-inline-precompile'),
19 changes: 19 additions & 0 deletions patches/ember-cli-htmlbars@7.0.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
diff --git a/lib/ember-addon-main.js b/lib/ember-addon-main.js
index 71c809a11baa57fcc78f10e08176e5d34eaeb62b..158fd9c7707cfe0809eb1cd2bf5ae2cece2b2fde 100644
--- a/lib/ember-addon-main.js
+++ b/lib/ember-addon-main.js
@@ -105,7 +105,13 @@ module.exports = {
);
}

- return ember.absolutePaths.templateCompiler;
+ if (ember.absolutePaths) {
+ return ember.absolutePaths.templateCompiler;
+ }
+
+ // v7+ ember-source no longer provides absolutePaths; the ESM template
+ // compiler lives under dist/dev/packages/
+ return path.join(ember.root, 'dist', 'dev', 'packages', 'ember-template-compiler', 'index.js');
},

astPlugins() {
27 changes: 27 additions & 0 deletions patches/ember-cli@6.11.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/lib/broccoli/ember-app.js b/lib/broccoli/ember-app.js
index 267a9ac10b610960322caac363300525daa2d190..0de6c2e0d96f86e4e0bf2a0c63a28ad5badec8ed 100644
--- a/lib/broccoli/ember-app.js
+++ b/lib/broccoli/ember-app.js
@@ -342,13 +342,15 @@ class EmberApp {

this.vendorFiles = omitBy(
merge(
- {
- 'ember.js': {
- development: emberSource.paths.debug,
- production: emberSource.paths.prod,
- },
- 'ember-testing.js': [emberSource.paths.testing, { type: 'test' }],
- },
+ emberSource.paths
+ ? {
+ 'ember.js': {
+ development: emberSource.paths.debug,
+ production: emberSource.paths.prod,
+ },
+ 'ember-testing.js': [emberSource.paths.testing, { type: 'test' }],
+ }
+ : {},
this.options.vendorFiles
),
isNull
44 changes: 28 additions & 16 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 13 additions & 7 deletions smoke-tests/node-template/tests/node/sourcemap-test.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
import fs from 'node:fs';
import { createRequire } from 'node:module';
import { dirname, join } from 'node:path';
import { createRequire } from 'node:module';

const require = createRequire(import.meta.url);
const emberSourceRoot = dirname(require.resolve('ember-source/package.json'));

QUnit.module('sourcemap validation', function () {
QUnit.test(`ember.js has only a single sourcemaps comment`, function (assert) {
let jsPath = join(emberSourceRoot, 'dist', 'ember.debug.js');
assert.ok(fs.existsSync(jsPath));
QUnit.test(`dev build has only single sourcemap comments per file`, function (assert) {
let devDir = join(emberSourceRoot, 'dist', 'dev', 'packages');
assert.ok(fs.existsSync(devDir), 'dist/dev/packages exists');

let contents = fs.readFileSync(jsPath, 'utf-8');
let num = count(contents, '//# sourceMappingURL=');
assert.equal(num, 1);
// Check a representative file from the dev build
let emberIndex = join(devDir, 'ember', 'index.js');
if (fs.existsSync(emberIndex)) {
let contents = fs.readFileSync(emberIndex, 'utf-8');
let num = count(contents, '//# sourceMappingURL=');
assert.ok(num <= 1, `ember/index.js has at most one sourcemap comment (found ${num})`);
} else {
assert.ok(true, 'ember/index.js not present (skipped)');
}
});
});

Expand Down
Loading