@embroider/core 3.4.20-unstable.aaeb674 → 3.4.20-unstable.b470496

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.
Files changed (42) hide show
  1. package/package.json +5 -5
  2. package/src/index.d.ts +3 -3
  3. package/src/index.js +3 -3
  4. package/src/index.js.map +1 -1
  5. package/src/module-request.d.ts +43 -0
  6. package/src/module-request.js +91 -0
  7. package/src/module-request.js.map +1 -0
  8. package/src/module-resolver-options.d.ts +0 -2
  9. package/src/module-resolver-options.js +0 -3
  10. package/src/module-resolver-options.js.map +1 -1
  11. package/src/module-resolver.d.ts +1 -29
  12. package/src/module-resolver.js +125 -198
  13. package/src/module-resolver.js.map +1 -1
  14. package/src/node-resolve.d.ts +13 -16
  15. package/src/node-resolve.js +38 -57
  16. package/src/node-resolve.js.map +1 -1
  17. package/src/options.d.ts +0 -3
  18. package/src/options.js.map +1 -1
  19. package/src/virtual-content.d.ts +24 -12
  20. package/src/virtual-content.js +35 -218
  21. package/src/virtual-content.js.map +1 -1
  22. package/src/virtual-entrypoint.d.ts +4 -2
  23. package/src/virtual-entrypoint.js +2 -18
  24. package/src/virtual-entrypoint.js.map +1 -1
  25. package/src/virtual-route-entrypoint.d.ts +4 -9
  26. package/src/virtual-route-entrypoint.js +5 -44
  27. package/src/virtual-route-entrypoint.js.map +1 -1
  28. package/src/virtual-test-support-styles.d.ts +5 -2
  29. package/src/virtual-test-support-styles.js +2 -5
  30. package/src/virtual-test-support-styles.js.map +1 -1
  31. package/src/virtual-test-support.d.ts +5 -2
  32. package/src/virtual-test-support.js +2 -5
  33. package/src/virtual-test-support.js.map +1 -1
  34. package/src/virtual-vendor-styles.d.ts +5 -1
  35. package/src/virtual-vendor-styles.js +2 -1
  36. package/src/virtual-vendor-styles.js.map +1 -1
  37. package/src/virtual-vendor.d.ts +5 -2
  38. package/src/virtual-vendor.js +6 -25
  39. package/src/virtual-vendor.js.map +1 -1
  40. package/src/to-broccoli-plugin.d.ts +0 -8
  41. package/src/to-broccoli-plugin.js +0 -30
  42. package/src/to-broccoli-plugin.js.map +0 -1
@@ -3,29 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.decodeVirtualVendor = decodeVirtualVendor;
7
6
  exports.renderVendor = renderVendor;
8
7
  const shared_internals_1 = require("@embroider/shared-internals");
9
8
  const fs_extra_1 = require("fs-extra");
10
- const lodash_1 = require("lodash");
11
9
  const path_1 = require("path");
12
10
  const resolve_1 = __importDefault(require("resolve"));
13
- function decodeVirtualVendor(filename) {
14
- return filename.endsWith('-embroider-vendor.js');
15
- }
16
- function renderVendor(filename, resolver) {
17
- const owner = resolver.packageCache.ownerOfFile(filename);
11
+ function renderVendor(response, resolver) {
12
+ const owner = resolver.packageCache.ownerOfFile(response.specifier);
18
13
  if (!owner) {
19
- throw new Error(`Failed to find a valid owner for ${filename}`);
14
+ throw new Error(`Failed to find a valid owner for ${response.specifier}`);
20
15
  }
21
- return { src: getVendor(owner, resolver, filename), watches: [] };
16
+ return { src: getVendor(owner, resolver, response.specifier), watches: [] };
22
17
  }
23
18
  function getVendor(owner, resolver, filename) {
24
19
  let engineConfig = resolver.owningEngine(owner);
25
- let addons = new Map(engineConfig.activeAddons.map(addon => [
26
- resolver.packageCache.get(addon.root),
27
- addon.canResolveFromFile,
28
- ]));
20
+ let addons = engineConfig.activeAddons.map(addon => resolver.packageCache.get(addon.root));
29
21
  let path = (0, path_1.join)((0, shared_internals_1.locateEmbroiderWorkingDir)(resolver.options.appRoot), 'ember-env.json');
30
22
  if (!(0, fs_extra_1.lstatSync)(path).isFile()) {
31
23
  throw new Error(`Failed to read the ember-env.json when generating content for ${filename}`);
@@ -43,22 +35,11 @@ function generateVendor(addons, emberENV) {
43
35
  vendor.unshift(`var runningTests=false;`);
44
36
  // Add _ember_env_.js
45
37
  vendor.unshift(`window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`);
46
- // Add _loader_.js
47
- vendor.push(`loader.makeDefaultExport=false;`);
48
38
  return vendor.join('');
49
39
  }
50
40
  function impliedAddonVendors(addons) {
51
41
  let result = [];
52
- for (let addon of (0, lodash_1.sortBy)(Array.from(addons.keys()), pkg => {
53
- switch (pkg.name) {
54
- case 'loader.js':
55
- return 0;
56
- case 'ember-source':
57
- return 10;
58
- default:
59
- return 1000;
60
- }
61
- })) {
42
+ for (let addon of addons) {
62
43
  let implicitScripts = addon.meta['implicit-scripts'];
63
44
  if (implicitScripts) {
64
45
  let options = { basedir: addon.root };
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-vendor.js","sourceRoot":"","sources":["virtual-vendor.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Package, locateEmbroiderWorkingDir } from '@embroider/shared-internals';\nimport type { V2AddonPackage } from '@embroider/shared-internals/src/package';\nimport { lstatSync, readFileSync, readJSONSync } from 'fs-extra';\nimport { sortBy } from 'lodash';\nimport { join } from 'path';\nimport resolve from 'resolve';\nimport type { Resolver } from './module-resolver';\nimport type { VirtualContentResult } from './virtual-content';\n\nexport function decodeVirtualVendor(filename: string): boolean {\n return filename.endsWith('-embroider-vendor.js');\n}\n\nexport function renderVendor(filename: string, resolver: Resolver): VirtualContentResult {\n const owner = resolver.packageCache.ownerOfFile(filename);\n if (!owner) {\n throw new Error(`Failed to find a valid owner for ${filename}`);\n }\n return { src: getVendor(owner, resolver, filename), watches: [] };\n}\n\nfunction getVendor(owner: Package, resolver: Resolver, filename: string): string {\n let engineConfig = resolver.owningEngine(owner);\n let addons = new Map(\n engineConfig.activeAddons.map(addon => [\n resolver.packageCache.get(addon.root) as V2AddonPackage,\n addon.canResolveFromFile,\n ])\n );\n\n let path = join(locateEmbroiderWorkingDir(resolver.options.appRoot), 'ember-env.json');\n if (!lstatSync(path).isFile()) {\n throw new Error(`Failed to read the ember-env.json when generating content for ${filename}`);\n }\n let emberENV = readJSONSync(path);\n\n return generateVendor(addons, emberENV);\n}\n\nfunction generateVendor(addons: Map<V2AddonPackage, string>, emberENV?: unknown): string {\n // Add addons implicit-scripts\n let vendor: string[] = impliedAddonVendors(addons).map((sourcePath: string): string => {\n let source = readFileSync(sourcePath);\n return `${source}`;\n });\n // Add _testing_prefix_.js\n vendor.unshift(`var runningTests=false;`);\n // Add _ember_env_.js\n vendor.unshift(`window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`);\n // Add _loader_.js\n vendor.push(`loader.makeDefaultExport=false;`);\n\n return vendor.join('') as string;\n}\n\nfunction impliedAddonVendors(addons: Map<V2AddonPackage, string>): string[] {\n let result: Array<string> = [];\n for (let addon of sortBy(Array.from(addons.keys()), pkg => {\n switch (pkg.name) {\n case 'loader.js':\n return 0;\n case 'ember-source':\n return 10;\n default:\n return 1000;\n }\n })) {\n let implicitScripts = addon.meta['implicit-scripts'];\n if (implicitScripts) {\n let options = { basedir: addon.root };\n for (let mod of implicitScripts) {\n result.push(resolve.sync(mod, options));\n }\n }\n }\n return result;\n}\n"]}
1
+ {"version":3,"file":"virtual-vendor.js","sourceRoot":"","sources":["virtual-vendor.ts"],"names":[],"mappings":";;;;;AAaA,oCAMC;AAnBD,kEAAsF;AAEtF,uCAAiE;AACjE,+BAA4B;AAC5B,sDAA8B;AAS9B,SAAgB,YAAY,CAAC,QAA+B,EAAE,QAAkB;IAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,QAAkB,EAAE,QAAgB;IACrE,IAAI,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC,CAAC;IAE7G,IAAI,IAAI,GAAG,IAAA,WAAI,EAAC,IAAA,4CAAyB,EAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACvF,IAAI,CAAC,IAAA,oBAAS,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iEAAiE,QAAQ,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,QAAQ,GAAG,IAAA,uBAAY,EAAC,IAAI,CAAC,CAAC;IAElC,OAAO,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB,EAAE,QAAkB;IAClE,8BAA8B;IAC9B,IAAI,MAAM,GAAa,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAkB,EAAU,EAAE;QACpF,IAAI,MAAM,GAAG,IAAA,uBAAY,EAAC,UAAU,CAAC,CAAC;QACtC,OAAO,GAAG,MAAM,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1C,qBAAqB;IACrB,MAAM,CAAC,OAAO,CAAC,oDAAoD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAE3G,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAW,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAwB;IACnD,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,iBAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { type Package, locateEmbroiderWorkingDir } from '@embroider/shared-internals';\nimport type { V2AddonPackage } from '@embroider/shared-internals/src/package';\nimport { lstatSync, readFileSync, readJSONSync } from 'fs-extra';\nimport { join } from 'path';\nimport resolve from 'resolve';\nimport type { Resolver } from './module-resolver';\nimport type { VirtualContentResult } from './virtual-content';\n\nexport interface VirtualVendorResponse {\n type: 'vendor-js';\n specifier: string;\n}\n\nexport function renderVendor(response: VirtualVendorResponse, resolver: Resolver): VirtualContentResult {\n const owner = resolver.packageCache.ownerOfFile(response.specifier);\n if (!owner) {\n throw new Error(`Failed to find a valid owner for ${response.specifier}`);\n }\n return { src: getVendor(owner, resolver, response.specifier), watches: [] };\n}\n\nfunction getVendor(owner: Package, resolver: Resolver, filename: string): string {\n let engineConfig = resolver.owningEngine(owner);\n let addons = engineConfig.activeAddons.map(addon => resolver.packageCache.get(addon.root) as V2AddonPackage);\n\n let path = join(locateEmbroiderWorkingDir(resolver.options.appRoot), 'ember-env.json');\n if (!lstatSync(path).isFile()) {\n throw new Error(`Failed to read the ember-env.json when generating content for ${filename}`);\n }\n let emberENV = readJSONSync(path);\n\n return generateVendor(addons, emberENV);\n}\n\nfunction generateVendor(addons: V2AddonPackage[], emberENV?: unknown): string {\n // Add addons implicit-scripts\n let vendor: string[] = impliedAddonVendors(addons).map((sourcePath: string): string => {\n let source = readFileSync(sourcePath);\n return `${source}`;\n });\n // Add _testing_prefix_.js\n vendor.unshift(`var runningTests=false;`);\n // Add _ember_env_.js\n vendor.unshift(`window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`);\n\n return vendor.join('') as string;\n}\n\nfunction impliedAddonVendors(addons: V2AddonPackage[]): string[] {\n let result: Array<string> = [];\n for (let addon of addons) {\n let implicitScripts = addon.meta['implicit-scripts'];\n if (implicitScripts) {\n let options = { basedir: addon.root };\n for (let mod of implicitScripts) {\n result.push(resolve.sync(mod, options));\n }\n }\n }\n return result;\n}\n"]}
@@ -1,8 +0,0 @@
1
- import Plugin from 'broccoli-plugin';
2
- import type { PackagerConstructor, Variant } from './packager';
3
- import type Stage from './stage';
4
- interface BroccoliPackager<Options> {
5
- new (stage: Stage, variants: Variant[], options?: Options): Plugin;
6
- }
7
- export default function toBroccoliPlugin<Options>(packagerClass: PackagerConstructor<Options>): BroccoliPackager<Options>;
8
- export {};
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = toBroccoliPlugin;
7
- const broccoli_plugin_1 = __importDefault(require("broccoli-plugin"));
8
- const shared_internals_1 = require("@embroider/shared-internals");
9
- function toBroccoliPlugin(packagerClass) {
10
- class PackagerRunner extends broccoli_plugin_1.default {
11
- constructor(stage, variants, options) {
12
- super([stage.tree], {
13
- persistentOutput: true,
14
- needsCache: false,
15
- annotation: packagerClass.annotation,
16
- });
17
- this.stage = stage;
18
- this.variants = variants;
19
- this.options = options;
20
- }
21
- async build() {
22
- if (!this.packager) {
23
- this.packager = new packagerClass(this.stage.inputPath, this.outputPath, this.variants, msg => console.log(msg.split(shared_internals_1.tmpdir).join('$TMPDIR')), this.options);
24
- }
25
- return this.packager.build();
26
- }
27
- }
28
- return PackagerRunner;
29
- }
30
- //# sourceMappingURL=to-broccoli-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-broccoli-plugin.js","sourceRoot":"","sources":["to-broccoli-plugin.ts"],"names":[],"mappings":";;;;;AASA,mCA2BC;AApCD,sEAAqC;AAGrC,kEAAqD;AAMrD,SAAwB,gBAAgB,CACtC,aAA2C;IAE3C,MAAM,cAAe,SAAQ,yBAAM;QAEjC,YAAoB,KAAY,EAAU,QAAmB,EAAU,OAAiB;YACtF,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClB,gBAAgB,EAAE,IAAI;gBACtB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,aAAa,CAAC,UAAU;aACrC,CAAC,CAAC;YALe,UAAK,GAAL,KAAK,CAAO;YAAU,aAAQ,GAAR,QAAQ,CAAW;YAAU,YAAO,GAAP,OAAO,CAAU;QAMxF,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACrD,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;KACF;IACD,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import Plugin from 'broccoli-plugin';\nimport type { Packager, PackagerConstructor, Variant } from './packager';\nimport type Stage from './stage';\nimport { tmpdir } from '@embroider/shared-internals';\n\ninterface BroccoliPackager<Options> {\n new (stage: Stage, variants: Variant[], options?: Options): Plugin;\n}\n\nexport default function toBroccoliPlugin<Options>(\n packagerClass: PackagerConstructor<Options>\n): BroccoliPackager<Options> {\n class PackagerRunner extends Plugin {\n private packager: Packager | undefined;\n constructor(private stage: Stage, private variants: Variant[], private options?: Options) {\n super([stage.tree], {\n persistentOutput: true,\n needsCache: false,\n annotation: packagerClass.annotation,\n });\n }\n\n async build() {\n if (!this.packager) {\n this.packager = new packagerClass(\n this.stage.inputPath,\n this.outputPath,\n this.variants,\n msg => console.log(msg.split(tmpdir).join('$TMPDIR')),\n this.options\n );\n }\n return this.packager.build();\n }\n }\n return PackagerRunner;\n}\n"]}