@embroider/core 4.4.7 → 4.5.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/dist/src/app-files.js +8 -0
- package/dist/src/app-files.js.map +1 -1
- package/dist/src/html-entrypoint.js +10 -5
- package/dist/src/html-entrypoint.js.map +1 -1
- package/dist/src/html-placeholder.js +4 -1
- package/dist/src/html-placeholder.js.map +1 -1
- package/dist/src/measure-concat.js +4 -1
- package/dist/src/measure-concat.js.map +1 -1
- package/dist/src/module-request.js +25 -38
- package/dist/src/module-request.js.map +1 -1
- package/dist/src/module-resolver-options.js +2 -3
- package/dist/src/module-resolver-options.js.map +1 -1
- package/dist/src/module-resolver.js +26 -32
- package/dist/src/module-resolver.js.map +1 -1
- package/dist/src/node-resolve.js +13 -12
- package/dist/src/node-resolve.js.map +1 -1
- package/dist/src/options.js +3 -3
- package/dist/src/options.js.map +1 -1
- package/dist/src/portable.js +1 -0
- package/dist/src/portable.js.map +1 -1
- package/dist/src/resolver-loader.js +15 -29
- package/dist/src/resolver-loader.js.map +1 -1
- package/dist/src/virtual-content.js +1 -1
- package/dist/src/virtual-content.js.map +1 -1
- package/dist/src/virtual-entrypoint.js +2 -3
- package/dist/src/virtual-entrypoint.js.map +1 -1
- package/dist/src/virtual-route-entrypoint.js +1 -1
- package/dist/src/virtual-route-entrypoint.js.map +1 -1
- package/dist/src/wait-for-trees.js +2 -0
- package/dist/src/wait-for-trees.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -56,6 +56,7 @@ function logTransition(reason, before, after = before) {
|
|
|
56
56
|
}
|
|
57
57
|
const compatPattern = /@embroider\/virtual\/(?<type>[^\/]+)\/(?<rest>.*)/;
|
|
58
58
|
class Resolver {
|
|
59
|
+
options;
|
|
59
60
|
constructor(options) {
|
|
60
61
|
this.options = options;
|
|
61
62
|
}
|
|
@@ -211,7 +212,6 @@ class Resolver {
|
|
|
211
212
|
return request;
|
|
212
213
|
}
|
|
213
214
|
handleFastbootSwitch(request) {
|
|
214
|
-
var _a;
|
|
215
215
|
if (request.resolvedTo) {
|
|
216
216
|
return request;
|
|
217
217
|
}
|
|
@@ -251,8 +251,8 @@ class Resolver {
|
|
|
251
251
|
request.alias((0, shared_internals_2.explicitRelative)((0, path_1.dirname)(request.fromFile), (0, path_1.resolve)(pkg.root, targetFile))));
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
|
-
let entry =
|
|
255
|
-
if (
|
|
254
|
+
let entry = this.getEntryFromMergeMap(rel, pkg.root)?.entry;
|
|
255
|
+
if (entry?.type === 'both') {
|
|
256
256
|
return logTransition('matched addon entry', request, request.alias(entry[section].specifier).rehome(entry[section].fromFile));
|
|
257
257
|
}
|
|
258
258
|
}
|
|
@@ -273,7 +273,7 @@ class Resolver {
|
|
|
273
273
|
}
|
|
274
274
|
filename = filename.slice(0, -1);
|
|
275
275
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
276
|
-
if (!
|
|
276
|
+
if (!pkg?.isV2Ember()) {
|
|
277
277
|
throw new Error(`bug: found implicit modules import in non-ember package at ${request.fromFile}`);
|
|
278
278
|
}
|
|
279
279
|
let type = `implicit-${variant}modules`;
|
|
@@ -289,7 +289,6 @@ class Resolver {
|
|
|
289
289
|
return request;
|
|
290
290
|
}
|
|
291
291
|
handleEntrypoint(request) {
|
|
292
|
-
var _a;
|
|
293
292
|
if (request.resolvedTo) {
|
|
294
293
|
return request;
|
|
295
294
|
}
|
|
@@ -299,7 +298,7 @@ class Resolver {
|
|
|
299
298
|
return request;
|
|
300
299
|
}
|
|
301
300
|
const requestingPkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
302
|
-
if (!
|
|
301
|
+
if (!requestingPkg?.isV2Ember()) {
|
|
303
302
|
throw new Error(`bug: found entrypoint import in non-ember package at ${request.fromFile}`);
|
|
304
303
|
}
|
|
305
304
|
let pkg;
|
|
@@ -314,7 +313,7 @@ class Resolver {
|
|
|
314
313
|
browser: true,
|
|
315
314
|
conditions: ['default', 'imports'],
|
|
316
315
|
});
|
|
317
|
-
let specifier = (0, path_1.resolve)(pkg.root,
|
|
316
|
+
let specifier = (0, path_1.resolve)(pkg.root, matched?.[0] ?? '-embroider-entrypoint.js');
|
|
318
317
|
return logTransition('entrypoint', request, request.virtualize({
|
|
319
318
|
type: 'entrypoint',
|
|
320
319
|
specifier,
|
|
@@ -331,7 +330,7 @@ class Resolver {
|
|
|
331
330
|
}
|
|
332
331
|
let routeName = request.specifier.slice(publicPrefix.length);
|
|
333
332
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
334
|
-
if (!
|
|
333
|
+
if (!pkg?.isV2Ember()) {
|
|
335
334
|
throw new Error(`bug: found entrypoint import in non-ember package at ${request.fromFile}`);
|
|
336
335
|
}
|
|
337
336
|
let matched = (0, resolve_exports_1.exports)(pkg.packageJSON, '-embroider-route-entrypoint.js', {
|
|
@@ -347,7 +346,7 @@ class Resolver {
|
|
|
347
346
|
return request;
|
|
348
347
|
}
|
|
349
348
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
350
|
-
if (
|
|
349
|
+
if (pkg?.root !== this.options.engines[0].root) {
|
|
351
350
|
throw new Error(`bug: found an import of ${request.specifier} in ${request.fromFile}, but this is not the top-level Ember app. The top-level Ember app is the only one that has support for @embroider/virtual/test-support.js. If you think something should be fixed in Embroider, please open an issue on https://github.com/embroider-build/embroider/issues.`);
|
|
352
351
|
}
|
|
353
352
|
return logTransition('test-support', request, request.virtualize({ type: 'test-support-js', specifier: (0, path_1.resolve)(pkg.root, '-embroider-test-support.js') }));
|
|
@@ -357,7 +356,7 @@ class Resolver {
|
|
|
357
356
|
return request;
|
|
358
357
|
}
|
|
359
358
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
360
|
-
if (
|
|
359
|
+
if (pkg?.root !== this.options.engines[0].root) {
|
|
361
360
|
throw new Error(`bug: found an import of ${request.specifier} in ${request.fromFile}, but this is not the top-level Ember app. The top-level Ember app is the only one that has support for @embroider/virtual/test-support.css. If you think something should be fixed in Embroider, please open an issue on https://github.com/embroider-build/embroider/issues.`);
|
|
362
361
|
}
|
|
363
362
|
return logTransition('test-support-styles', request, request.virtualize({
|
|
@@ -375,7 +374,7 @@ class Resolver {
|
|
|
375
374
|
}
|
|
376
375
|
let { type, rest } = match.groups;
|
|
377
376
|
let fromPkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
378
|
-
if (!
|
|
377
|
+
if (!fromPkg?.isV2Ember()) {
|
|
379
378
|
return request;
|
|
380
379
|
}
|
|
381
380
|
let engine = this.owningEngine(fromPkg);
|
|
@@ -399,7 +398,7 @@ class Resolver {
|
|
|
399
398
|
return request;
|
|
400
399
|
}
|
|
401
400
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
402
|
-
if (!pkg || !this.options.engines.some(e => e.root ===
|
|
401
|
+
if (!pkg || !this.options.engines.some(e => e.root === pkg?.root)) {
|
|
403
402
|
throw new Error(`bug: found an import of ${request.specifier} in ${request.fromFile}, but this is not the top-level Ember app or Engine. The top-level Ember app is the only one that has support for @embroider/virtual/vendor.css. If you think something should be fixed in Embroider, please open an issue on https://github.com/embroider-build/embroider/issues.`);
|
|
404
403
|
}
|
|
405
404
|
return logTransition('vendor-styles', request, request.virtualize({ type: 'vendor-css', specifier: (0, path_1.resolve)(pkg.root, '-embroider-vendor-styles.css') }));
|
|
@@ -409,7 +408,6 @@ class Resolver {
|
|
|
409
408
|
return logTransition('resolveHelper', request, request.alias(`${target.packageName}/helpers/${target.memberName}`).rehome((0, path_1.resolve)(inEngine.root, 'package.json')));
|
|
410
409
|
}
|
|
411
410
|
async resolveComponent(path, inEngine, request) {
|
|
412
|
-
var _a, _b;
|
|
413
411
|
let target = this.parseGlobalPath(path, inEngine);
|
|
414
412
|
let hbsModule = null;
|
|
415
413
|
let jsModule = null;
|
|
@@ -441,9 +439,9 @@ class Resolver {
|
|
|
441
439
|
return logTransition(`resolveComponent found legacy HBS`, request, request.virtualize({
|
|
442
440
|
type: 'component-pair',
|
|
443
441
|
hbsModule: hbsModule.filename,
|
|
444
|
-
jsModule:
|
|
442
|
+
jsModule: jsModule?.filename ?? null,
|
|
445
443
|
debugName: (0, path_1.basename)(hbsModule.filename).replace(/\.(js|hbs)$/, ''),
|
|
446
|
-
specifier: `${this.options.appRoot}/embroider-pair-component/${encodeURIComponent(hbsModule.filename)}/__vpc__/${encodeURIComponent(
|
|
444
|
+
specifier: `${this.options.appRoot}/embroider-pair-component/${encodeURIComponent(hbsModule.filename)}/__vpc__/${encodeURIComponent(jsModule?.filename ?? '')}`,
|
|
447
445
|
}));
|
|
448
446
|
}
|
|
449
447
|
else if (jsModule) {
|
|
@@ -551,7 +549,7 @@ class Resolver {
|
|
|
551
549
|
}
|
|
552
550
|
reverse.set((0, path_1.resolve)(addon.root, inAddonName), { inEngineName, owningPackageRoot: addon.root });
|
|
553
551
|
let prevEntry = engineModules.get(inEngineName);
|
|
554
|
-
switch (prevEntry
|
|
552
|
+
switch (prevEntry?.type) {
|
|
555
553
|
case undefined:
|
|
556
554
|
engineModules.set(inEngineName, {
|
|
557
555
|
type: 'app-only',
|
|
@@ -595,7 +593,7 @@ class Resolver {
|
|
|
595
593
|
}
|
|
596
594
|
reverse.set((0, path_1.resolve)(addon.root, inAddonName), { inEngineName, owningPackageRoot: addon.root });
|
|
597
595
|
let prevEntry = engineModules.get(inEngineName);
|
|
598
|
-
switch (prevEntry
|
|
596
|
+
switch (prevEntry?.type) {
|
|
599
597
|
case undefined:
|
|
600
598
|
engineModules.set(inEngineName, {
|
|
601
599
|
type: 'fastboot-only',
|
|
@@ -699,7 +697,6 @@ class Resolver {
|
|
|
699
697
|
return request;
|
|
700
698
|
}
|
|
701
699
|
handleRenaming(request) {
|
|
702
|
-
var _a;
|
|
703
700
|
if (request.resolvedTo) {
|
|
704
701
|
return request;
|
|
705
702
|
}
|
|
@@ -712,7 +709,7 @@ class Resolver {
|
|
|
712
709
|
// ember-source might provide backburner via module renaming, but if you
|
|
713
710
|
// have an explicit dependency on backburner you should still get that real
|
|
714
711
|
// copy.
|
|
715
|
-
if (!
|
|
712
|
+
if (!pkg?.hasDependency(packageName)) {
|
|
716
713
|
for (let [candidate, replacement] of Object.entries(this.options.renameModules)) {
|
|
717
714
|
if (candidate === request.specifier) {
|
|
718
715
|
return logTransition(`renameModules`, request, request.alias(replacement));
|
|
@@ -735,7 +732,7 @@ class Resolver {
|
|
|
735
732
|
}
|
|
736
733
|
if (pkg.name === packageName) {
|
|
737
734
|
// we found a self-import
|
|
738
|
-
if (
|
|
735
|
+
if (pkg.meta?.['auto-upgraded'] && !pkg.isEngine()) {
|
|
739
736
|
// auto-upgraded packages always get automatically adjusted. They never
|
|
740
737
|
// supported fancy package.json exports features so this direct mapping
|
|
741
738
|
// to the root is always right.
|
|
@@ -773,8 +770,8 @@ class Resolver {
|
|
|
773
770
|
browser: true,
|
|
774
771
|
conditions: ['default', 'imports'],
|
|
775
772
|
});
|
|
776
|
-
if (found
|
|
777
|
-
return logTransition(`v2 self-import with package.json exports`, request, request.alias(found
|
|
773
|
+
if (found?.[0]) {
|
|
774
|
+
return logTransition(`v2 self-import with package.json exports`, request, request.alias(found?.[0]).rehome((0, path_1.resolve)(pkg.root, 'package.json')));
|
|
778
775
|
}
|
|
779
776
|
}
|
|
780
777
|
}
|
|
@@ -785,7 +782,7 @@ class Resolver {
|
|
|
785
782
|
return request;
|
|
786
783
|
}
|
|
787
784
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
788
|
-
if (
|
|
785
|
+
if (pkg?.root !== this.options.engines[0].root) {
|
|
789
786
|
throw new Error(`bug: found an import of ${request.specifier} in ${request.fromFile}, but this is not the top-level Ember app. The top-level Ember app is the only one that has support for @embroider/virtual/vendor.js. If you think something should be fixed in Embroider, please open an issue on https://github.com/embroider-build/embroider/issues.`);
|
|
790
787
|
}
|
|
791
788
|
return logTransition('vendor', request, request.virtualize({ type: 'vendor-js', specifier: (0, path_1.resolve)(pkg.root, '-embroider-vendor.js') }));
|
|
@@ -805,7 +802,6 @@ class Resolver {
|
|
|
805
802
|
return newRequest.withMeta({ originalFromFile });
|
|
806
803
|
}
|
|
807
804
|
preHandleExternal(request) {
|
|
808
|
-
var _a;
|
|
809
805
|
if (request.resolvedTo) {
|
|
810
806
|
return request;
|
|
811
807
|
}
|
|
@@ -846,7 +842,7 @@ class Resolver {
|
|
|
846
842
|
// package to which it belongs (normally the app) that affects some policy
|
|
847
843
|
// choices about what it can import
|
|
848
844
|
let logicalPackage = this.logicalPackage(pkg, fromFile);
|
|
849
|
-
if (
|
|
845
|
+
if (logicalPackage.meta?.['auto-upgraded'] && !logicalPackage.hasDependency('ember-auto-import')) {
|
|
850
846
|
try {
|
|
851
847
|
let dep = this.packageCache.resolve(packageName, logicalPackage);
|
|
852
848
|
if (!dep.isEmberAddon()) {
|
|
@@ -922,7 +918,7 @@ class Resolver {
|
|
|
922
918
|
})();
|
|
923
919
|
request = this.restoreRehomedRequest(request);
|
|
924
920
|
let pkg = this.packageCache.ownerOfFile(request.fromFile);
|
|
925
|
-
if (!
|
|
921
|
+
if (!pkg?.isV2Ember()) {
|
|
926
922
|
// this request is coming from a file that appears to be owned by no ember
|
|
927
923
|
// package. We offer one fallback behavior for such files. They're allowed
|
|
928
924
|
// to resolve from the app's namespace.
|
|
@@ -974,11 +970,10 @@ class Resolver {
|
|
|
974
970
|
return abortFallback('fallbackResolve final exit');
|
|
975
971
|
}
|
|
976
972
|
restoreRehomedRequest(request) {
|
|
977
|
-
var _a;
|
|
978
973
|
// meta.originalFromFile gets set when we want to try to rehome a request
|
|
979
974
|
// but then come back to the original location here in the fallback when the
|
|
980
975
|
// rehomed request fails
|
|
981
|
-
let originalFromFile =
|
|
976
|
+
let originalFromFile = request.meta?.originalFromFile;
|
|
982
977
|
if (typeof originalFromFile === 'string') {
|
|
983
978
|
return request.rehome(originalFromFile);
|
|
984
979
|
}
|
|
@@ -1017,10 +1012,9 @@ class Resolver {
|
|
|
1017
1012
|
}
|
|
1018
1013
|
}
|
|
1019
1014
|
getEntryFromMergeMap(inEngineSpecifier, root) {
|
|
1020
|
-
var _a;
|
|
1021
1015
|
let entry;
|
|
1022
1016
|
for (let candidate of this.withResolvableExtensions(inEngineSpecifier)) {
|
|
1023
|
-
entry =
|
|
1017
|
+
entry = this.mergeMap.get(root)?.get(candidate);
|
|
1024
1018
|
if (entry) {
|
|
1025
1019
|
return { entry, matched: candidate };
|
|
1026
1020
|
}
|
|
@@ -1038,7 +1032,7 @@ class Resolver {
|
|
|
1038
1032
|
}
|
|
1039
1033
|
async searchAppTree(request, engine, inEngineSpecifier) {
|
|
1040
1034
|
let matched = this.getEntryFromMergeMap(inEngineSpecifier, engine.root);
|
|
1041
|
-
switch (matched
|
|
1035
|
+
switch (matched?.entry.type) {
|
|
1042
1036
|
case undefined:
|
|
1043
1037
|
return undefined;
|
|
1044
1038
|
case 'app-only':
|
|
@@ -1070,7 +1064,7 @@ class Resolver {
|
|
|
1070
1064
|
// its dasherized name
|
|
1071
1065
|
reverseComponentLookup(filename) {
|
|
1072
1066
|
const owningPackage = this.packageCache.ownerOfFile(filename);
|
|
1073
|
-
if (!
|
|
1067
|
+
if (!owningPackage?.isV2Ember()) {
|
|
1074
1068
|
return;
|
|
1075
1069
|
}
|
|
1076
1070
|
let engineConfig = this.options.engines.find(e => e.root === owningPackage.root);
|