@embroider/core 0.44.0-alpha.2 → 0.45.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 +5 -6
- package/src/app-differ.js +20 -20
- package/src/app-differ.js.map +1 -1
- package/src/app-files.js.map +1 -1
- package/src/app.js +81 -109
- package/src/app.js.map +1 -1
- package/src/asset.js.map +1 -1
- package/src/babel-import-adder.d.ts +11 -0
- package/src/babel-import-adder.js +75 -0
- package/src/babel-import-adder.js.map +1 -0
- package/src/babel-plugin-adjust-imports.d.ts +5 -6
- package/src/babel-plugin-adjust-imports.js +25 -24
- package/src/babel-plugin-adjust-imports.js.map +1 -1
- package/src/babel-plugin-inline-hbs-node.d.ts +9 -3
- package/src/babel-plugin-inline-hbs-node.js +1 -1
- package/src/babel-plugin-inline-hbs-node.js.map +1 -1
- package/src/babel-plugin-inline-hbs.d.ts +9 -7
- package/src/babel-plugin-inline-hbs.js +77 -39
- package/src/babel-plugin-inline-hbs.js.map +1 -1
- package/src/browser-index.js.map +1 -1
- package/src/build-stage.js +2 -2
- package/src/build-stage.js.map +1 -1
- package/src/describe-exports.js +6 -6
- package/src/describe-exports.js.map +1 -1
- package/src/ember-html.js +1 -1
- package/src/ember-html.js.map +1 -1
- package/src/ember-template-compiler-types.js.map +1 -1
- package/src/engine-mangler.js.map +1 -1
- package/src/html-entrypoint.js +6 -6
- package/src/html-entrypoint.js.map +1 -1
- package/src/html-placeholder.js.map +1 -1
- package/src/index.js.map +1 -1
- package/src/js-handlebars.d.ts +2 -2
- package/src/js-handlebars.js +5 -5
- package/src/js-handlebars.js.map +1 -1
- package/src/load-ember-template-compiler.js +6 -6
- package/src/load-ember-template-compiler.js.map +1 -1
- package/src/measure-concat.js +2 -2
- package/src/measure-concat.js.map +1 -1
- package/src/messages.js +6 -6
- package/src/messages.js.map +1 -1
- package/src/mini-modules-polyfill.d.ts +1 -1
- package/src/mini-modules-polyfill.js.map +1 -1
- package/src/multi-tree-diff.js +1 -1
- package/src/multi-tree-diff.js.map +1 -1
- package/src/options.js.map +1 -1
- package/src/packager.js +2 -2
- package/src/packager.js.map +1 -1
- package/src/patch-template-compiler.js +6 -5
- package/src/patch-template-compiler.js.map +1 -1
- package/src/portable-babel-config.js +1 -1
- package/src/portable-babel-config.js.map +1 -1
- package/src/portable-babel-launcher.js.map +1 -1
- package/src/portable.js +4 -4
- package/src/portable.js.map +1 -1
- package/src/rename-require-plugin.js.map +1 -1
- package/src/resolver.js.map +1 -1
- package/src/stage.js.map +1 -1
- package/src/template-colocation-plugin.d.ts +8 -9
- package/src/template-colocation-plugin.js +11 -5
- package/src/template-colocation-plugin.js.map +1 -1
- package/src/template-compiler-common.d.ts +1 -3
- package/src/template-compiler-common.js +16 -12
- package/src/template-compiler-common.js.map +1 -1
- package/src/template-compiler-node.js +10 -10
- package/src/template-compiler-node.js.map +1 -1
- package/src/to-broccoli-plugin.js.map +1 -1
- package/src/wait-for-trees.js.map +1 -1
- package/src/write-template-compiler.js +2 -2
- package/src/write-template-compiler.js.map +1 -1
- package/src/babel-plugin-inline-hbs-deps-node.d.ts +0 -14
- package/src/babel-plugin-inline-hbs-deps-node.js +0 -27
- 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 -118
- package/src/babel-plugin-inline-hbs-deps.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embroider/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A build system for EmberJS applications.",
|
|
6
6
|
"repository": {
|
|
@@ -37,11 +37,10 @@
|
|
|
37
37
|
"@babel/plugin-transform-runtime": "^7.14.5",
|
|
38
38
|
"@babel/runtime": "^7.14.5",
|
|
39
39
|
"@babel/traverse": "^7.14.5",
|
|
40
|
-
"@
|
|
41
|
-
"@embroider/
|
|
40
|
+
"@babel/types": "^7.14.5",
|
|
41
|
+
"@embroider/macros": "0.45.0",
|
|
42
|
+
"@embroider/shared-internals": "0.45.0",
|
|
42
43
|
"assert-never": "^1.2.1",
|
|
43
|
-
"babel-import-util": "^0.1.0",
|
|
44
|
-
"@ef4/babel-plugin-htmlbars-inline-precompile": "6.0.0-alpha.3",
|
|
45
44
|
"broccoli-node-api": "^1.7.0",
|
|
46
45
|
"broccoli-persistent-filter": "^3.1.2",
|
|
47
46
|
"broccoli-plugin": "^4.0.7",
|
|
@@ -77,7 +76,7 @@
|
|
|
77
76
|
"@types/tmp": "^0.1.0",
|
|
78
77
|
"fixturify": "^2.1.1",
|
|
79
78
|
"tmp": "^0.1.0",
|
|
80
|
-
"typescript": "
|
|
79
|
+
"typescript": "*"
|
|
81
80
|
},
|
|
82
81
|
"engines": {
|
|
83
82
|
"node": "12.* || 14.* || >= 16"
|
package/src/app-differ.js
CHANGED
|
@@ -38,7 +38,7 @@ class AppDiffer {
|
|
|
38
38
|
},
|
|
39
39
|
isRelocated: false,
|
|
40
40
|
locate(relativePath) {
|
|
41
|
-
return path_1.resolve(ownAppJSDir, relativePath);
|
|
41
|
+
return (0, path_1.resolve)(ownAppJSDir, relativePath);
|
|
42
42
|
},
|
|
43
43
|
});
|
|
44
44
|
if (!fastbootEnabled) {
|
|
@@ -60,7 +60,7 @@ class AppDiffer {
|
|
|
60
60
|
},
|
|
61
61
|
isRelocated: false,
|
|
62
62
|
locate(relativePath) {
|
|
63
|
-
return path_1.resolve(ownFastbootJSDir, relativePath);
|
|
63
|
+
return (0, path_1.resolve)(ownFastbootJSDir, relativePath);
|
|
64
64
|
},
|
|
65
65
|
});
|
|
66
66
|
}
|
|
@@ -68,22 +68,22 @@ class AppDiffer {
|
|
|
68
68
|
}
|
|
69
69
|
update() {
|
|
70
70
|
let { ops, sources } = this.differ.update();
|
|
71
|
-
messages_1.debug(`app-differ operations count: %s`, ops.length);
|
|
71
|
+
(0, messages_1.debug)(`app-differ operations count: %s`, ops.length);
|
|
72
72
|
for (let [operation, relativePath] of ops) {
|
|
73
|
-
let outputPath = path_1.join(this.outputPath, relativePath);
|
|
73
|
+
let outputPath = (0, path_1.join)(this.outputPath, relativePath);
|
|
74
74
|
switch (operation) {
|
|
75
75
|
case 'unlink':
|
|
76
|
-
fs_extra_1.unlinkSync(outputPath);
|
|
76
|
+
(0, fs_extra_1.unlinkSync)(outputPath);
|
|
77
77
|
this.files.delete(relativePath);
|
|
78
78
|
break;
|
|
79
79
|
case 'rmdir':
|
|
80
|
-
fs_extra_1.rmdirSync(outputPath);
|
|
80
|
+
(0, fs_extra_1.rmdirSync)(outputPath);
|
|
81
81
|
break;
|
|
82
82
|
case 'mkdir':
|
|
83
|
-
fs_extra_1.mkdirpSync(outputPath);
|
|
83
|
+
(0, fs_extra_1.mkdirpSync)(outputPath);
|
|
84
84
|
break;
|
|
85
85
|
case 'change':
|
|
86
|
-
fs_extra_1.removeSync(outputPath);
|
|
86
|
+
(0, fs_extra_1.removeSync)(outputPath);
|
|
87
87
|
// deliberate fallthrough
|
|
88
88
|
case 'create':
|
|
89
89
|
let sourceIndices = sources.get(relativePath);
|
|
@@ -96,7 +96,7 @@ class AppDiffer {
|
|
|
96
96
|
this.isFastbootOnly.set(relativePath, sourceIndices[0] >= this.firstFastbootTree);
|
|
97
97
|
let source = this.sources[sourceIndices[0]];
|
|
98
98
|
let sourceFile = source.locate(relativePath);
|
|
99
|
-
fs_extra_1.copySync(sourceFile, outputPath, { dereference: true });
|
|
99
|
+
(0, fs_extra_1.copySync)(sourceFile, outputPath, { dereference: true });
|
|
100
100
|
this.updateFiles(relativePath, source, sourceFile);
|
|
101
101
|
}
|
|
102
102
|
else {
|
|
@@ -106,18 +106,18 @@ class AppDiffer {
|
|
|
106
106
|
this.isFastbootOnly.set(relativePath, false);
|
|
107
107
|
let [browserSrc, fastbootSrc] = sourceIndices.map(i => this.sources[i]);
|
|
108
108
|
let [browserSourceFile, fastbootSourceFile] = [browserSrc, fastbootSrc].map(src => src.locate(relativePath));
|
|
109
|
-
let dir = path_1.dirname(relativePath);
|
|
110
|
-
let base = path_1.basename(relativePath);
|
|
109
|
+
let dir = (0, path_1.dirname)(relativePath);
|
|
110
|
+
let base = (0, path_1.basename)(relativePath);
|
|
111
111
|
let browserDest = `_browser_${base}`;
|
|
112
112
|
let fastbootDest = `_fastboot_${base}`;
|
|
113
|
-
fs_extra_1.copySync(browserSourceFile, path_1.join(this.outputPath, dir, browserDest), { dereference: true });
|
|
114
|
-
fs_extra_1.copySync(fastbootSourceFile, path_1.join(this.outputPath, dir, fastbootDest), { dereference: true });
|
|
115
|
-
fs_extra_1.writeFileSync(outputPath, switcher(browserDest, fastbootDest, this.babelParserConfig, fs_extra_1.readFileSync(browserSourceFile, 'utf8')));
|
|
113
|
+
(0, fs_extra_1.copySync)(browserSourceFile, (0, path_1.join)(this.outputPath, dir, browserDest), { dereference: true });
|
|
114
|
+
(0, fs_extra_1.copySync)(fastbootSourceFile, (0, path_1.join)(this.outputPath, dir, fastbootDest), { dereference: true });
|
|
115
|
+
(0, fs_extra_1.writeFileSync)(outputPath, switcher(browserDest, fastbootDest, this.babelParserConfig, (0, fs_extra_1.readFileSync)(browserSourceFile, 'utf8')));
|
|
116
116
|
this.updateFiles(relativePath, browserSrc, browserSourceFile);
|
|
117
117
|
}
|
|
118
118
|
break;
|
|
119
119
|
default:
|
|
120
|
-
assert_never_1.default(operation);
|
|
120
|
+
(0, assert_never_1.default)(operation);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -159,7 +159,7 @@ function fastbootMerge(firstFastbootTree) {
|
|
|
159
159
|
}
|
|
160
160
|
};
|
|
161
161
|
}
|
|
162
|
-
const switcherTemplate = js_handlebars_1.compile(`
|
|
162
|
+
const switcherTemplate = (0, js_handlebars_1.compile)(`
|
|
163
163
|
import { macroCondition, getGlobalConfig, importSync } from '@embroider/macros';
|
|
164
164
|
let mod;
|
|
165
165
|
if (macroCondition(getGlobalConfig().fastboot?.isRunning)){
|
|
@@ -175,7 +175,7 @@ export const {{name}} = mod.{{name}};
|
|
|
175
175
|
{{/each}}
|
|
176
176
|
`);
|
|
177
177
|
function switcher(browserDest, fastbootDest, babelParserConfig, browserSource) {
|
|
178
|
-
let { names, hasDefaultExport } = describe_exports_1.describeExports(browserSource, babelParserConfig);
|
|
178
|
+
let { names, hasDefaultExport } = (0, describe_exports_1.describeExports)(browserSource, babelParserConfig);
|
|
179
179
|
return switcherTemplate({ fastbootDest, browserDest, names: [...names], hasDefaultExport });
|
|
180
180
|
}
|
|
181
181
|
function maybeSource(addon, key) {
|
|
@@ -187,7 +187,7 @@ function maybeSource(addon, key) {
|
|
|
187
187
|
walk() {
|
|
188
188
|
return Object.entries(files).map(([externalName, internalName]) => {
|
|
189
189
|
try {
|
|
190
|
-
let stat = fs_1.statSync(path_1.resolve(addon.root, internalName));
|
|
190
|
+
let stat = (0, fs_1.statSync)((0, path_1.resolve)(addon.root, internalName));
|
|
191
191
|
return {
|
|
192
192
|
relativePath: withoutMandatoryDotSlash(externalName, [
|
|
193
193
|
'in package.json at %s in key ember-addon.%s',
|
|
@@ -216,14 +216,14 @@ function maybeSource(addon, key) {
|
|
|
216
216
|
if (!internal) {
|
|
217
217
|
throw new Error(`bug: couldn't find ${relativePath} in ${JSON.stringify(files)}`);
|
|
218
218
|
}
|
|
219
|
-
return path_1.resolve(addon.root, internal);
|
|
219
|
+
return (0, path_1.resolve)(addon.root, internal);
|
|
220
220
|
},
|
|
221
221
|
};
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
function withoutMandatoryDotSlash(filename, debugInfo) {
|
|
225
225
|
if (!filename.startsWith('./')) {
|
|
226
|
-
throw new Error(`${util_1.format(debugInfo)}: ${filename} is required to start with "./"`);
|
|
226
|
+
throw new Error(`${(0, util_1.format)(debugInfo)}: ${filename} is required to start with "./"`);
|
|
227
227
|
}
|
|
228
228
|
return filename.slice(2);
|
|
229
229
|
}
|
package/src/app-differ.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-differ.js","sourceRoot":"","sources":["app-differ.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-differ.js","sourceRoot":"","sources":["app-differ.ts"],"names":[],"mappings":"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","sourcesContent":["import { AddonPackage } from '@embroider/shared-internals';\nimport MultiTreeDiff, { InputTree } from './multi-tree-diff';\nimport walkSync from 'walk-sync';\nimport { join, basename, dirname, resolve } from 'path';\nimport { mkdirpSync, unlinkSync, rmdirSync, removeSync, copySync, writeFileSync, readFileSync } from 'fs-extra';\nimport { debug } from './messages';\nimport assertNever from 'assert-never';\nimport { describeExports } from './describe-exports';\nimport { compile } from './js-handlebars';\nimport { TransformOptions } from '@babel/core';\nimport { statSync } from 'fs';\nimport { format } from 'util';\n\nexport default class AppDiffer {\n private differ: MultiTreeDiff;\n private sources: Source[];\n private firstFastbootTree = Infinity;\n\n // maps from each filename in the app to the original directory from whence it\n // came, if it came from an addon. The mapping allows us to preserve\n // resolution semantics so that each of the app files can still resolve\n // relative to where it was authored.\n //\n // files authored within the app map to null\n readonly files: Map<string, string | null> = new Map();\n\n // true for files that are fastboot-only.\n isFastbootOnly: Map<string, boolean> = new Map();\n\n constructor(\n private outputPath: string,\n ownAppJSDir: string,\n activeAddonDescendants: AddonPackage[],\n // arguments below this point are only needed in fastboot mode. Fastboot\n // makes this pretty messy because fastboot trees all merge into the app 🤮.\n fastbootEnabled = false,\n ownFastbootJSDir?: string | undefined,\n private babelParserConfig?: TransformOptions | undefined\n ) {\n this.sources = activeAddonDescendants.map(addon => maybeSource(addon, 'app-js')).filter(Boolean) as Source[];\n\n this.sources.push({\n mayChange: true,\n walk() {\n return walkSync.entries(ownAppJSDir);\n },\n isRelocated: false,\n locate(relativePath: string) {\n return resolve(ownAppJSDir, relativePath);\n },\n });\n\n if (!fastbootEnabled) {\n this.differ = new MultiTreeDiff(this.sources, lastOneWins);\n return;\n }\n\n this.firstFastbootTree = this.sources.length;\n for (let addon of activeAddonDescendants) {\n let source = maybeSource(addon, 'fastboot-js');\n if (source) {\n this.sources.push(source);\n }\n }\n if (ownFastbootJSDir) {\n this.sources.push({\n mayChange: true,\n walk() {\n return walkSync.entries(ownFastbootJSDir);\n },\n isRelocated: false,\n locate(relativePath) {\n return resolve(ownFastbootJSDir, relativePath);\n },\n });\n }\n this.differ = new MultiTreeDiff(this.sources, fastbootMerge(this.firstFastbootTree));\n }\n\n update() {\n let { ops, sources } = this.differ.update();\n debug(`app-differ operations count: %s`, ops.length);\n for (let [operation, relativePath] of ops) {\n let outputPath = join(this.outputPath, relativePath);\n switch (operation) {\n case 'unlink':\n unlinkSync(outputPath);\n this.files.delete(relativePath);\n break;\n case 'rmdir':\n rmdirSync(outputPath);\n break;\n case 'mkdir':\n mkdirpSync(outputPath);\n break;\n case 'change':\n removeSync(outputPath);\n // deliberate fallthrough\n case 'create':\n let sourceIndices = sources.get(relativePath)!;\n if (sourceIndices.length === 1) {\n // a single file won. whether it's fastboot or non-fastboot doesn't\n // actually change what we do here. It gets emitted in the app's\n // namespace (if it's fastboot-only, non-fastboot code shouldn't be\n // trying to import it anyway, because that would have already been\n // an error pre-embroider).\n this.isFastbootOnly.set(relativePath, sourceIndices[0] >= this.firstFastbootTree);\n let source = this.sources[sourceIndices[0]];\n let sourceFile = source.locate(relativePath);\n copySync(sourceFile, outputPath, { dereference: true });\n this.updateFiles(relativePath, source, sourceFile);\n } else {\n // we have both fastboot and non-fastboot files for this path.\n // Because of the way fastbootMerge is written, the first one is the\n // non-fastboot.\n this.isFastbootOnly.set(relativePath, false);\n let [browserSrc, fastbootSrc] = sourceIndices.map(i => this.sources[i]);\n let [browserSourceFile, fastbootSourceFile] = [browserSrc, fastbootSrc].map(src =>\n src.locate(relativePath)\n );\n let dir = dirname(relativePath);\n let base = basename(relativePath);\n let browserDest = `_browser_${base}`;\n let fastbootDest = `_fastboot_${base}`;\n copySync(browserSourceFile, join(this.outputPath, dir, browserDest), { dereference: true });\n copySync(fastbootSourceFile, join(this.outputPath, dir, fastbootDest), { dereference: true });\n writeFileSync(\n outputPath,\n switcher(browserDest, fastbootDest, this.babelParserConfig!, readFileSync(browserSourceFile, 'utf8'))\n );\n this.updateFiles(relativePath, browserSrc, browserSourceFile);\n }\n break;\n default:\n assertNever(operation);\n }\n }\n }\n\n private updateFiles(relativePath: string, source: Source, sourceFile: string) {\n if (source.isRelocated) {\n this.files.set(relativePath, sourceFile);\n } else {\n this.files.set(relativePath, null);\n }\n }\n}\n\nfunction lastOneWins(treeIds: number[]) {\n return treeIds.slice(-1);\n}\n\nfunction fastbootMerge(firstFastbootTree: number) {\n return function _fastbootMerge(treeIds: number[]): number[] {\n let mainWinner, fastbootWinner;\n for (let id of treeIds) {\n if (id < firstFastbootTree) {\n mainWinner = id;\n } else {\n fastbootWinner = id;\n }\n }\n if (mainWinner != null && fastbootWinner != null) {\n return [mainWinner, fastbootWinner];\n } else if (mainWinner != null) {\n return [mainWinner];\n } else if (fastbootWinner != null) {\n return [fastbootWinner];\n } else {\n throw new Error(`bug: should always have at least one winner in fastbootMerge`);\n }\n };\n}\n\nconst switcherTemplate = compile(`\nimport { macroCondition, getGlobalConfig, importSync } from '@embroider/macros';\nlet mod;\nif (macroCondition(getGlobalConfig().fastboot?.isRunning)){\n mod = importSync(\"./{{js-string-escape fastbootDest}}\");\n} else {\n mod = importSync(\"./{{js-string-escape browserDest}}\");\n}\n{{#if hasDefaultExport}}\nexport default mod.default;\n{{/if}}\n{{#each names as |name|}}\nexport const {{name}} = mod.{{name}};\n{{/each}}\n`) as (params: { fastbootDest: string; browserDest: string; names: string[]; hasDefaultExport: boolean }) => string;\n\nfunction switcher(\n browserDest: string,\n fastbootDest: string,\n babelParserConfig: TransformOptions,\n browserSource: string\n): string {\n let { names, hasDefaultExport } = describeExports(browserSource, babelParserConfig);\n return switcherTemplate({ fastbootDest, browserDest, names: [...names], hasDefaultExport });\n}\n\ninterface Source extends InputTree {\n // find the real on disk location of the file that is presented externally as\n // `relativePath`\n locate(relativePath: string): string;\n\n // true if this source relocates its file out of their original package,\n // meaning we will need to track them in order to adjust package resolution\n isRelocated: boolean;\n}\n\nfunction maybeSource(addon: AddonPackage, key: 'app-js' | 'fastboot-js'): Source | undefined {\n let maybeFiles = addon.meta[key];\n if (maybeFiles) {\n let files = maybeFiles;\n return {\n mayChange: addon.mayRebuild,\n walk() {\n return Object.entries(files).map(([externalName, internalName]) => {\n try {\n let stat = statSync(resolve(addon.root, internalName));\n return {\n relativePath: withoutMandatoryDotSlash(externalName, [\n 'in package.json at %s in key ember-addon.%s',\n addon.root,\n key,\n ]),\n mode: stat.mode,\n size: stat.size,\n mtime: stat.mtime,\n isDirectory() {\n return false;\n },\n };\n } catch (err) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `${addon.name}/package.json lists ${internalName} in ember-addon.${key}, but that file does not exist`\n );\n }\n throw err;\n }\n });\n },\n isRelocated: true,\n locate(relativePath: string) {\n let internal = files['./' + relativePath];\n if (!internal) {\n throw new Error(`bug: couldn't find ${relativePath} in ${JSON.stringify(files)}`);\n }\n return resolve(addon.root, internal);\n },\n };\n }\n}\n\nfunction withoutMandatoryDotSlash(filename: string, debugInfo: any[]): string {\n if (!filename.startsWith('./')) {\n throw new Error(`${format(debugInfo)}: ${filename} is required to start with \"./\"`);\n }\n return filename.slice(2);\n}\n"]}
|
package/src/app-files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-files.js","sourceRoot":"","sources":["app-files.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAW3B,MAAa,QAAQ;IASnB,YAAY,SAAoB,EAAE,oBAA4B,EAAE,eAAwB;QACtF,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,IAAI,aAAa,GAAa,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACxC,KAAK,IAAI,YAAY,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;YAC/C,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,UAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5C,SAAS;aACV;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBACjC,oEAAoE;gBACpE,4DAA4D;gBAC5D,SAAS;aACV;YAED,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACrC,IAAI,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBACpC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC1B;gBACD,SAAS;aACV;YAED,uEAAuE;YACvE,sDAAsD;YACtD,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAClC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC/B;gBACD,SAAS;aACV;YAED,IAAI,YAAY,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE;gBACpD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9B,SAAS;aACV;YAED,IAAI,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3B,SAAS;aACV;YAED,IACE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;gBACzC,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,EAC1F;gBACA,SAAS;aACV;YAED,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QACpD,KAAK,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE;YACtD,IAAI,UAAU,EAAE;gBACd,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;aAC9C;SACF;QACD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;IACjD,CAAC;IAEO,sBAAsB,CAAC,YAAoB;QACjD,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1E,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAwC,CAAC;QACtE,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;YACrB,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;gBACT,MAAM,GAAG,KAAK,CAAC;aAChB;iBAAM;gBACL,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACpC,MAAM,GAAG,QAAQ,CAAC;aACnB;SACF;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB,CAAC,YAAoB,EAAE,eAAuB;QACvE,IAAI,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAChE,OAAO,KAAK,CAAC;SACd;QACD,IAAI,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,8DAA8D;QAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;YAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,OAAO,EAAE;gBAC7B,OAAO,KAAK,CAAC;aACd;SACF;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;gBACT,MAAM,GAAG,KAAK,CAAC;aAChB;iBAAM;gBACL,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACpC,MAAM,GAAG,QAAQ,CAAC;aACnB;SACF;QACD,MAAM,CAAC,IAA2C,CAAC,GAAG,YAAY,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AApID,4BAoIC"}
|
|
1
|
+
{"version":3,"file":"app-files.js","sourceRoot":"","sources":["app-files.ts"],"names":[],"mappings":"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","sourcesContent":["import { sep } from 'path';\nimport { Package, AddonPackage } from '@embroider/shared-internals';\nimport AppDiffer from './app-differ';\n\nexport interface RouteFiles {\n route?: string;\n template?: string;\n controller?: string;\n children: Map<string, RouteFiles>;\n}\n\nexport class AppFiles {\n readonly tests: ReadonlyArray<string>;\n readonly components: ReadonlyArray<string>;\n readonly helpers: ReadonlyArray<string>;\n private perRoute: RouteFiles;\n readonly otherAppFiles: ReadonlyArray<string>;\n readonly relocatedFiles: Map<string, string>;\n readonly isFastbootOnly: Map<string, boolean>;\n\n constructor(appDiffer: AppDiffer, resolvableExtensions: RegExp, podModulePrefix?: string) {\n let tests: string[] = [];\n let components: string[] = [];\n let helpers: string[] = [];\n let otherAppFiles: string[] = [];\n this.perRoute = { children: new Map() };\n for (let relativePath of appDiffer.files.keys()) {\n relativePath = relativePath.split(sep).join('/');\n if (!resolvableExtensions.test(relativePath)) {\n continue;\n }\n\n if (/\\.d\\.ts$/.test(relativePath)) {\n // .d.ts files are technically \"*.ts\" files but aren't really and we\n // don't want to include them when we crawl through the app.\n continue;\n }\n\n if (relativePath.startsWith('tests/')) {\n if (/-test\\.\\w+$/.test(relativePath)) {\n tests.push(relativePath);\n }\n continue;\n }\n\n // hbs files are resolvable, but not when they're inside the components\n // directory (where they are used for colocation only)\n if (relativePath.startsWith('components/')) {\n if (!relativePath.endsWith('.hbs')) {\n components.push(relativePath);\n }\n continue;\n }\n\n if (relativePath.startsWith('templates/components/')) {\n components.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('helpers/')) {\n helpers.push(relativePath);\n continue;\n }\n\n if (\n this.handleClassicRouteFile(relativePath) ||\n (podModulePrefix !== undefined && this.handlePodsRouteFile(relativePath, podModulePrefix))\n ) {\n continue;\n }\n\n otherAppFiles.push(relativePath);\n }\n this.tests = tests;\n this.components = components;\n this.helpers = helpers;\n this.otherAppFiles = otherAppFiles;\n\n let relocatedFiles: Map<string, string> = new Map();\n for (let [relativePath, owningPath] of appDiffer.files) {\n if (owningPath) {\n relocatedFiles.set(relativePath, owningPath);\n }\n }\n this.relocatedFiles = relocatedFiles;\n this.isFastbootOnly = appDiffer.isFastbootOnly;\n }\n\n private handleClassicRouteFile(relativePath: string): boolean {\n let [prefix, ...rest] = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n if (!['controllers', 'templates', 'routes'].includes(prefix)) {\n return false;\n }\n let type = prefix.slice(0, -1) as 'controller' | 'template' | 'route';\n let cursor = this.perRoute;\n for (let part of rest) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type] = relativePath;\n return true;\n }\n\n private handlePodsRouteFile(relativePath: string, podModulePrefix: string): boolean {\n let parts = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n let type = parts.pop();\n if (!type || !['controller', 'template', 'route'].includes(type)) {\n return false;\n }\n let podParts = podModulePrefix.split('/');\n // The first part of podModulePrefix is the app's package name\n podParts.shift();\n\n for (let podPart of podParts) {\n if (parts.shift() !== podPart) {\n return false;\n }\n }\n\n let cursor = this.perRoute;\n for (let part of parts) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type as 'controller' | 'template' | 'route'] = relativePath;\n return true;\n }\n\n get routeFiles(): Readonly<RouteFiles> {\n return this.perRoute;\n }\n}\n\nexport interface EngineSummary {\n // the engine's own package\n package: Package;\n // the set of active addons in the engine\n addons: Set<AddonPackage>;\n // the parent engine, if any\n parent: EngineSummary | undefined;\n // where the engine's own V2 code comes from\n sourcePath: string;\n // where the engine gets built into, combining its own code with all its\n // addons\n destPath: string;\n // runtime name for the engine's own module namespace\n modulePrefix: string;\n // this is destPath but relative to the app itself\n appRelativePath: string;\n}\n\nexport interface Engine extends EngineSummary {\n appFiles: AppFiles;\n}\n"]}
|