@embroider/core 3.4.16-unstable.f7656a3 → 3.4.16

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 (53) hide show
  1. package/package.json +8 -9
  2. package/src/app-files.d.ts +5 -3
  3. package/src/app-files.js +8 -25
  4. package/src/app-files.js.map +1 -1
  5. package/src/asset.d.ts +32 -0
  6. package/src/asset.js +3 -0
  7. package/src/asset.js.map +1 -0
  8. package/src/ember-html.d.ts +43 -0
  9. package/src/ember-html.js +110 -0
  10. package/src/ember-html.js.map +1 -0
  11. package/src/index.d.ts +2 -2
  12. package/src/index.js.map +1 -1
  13. package/src/module-resolver.d.ts +45 -28
  14. package/src/module-resolver.js +258 -428
  15. package/src/module-resolver.js.map +1 -1
  16. package/src/options.d.ts +4 -0
  17. package/src/options.js +1 -0
  18. package/src/options.js.map +1 -1
  19. package/src/portable-babel-config.d.ts +11 -0
  20. package/src/portable-babel-config.js +132 -0
  21. package/src/portable-babel-config.js.map +1 -0
  22. package/src/portable-babel-launcher.d.ts +6 -0
  23. package/src/portable-babel-launcher.js +75 -0
  24. package/src/portable-babel-launcher.js.map +1 -0
  25. package/src/resolver-loader.js +1 -8
  26. package/src/resolver-loader.js.map +1 -1
  27. package/src/virtual-content.d.ts +2 -6
  28. package/src/virtual-content.js +61 -117
  29. package/src/virtual-content.js.map +1 -1
  30. package/src/module-resolver-options.d.ts +0 -44
  31. package/src/module-resolver-options.js +0 -167
  32. package/src/module-resolver-options.js.map +0 -1
  33. package/src/node-resolve.d.ts +0 -33
  34. package/src/node-resolve.js +0 -131
  35. package/src/node-resolve.js.map +0 -1
  36. package/src/virtual-entrypoint.d.ts +0 -19
  37. package/src/virtual-entrypoint.js +0 -289
  38. package/src/virtual-entrypoint.js.map +0 -1
  39. package/src/virtual-route-entrypoint.d.ts +0 -15
  40. package/src/virtual-route-entrypoint.js +0 -101
  41. package/src/virtual-route-entrypoint.js.map +0 -1
  42. package/src/virtual-test-support-styles.d.ts +0 -4
  43. package/src/virtual-test-support-styles.js +0 -64
  44. package/src/virtual-test-support-styles.js.map +0 -1
  45. package/src/virtual-test-support.d.ts +0 -4
  46. package/src/virtual-test-support.js +0 -68
  47. package/src/virtual-test-support.js.map +0 -1
  48. package/src/virtual-vendor-styles.d.ts +0 -4
  49. package/src/virtual-vendor-styles.js +0 -82
  50. package/src/virtual-vendor-styles.js.map +0 -1
  51. package/src/virtual-vendor.d.ts +0 -4
  52. package/src/virtual-vendor.js +0 -72
  53. package/src/virtual-vendor.js.map +0 -1
@@ -1,82 +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.decodeVirtualVendorStyles = decodeVirtualVendorStyles;
7
- exports.renderVendorStyles = renderVendorStyles;
8
- const fs_1 = require("fs");
9
- const lodash_1 = require("lodash");
10
- const resolve_1 = __importDefault(require("resolve"));
11
- function decodeVirtualVendorStyles(filename) {
12
- return filename.endsWith('-embroider-vendor-styles.css');
13
- }
14
- function renderVendorStyles(filename, resolver) {
15
- const owner = resolver.packageCache.ownerOfFile(filename);
16
- if (!owner) {
17
- throw new Error(`Failed to find a valid owner for ${filename}`);
18
- }
19
- return { src: getVendorStyles(owner, resolver), watches: [] };
20
- }
21
- function getVendorStyles(owner, resolver) {
22
- let engineConfig = resolver.owningEngine(owner);
23
- let engine = {
24
- package: owner,
25
- addons: new Map(engineConfig.activeAddons.map(addon => [
26
- resolver.packageCache.get(addon.root),
27
- addon.canResolveFromFile,
28
- ])),
29
- isApp: engineConfig.root === resolver.options.engines[0].root,
30
- modulePrefix: resolver.options.modulePrefix,
31
- appRelativePath: 'NOT_USED_DELETE_ME',
32
- };
33
- return generateVendorStyles(engine);
34
- }
35
- function generateVendorStyles(engine) {
36
- let result = impliedAddonVendorStyles(engine).map(sourcePath => (0, fs_1.readFileSync)(sourcePath, 'utf-8'));
37
- // add the engines own styles but only if it is not the top-level app, that is provided by @embroider/synthesized-styles
38
- if (!engine.isApp) {
39
- let engineStyles = [];
40
- engineStyles = getAddonImplicitStyles(engine.package).map(sourcePath => (0, fs_1.readFileSync)(sourcePath, 'utf-8'));
41
- // add engine's own implicit styles after all vendor styles
42
- if (engineStyles.length) {
43
- result = [...result, ...engineStyles];
44
- }
45
- }
46
- return result.join('');
47
- }
48
- function impliedAddonVendorStyles(engine) {
49
- let result = [];
50
- for (let addon of (0, lodash_1.sortBy)(Array.from(engine.addons.keys()), pkg => {
51
- switch (pkg.name) {
52
- case 'loader.js':
53
- return 0;
54
- case 'ember-source':
55
- return 10;
56
- default:
57
- return 1000;
58
- }
59
- })) {
60
- // exclude lazy engines because they will handle their own css importation
61
- if (addon.isLazyEngine()) {
62
- continue;
63
- }
64
- let styles = getAddonImplicitStyles(addon);
65
- if (styles.length) {
66
- result = [...styles, ...result];
67
- }
68
- }
69
- return result;
70
- }
71
- function getAddonImplicitStyles(pkg) {
72
- let implicitStyles = pkg.meta['implicit-styles'];
73
- let styles = [];
74
- if (implicitStyles) {
75
- let options = { basedir: pkg.root };
76
- for (let mod of implicitStyles) {
77
- styles.push(resolve_1.default.sync(mod, options));
78
- }
79
- }
80
- return styles;
81
- }
82
- //# sourceMappingURL=virtual-vendor-styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"virtual-vendor-styles.js","sourceRoot":"","sources":["virtual-vendor-styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Package } from '@embroider/shared-internals';\nimport type { V2AddonPackage } from '@embroider/shared-internals/src/package';\nimport { readFileSync } from 'fs';\nimport { sortBy } from 'lodash';\nimport resolve from 'resolve';\nimport type { Resolver } from './module-resolver';\nimport type { VirtualContentResult } from './virtual-content';\nimport type { Engine } from './app-files';\n\nexport function decodeVirtualVendorStyles(filename: string): boolean {\n return filename.endsWith('-embroider-vendor-styles.css');\n}\n\nexport function renderVendorStyles(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: getVendorStyles(owner, resolver), watches: [] };\n}\n\nfunction getVendorStyles(owner: Package, resolver: Resolver): string {\n let engineConfig = resolver.owningEngine(owner);\n let engine: Engine = {\n package: owner,\n addons: new Map(\n engineConfig.activeAddons.map(addon => [\n resolver.packageCache.get(addon.root) as V2AddonPackage,\n addon.canResolveFromFile,\n ])\n ),\n isApp: engineConfig.root === resolver.options.engines[0].root,\n modulePrefix: resolver.options.modulePrefix,\n appRelativePath: 'NOT_USED_DELETE_ME',\n };\n\n return generateVendorStyles(engine);\n}\n\nfunction generateVendorStyles(engine: Engine): string {\n let result: string[] = impliedAddonVendorStyles(engine).map(sourcePath => readFileSync(sourcePath, 'utf-8'));\n\n // add the engines own styles but only if it is not the top-level app, that is provided by @embroider/synthesized-styles\n if (!engine.isApp) {\n let engineStyles = [];\n\n engineStyles = getAddonImplicitStyles(engine.package as V2AddonPackage).map(sourcePath =>\n readFileSync(sourcePath, 'utf-8')\n );\n\n // add engine's own implicit styles after all vendor styles\n if (engineStyles.length) {\n result = [...result, ...engineStyles];\n }\n }\n\n return result.join('') as string;\n}\n\nfunction impliedAddonVendorStyles(engine: Engine): string[] {\n let result: Array<string> = [];\n for (let addon of sortBy(Array.from(engine.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 // exclude lazy engines because they will handle their own css importation\n if (addon.isLazyEngine()) {\n continue;\n }\n\n let styles = getAddonImplicitStyles(addon);\n\n if (styles.length) {\n result = [...styles, ...result];\n }\n }\n return result;\n}\n\nfunction getAddonImplicitStyles(pkg: V2AddonPackage): string[] {\n let implicitStyles = pkg.meta['implicit-styles'];\n let styles = [];\n if (implicitStyles) {\n let options = { basedir: pkg.root };\n for (let mod of implicitStyles) {\n styles.push(resolve.sync(mod, options));\n }\n }\n return styles;\n}\n"]}
@@ -1,4 +0,0 @@
1
- import type { Resolver } from './module-resolver';
2
- import type { VirtualContentResult } from './virtual-content';
3
- export declare function decodeVirtualVendor(filename: string): boolean;
4
- export declare function renderVendor(filename: string, resolver: Resolver): VirtualContentResult;
@@ -1,72 +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.decodeVirtualVendor = decodeVirtualVendor;
7
- exports.renderVendor = renderVendor;
8
- const shared_internals_1 = require("@embroider/shared-internals");
9
- const fs_extra_1 = require("fs-extra");
10
- const lodash_1 = require("lodash");
11
- const path_1 = require("path");
12
- 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);
18
- if (!owner) {
19
- throw new Error(`Failed to find a valid owner for ${filename}`);
20
- }
21
- return { src: getVendor(owner, resolver, filename), watches: [] };
22
- }
23
- function getVendor(owner, resolver, filename) {
24
- let engineConfig = resolver.owningEngine(owner);
25
- let addons = new Map(engineConfig.activeAddons.map(addon => [
26
- resolver.packageCache.get(addon.root),
27
- addon.canResolveFromFile,
28
- ]));
29
- let path = (0, path_1.join)((0, shared_internals_1.locateEmbroiderWorkingDir)(resolver.options.appRoot), 'ember-env.json');
30
- if (!(0, fs_extra_1.lstatSync)(path).isFile()) {
31
- throw new Error(`Failed to read the ember-env.json when generating content for ${filename}`);
32
- }
33
- let emberENV = (0, fs_extra_1.readJSONSync)(path);
34
- return generateVendor(addons, emberENV);
35
- }
36
- function generateVendor(addons, emberENV) {
37
- // Add addons implicit-scripts
38
- let vendor = impliedAddonVendors(addons).map((sourcePath) => {
39
- let source = (0, fs_extra_1.readFileSync)(sourcePath);
40
- return `${source}`;
41
- });
42
- // Add _testing_prefix_.js
43
- vendor.unshift(`var runningTests=false;`);
44
- // Add _ember_env_.js
45
- vendor.unshift(`window.EmberENV={ ...(window.EmberENV || {}), ...${JSON.stringify(emberENV, null, 2)} };`);
46
- // Add _loader_.js
47
- vendor.push(`loader.makeDefaultExport=false;`);
48
- return vendor.join('');
49
- }
50
- function impliedAddonVendors(addons) {
51
- 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
- })) {
62
- let implicitScripts = addon.meta['implicit-scripts'];
63
- if (implicitScripts) {
64
- let options = { basedir: addon.root };
65
- for (let mod of implicitScripts) {
66
- result.push(resolve_1.default.sync(mod, options));
67
- }
68
- }
69
- }
70
- return result;
71
- }
72
- //# sourceMappingURL=virtual-vendor.js.map
@@ -1 +0,0 @@
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"]}