@embroider/core 1.8.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -20
- package/src/app.d.ts +4 -5
- package/src/app.js +44 -53
- package/src/app.js.map +1 -1
- package/src/babel-plugin-adjust-imports.d.ts +0 -1
- package/src/babel-plugin-adjust-imports.js +10 -17
- package/src/babel-plugin-adjust-imports.js.map +1 -1
- package/src/index.d.ts +0 -4
- package/src/index.js +2 -6
- package/src/index.js.map +1 -1
- package/src/messages.d.ts +3 -1
- package/src/messages.js +15 -4
- package/src/messages.js.map +1 -1
- package/src/packager.d.ts +4 -1
- package/src/packager.js +2 -1
- package/src/packager.js.map +1 -1
- package/src/portable-babel-config.js +1 -1
- package/src/portable-babel-config.js.map +1 -1
- package/src/atomic-write.d.ts +0 -1
- package/src/atomic-write.js +0 -18
- package/src/atomic-write.js.map +0 -1
- package/src/babel-plugin-inline-hbs-deps-node.d.ts +0 -14
- package/src/babel-plugin-inline-hbs-deps-node.js +0 -31
- package/src/babel-plugin-inline-hbs-deps-node.js.map +0 -1
- package/src/babel-plugin-inline-hbs-deps.d.ts +0 -10
- package/src/babel-plugin-inline-hbs-deps.js +0 -134
- package/src/babel-plugin-inline-hbs-deps.js.map +0 -1
- package/src/babel-plugin-inline-hbs-node.d.ts +0 -7
- package/src/babel-plugin-inline-hbs-node.js +0 -15
- package/src/babel-plugin-inline-hbs-node.js.map +0 -1
- package/src/babel-plugin-inline-hbs.d.ts +0 -24
- package/src/babel-plugin-inline-hbs.js +0 -142
- package/src/babel-plugin-inline-hbs.js.map +0 -1
- package/src/babel-plugin-stage1-inline-hbs-node.d.ts +0 -12
- package/src/babel-plugin-stage1-inline-hbs-node.js +0 -9
- package/src/babel-plugin-stage1-inline-hbs-node.js.map +0 -1
- package/src/babel-plugin-stage1-inline-hbs.d.ts +0 -9
- package/src/babel-plugin-stage1-inline-hbs.js +0 -96
- package/src/babel-plugin-stage1-inline-hbs.js.map +0 -1
- package/src/browser-index.d.ts +0 -1
- package/src/browser-index.js +0 -6
- package/src/browser-index.js.map +0 -1
- package/src/ember-template-compiler-types.d.ts +0 -41
- package/src/ember-template-compiler-types.js +0 -3
- package/src/ember-template-compiler-types.js.map +0 -1
- package/src/load-ember-template-compiler.d.ts +0 -6
- package/src/load-ember-template-compiler.js +0 -57
- package/src/load-ember-template-compiler.js.map +0 -1
- package/src/mini-modules-polyfill.d.ts +0 -12
- package/src/mini-modules-polyfill.js +0 -80
- package/src/mini-modules-polyfill.js.map +0 -1
- package/src/patch-template-compiler.d.ts +0 -1
- package/src/patch-template-compiler.js +0 -176
- package/src/patch-template-compiler.js.map +0 -1
- package/src/resolver.d.ts +0 -14
- package/src/resolver.js +0 -3
- package/src/resolver.js.map +0 -1
- package/src/template-compiler-common.d.ts +0 -70
- package/src/template-compiler-common.js +0 -176
- package/src/template-compiler-common.js.map +0 -1
- package/src/template-compiler-node.d.ts +0 -17
- package/src/template-compiler-node.js +0 -32
- package/src/template-compiler-node.js.map +0 -1
- package/src/write-template-compiler.d.ts +0 -6
- package/src/write-template-compiler.js +0 -24
- package/src/write-template-compiler.js.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@embroider/core",
|
3
|
-
"version": "
|
3
|
+
"version": "2.0.0",
|
4
4
|
"private": false,
|
5
5
|
"description": "A build system for EmberJS applications.",
|
6
6
|
"repository": {
|
@@ -11,24 +11,12 @@
|
|
11
11
|
"license": "MIT",
|
12
12
|
"author": "Edward Faulkner",
|
13
13
|
"main": "src/index.js",
|
14
|
-
"exports": {
|
15
|
-
".": {
|
16
|
-
"browser": "./src/browser-index.js",
|
17
|
-
"default": "./src/index.js"
|
18
|
-
},
|
19
|
-
"./src/messages": "./src/messages.js",
|
20
|
-
"./src/babel-plugin-inline-hbs": "./src/babel-plugin-inline-hbs.js",
|
21
|
-
"./src/babel-plugin-stage1-inline-hbs": "./src/babel-plugin-stage1-inline-hbs.js",
|
22
|
-
"./src/mini-modules-polyfill": "./src/mini-modules-polyfill.js",
|
23
|
-
"./src/load-ember-template-compiler": "./src/load-ember-template-compiler.js"
|
24
|
-
},
|
25
14
|
"files": [
|
26
15
|
"src/**/*.js",
|
27
16
|
"src/**/*.d.ts",
|
28
17
|
"src/**/*.js.map"
|
29
18
|
],
|
30
19
|
"scripts": {
|
31
|
-
"prepare": "tsc",
|
32
20
|
"test": "jest"
|
33
21
|
},
|
34
22
|
"dependencies": {
|
@@ -38,11 +26,11 @@
|
|
38
26
|
"@babel/plugin-transform-runtime": "^7.14.5",
|
39
27
|
"@babel/runtime": "^7.14.5",
|
40
28
|
"@babel/traverse": "^7.14.5",
|
41
|
-
"@embroider/macros": "1.
|
42
|
-
"@embroider/shared-internals": "
|
29
|
+
"@embroider/macros": "1.10.0",
|
30
|
+
"@embroider/shared-internals": "2.0.0",
|
43
31
|
"assert-never": "^1.2.1",
|
44
32
|
"babel-import-util": "^1.1.0",
|
45
|
-
"babel-plugin-ember-template-compilation": "^
|
33
|
+
"babel-plugin-ember-template-compilation": "^2.0.0",
|
46
34
|
"broccoli-node-api": "^1.7.0",
|
47
35
|
"broccoli-persistent-filter": "^3.1.2",
|
48
36
|
"broccoli-plugin": "^4.0.7",
|
@@ -59,14 +47,13 @@
|
|
59
47
|
"lodash": "^4.17.21",
|
60
48
|
"resolve": "^1.20.0",
|
61
49
|
"resolve-package-path": "^4.0.1",
|
62
|
-
"strip-bom": "^4.0.0",
|
63
50
|
"typescript-memoize": "^1.0.1",
|
64
|
-
"walk-sync": "^3.0.0"
|
65
|
-
"wrap-legacy-hbs-plugin-if-needed": "^1.0.1"
|
51
|
+
"walk-sync": "^3.0.0"
|
66
52
|
},
|
67
53
|
"devDependencies": {
|
68
54
|
"@embroider/sample-transforms": "0.0.0",
|
69
55
|
"@embroider/test-support": "0.36.0",
|
56
|
+
"@glimmer/syntax": "^0.84.2",
|
70
57
|
"@types/babel__core": "^7.1.14",
|
71
58
|
"@types/debug": "^4.1.5",
|
72
59
|
"@types/filesize": "^4.0.0",
|
@@ -74,7 +61,6 @@
|
|
74
61
|
"@types/lodash": "^4.14.170",
|
75
62
|
"@types/node": "^15.12.2",
|
76
63
|
"@types/resolve": "^1.20.0",
|
77
|
-
"@types/strip-bom": "^4.0.1",
|
78
64
|
"@types/tmp": "^0.1.0",
|
79
65
|
"fixturify": "^2.1.1",
|
80
66
|
"tmp": "^0.1.0",
|
package/src/app.d.ts
CHANGED
@@ -4,9 +4,8 @@ import { Asset } from './asset';
|
|
4
4
|
import Options from './options';
|
5
5
|
import { MacrosConfig } from '@embroider/macros/src/node';
|
6
6
|
import { TransformOptions } from '@babel/core';
|
7
|
-
import { TemplateCompilerPlugins } from '.';
|
8
|
-
import { Resolver } from './resolver';
|
9
7
|
import { Options as AdjustImportsOptions } from './babel-plugin-adjust-imports';
|
8
|
+
import type { Transform } from 'babel-plugin-ember-template-compilation';
|
10
9
|
export declare type EmberENV = unknown;
|
11
10
|
export interface AppAdapter<TreeNames> {
|
12
11
|
readonly allActiveAddons: AddonPackage[];
|
@@ -22,10 +21,10 @@ export interface AppAdapter<TreeNames> {
|
|
22
21
|
podModulePrefix(): string | undefined;
|
23
22
|
rootURL(): string;
|
24
23
|
templateCompilerPath(): string;
|
25
|
-
|
24
|
+
resolverTransform(): Transform | undefined;
|
26
25
|
adjustImportsOptions(): AdjustImportsOptions;
|
27
26
|
adjustImportsOptionsPath(): string;
|
28
|
-
htmlbarsPlugins():
|
27
|
+
htmlbarsPlugins(): Transform[];
|
29
28
|
babelConfig(): TransformOptions;
|
30
29
|
babelMajorVersion(): 7;
|
31
30
|
emberENV(): EmberENV;
|
@@ -76,7 +75,7 @@ export declare class AppBuilder<TreeNames> {
|
|
76
75
|
private gatherAssets;
|
77
76
|
build(inputPaths: OutputPaths<TreeNames>): Promise<void>;
|
78
77
|
private combinePackageJSON;
|
79
|
-
private
|
78
|
+
private etcOptions;
|
80
79
|
private get portableHints();
|
81
80
|
private addBabelConfig;
|
82
81
|
private shouldSplitRoute;
|
package/src/app.js
CHANGED
@@ -55,7 +55,6 @@ const mergeWith_1 = __importDefault(require("lodash/mergeWith"));
|
|
55
55
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
56
56
|
const portable_1 = require("./portable");
|
57
57
|
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
|
58
|
-
const load_ember_template_compiler_1 = require("./load-ember-template-compiler");
|
59
58
|
function excludeDotFiles(files) {
|
60
59
|
return files.filter(file => !file.startsWith('.') && !file.includes('/.'));
|
61
60
|
}
|
@@ -172,7 +171,7 @@ class AppBuilder {
|
|
172
171
|
result.unshift({
|
173
172
|
kind: 'in-memory',
|
174
173
|
relativePath: '_ember_env_.js',
|
175
|
-
source: `window.EmberENV
|
174
|
+
source: `window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`,
|
176
175
|
});
|
177
176
|
result.push({
|
178
177
|
kind: 'in-memory',
|
@@ -243,7 +242,7 @@ class AppBuilder {
|
|
243
242
|
babel.plugins.push(require.resolve('@babel/plugin-syntax-dynamic-import'));
|
244
243
|
return babel;
|
245
244
|
}
|
246
|
-
babelConfig(
|
245
|
+
babelConfig(appFiles) {
|
247
246
|
let babel = (0, cloneDeep_1.default)(this.adapter.babelConfig());
|
248
247
|
if (!babel.plugins) {
|
249
248
|
babel.plugins = [];
|
@@ -253,38 +252,38 @@ class AppBuilder {
|
|
253
252
|
babel.plugins.push(require.resolve('@babel/plugin-syntax-dynamic-import'));
|
254
253
|
// https://github.com/webpack/webpack/issues/12154
|
255
254
|
babel.plugins.push(require.resolve('./rename-require-plugin'));
|
256
|
-
|
257
|
-
// on older ember versions that need the modules-api-polyfill, we use our
|
258
|
-
// bespoke inline template compiler plugin.
|
259
|
-
babel.plugins.push([
|
260
|
-
(0, path_1.join)(__dirname, 'babel-plugin-inline-hbs-node.js'),
|
261
|
-
{
|
262
|
-
templateCompiler: templateCompilerParams,
|
263
|
-
stage: 3,
|
264
|
-
},
|
265
|
-
]);
|
266
|
-
}
|
267
|
-
else {
|
268
|
-
// on newer ember versions that don't need the modules-api-polyfill, we
|
269
|
-
// can compose with the newer babel-plugin-ember-template-compilation, and
|
270
|
-
// use a simpler plugin that only needs to handle inserting discovered
|
271
|
-
// dependencies.
|
272
|
-
babel.plugins.push([
|
273
|
-
(0, path_1.join)(__dirname, '../src/babel-plugin-inline-hbs-deps-node.js'),
|
274
|
-
{ templateCompiler: templateCompilerParams },
|
275
|
-
]);
|
276
|
-
babel.plugins.push([
|
277
|
-
require.resolve('babel-plugin-ember-template-compilation'),
|
278
|
-
{
|
279
|
-
precompilerPath: (0, path_1.join)(__dirname, '../src/babel-plugin-inline-hbs-deps-node.js'),
|
280
|
-
},
|
281
|
-
]);
|
282
|
-
}
|
255
|
+
babel.plugins.push([require.resolve('babel-plugin-ember-template-compilation'), this.etcOptions()]);
|
283
256
|
// this is @embroider/macros configured for full stage3 resolution
|
284
257
|
babel.plugins.push(...this.macrosConfig.babelPluginConfig());
|
285
258
|
let colocationOptions = {
|
286
|
-
packageGuard: true,
|
287
259
|
appRoot: this.root,
|
260
|
+
// This extra weirdness is a compromise in favor of build performance.
|
261
|
+
//
|
262
|
+
// 1. When auto-upgrading an addon from v1 to v2, we definitely want to
|
263
|
+
// run any custom AST transforms in stage1.
|
264
|
+
//
|
265
|
+
// 2. In general case, AST transforms are allowed to manipulate Javascript
|
266
|
+
// scope. This means that running transforms -- even when we're doing
|
267
|
+
// source-to-source compilation that emits handlebars and not wire
|
268
|
+
// format -- implies changing .hbs files into .js files.
|
269
|
+
//
|
270
|
+
// 3. So stage1 may need to rewrite .hbs to .hbs.js (to avoid colliding
|
271
|
+
// with an existing co-located .js file).
|
272
|
+
//
|
273
|
+
// 4. But stage1 doesn't necessarily want to run babel over the
|
274
|
+
// corresponding JS file. Most of the time, that's just an
|
275
|
+
// unnecessarily expensive second parse. (We only run it in stage1 to
|
276
|
+
// eliminate an addon's custom babel plugins, and many addons don't
|
277
|
+
// have any.)
|
278
|
+
//
|
279
|
+
// 5. Therefore, the work of template-colocation gets defered until here,
|
280
|
+
// and it may see co-located templates named `.hbs.js` instead of the
|
281
|
+
// usual `.hbs.
|
282
|
+
templateExtensions: ['.hbs', '.hbs.js'],
|
283
|
+
// All of the above only applies to auto-upgraded packages that were
|
284
|
+
// authored in v1. V2 packages don't get any of this complexity, they're
|
285
|
+
// supposed to take care of colocating their own templates explicitly.
|
286
|
+
packageGuard: true,
|
288
287
|
};
|
289
288
|
babel.plugins.push([
|
290
289
|
require.resolve('@embroider/shared-internals/src/template-colocation-plugin'),
|
@@ -304,7 +303,7 @@ class AppBuilder {
|
|
304
303
|
let relocatedFiles = {};
|
305
304
|
for (let { destPath, appFiles } of engines) {
|
306
305
|
for (let [relativePath, originalPath] of appFiles.relocatedFiles) {
|
307
|
-
relocatedFiles[(0, path_1.join)(destPath, relativePath)
|
306
|
+
relocatedFiles[(0, path_1.join)(destPath, relativePath)] = originalPath;
|
308
307
|
}
|
309
308
|
}
|
310
309
|
let relocatedFilesPath = (0, path_1.join)(this.root, '_relocated_files.json');
|
@@ -689,8 +688,7 @@ class AppBuilder {
|
|
689
688
|
let emberENV = this.adapter.emberENV();
|
690
689
|
let assets = this.gatherAssets(inputPaths);
|
691
690
|
let finalAssets = await this.updateAssets(assets, appFiles, emberENV);
|
692
|
-
let
|
693
|
-
let babelConfig = this.babelConfig(templateCompiler, appFiles);
|
691
|
+
let babelConfig = this.babelConfig(appFiles);
|
694
692
|
this.addBabelConfig(babelConfig);
|
695
693
|
let assetPaths = assets.map(asset => asset.relativePath);
|
696
694
|
if (this.activeFastboot) {
|
@@ -735,24 +733,21 @@ class AppBuilder {
|
|
735
733
|
pkgLayers.push({ keywords: ['ember-addon'], 'ember-addon': meta });
|
736
734
|
return combinePackageJSON(...pkgLayers);
|
737
735
|
}
|
738
|
-
|
739
|
-
let
|
740
|
-
|
741
|
-
plugins.ast = [];
|
742
|
-
}
|
743
|
-
let { plugins: macroPlugins, setConfig } = node_1.MacrosConfig.astPlugins();
|
736
|
+
etcOptions() {
|
737
|
+
let transforms = this.adapter.htmlbarsPlugins();
|
738
|
+
let { plugins: macroPlugins, setConfig } = node_1.MacrosConfig.transforms();
|
744
739
|
setConfig(this.macrosConfig);
|
745
740
|
for (let macroPlugin of macroPlugins) {
|
746
|
-
|
741
|
+
transforms.push(macroPlugin);
|
742
|
+
}
|
743
|
+
let transform = this.adapter.resolverTransform();
|
744
|
+
if (transform) {
|
745
|
+
transforms.push(transform);
|
747
746
|
}
|
748
|
-
const compilerPath = resolve_1.default.sync(this.adapter.templateCompilerPath(), { basedir: this.root });
|
749
|
-
const compilerChecksum = (0, load_ember_template_compiler_1.getEmberExports)(compilerPath).cacheKey;
|
750
747
|
return {
|
751
|
-
|
752
|
-
compilerPath,
|
753
|
-
|
754
|
-
resolver: this.adapter.templateResolver(),
|
755
|
-
EmberENV: config,
|
748
|
+
transforms,
|
749
|
+
compilerPath: resolve_1.default.sync(this.adapter.templateCompilerPath(), { basedir: this.root }),
|
750
|
+
enableLegacyModules: ['ember-cli-htmlbars', 'ember-cli-htmlbars-inline-precompile', 'htmlbars-inline-precompile'],
|
756
751
|
};
|
757
752
|
}
|
758
753
|
get portableHints() {
|
@@ -851,11 +846,7 @@ class AppBuilder {
|
|
851
846
|
}
|
852
847
|
get staticAppPathsPattern() {
|
853
848
|
if (this.options.staticAppPaths.length > 0) {
|
854
|
-
return new RegExp('^(?:' +
|
855
|
-
this.options.staticAppPaths.map(staticAppPath => (0, escape_string_regexp_1.default)(staticAppPath.replace(/\//g, path_1.sep))).join('|') +
|
856
|
-
')(?:$|' +
|
857
|
-
path_1.sep +
|
858
|
-
')');
|
849
|
+
return new RegExp('^(?:' + this.options.staticAppPaths.map(staticAppPath => (0, escape_string_regexp_1.default)(staticAppPath)).join('|') + ')(?:$|/)');
|
859
850
|
}
|
860
851
|
}
|
861
852
|
requiredOtherFiles(appFiles) {
|