@embroider/compat 3.5.7-unstable.3b061c2 → 3.5.7-unstable.52687d4
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 -5
- package/src/audit/build.js.map +1 -1
- package/src/babel-plugin-adjust-imports.js +1 -1
- package/src/babel-plugin-adjust-imports.js.map +1 -1
- package/src/compat-adapters/ember-resolver.d.ts +4 -0
- package/src/compat-adapters/ember-resolver.js +21 -0
- package/src/compat-adapters/ember-resolver.js.map +1 -0
- package/src/compat-app-builder.d.ts +2 -22
- package/src/compat-app-builder.js +23 -185
- package/src/compat-app-builder.js.map +1 -1
- package/src/compat-app.d.ts +0 -10
- package/src/compat-app.js +5 -103
- package/src/compat-app.js.map +1 -1
- package/src/dependency-rules.js +17 -10
- package/src/dependency-rules.js.map +1 -1
- package/src/http-audit.js +17 -2
- package/src/http-audit.js.map +1 -1
- package/src/options.d.ts +0 -2
- package/src/options.js.map +1 -1
- package/src/resolver-transform.js +5 -5
- package/src/resolver-transform.js.map +1 -1
- package/src/standalone-addon-build.js +4 -13
- package/src/standalone-addon-build.js.map +1 -1
- package/src/sync-dir.d.ts +0 -8
- package/src/sync-dir.js +0 -68
- package/src/sync-dir.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embroider/compat",
|
|
3
|
-
"version": "3.5.7-unstable.
|
|
3
|
+
"version": "3.5.7-unstable.52687d4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Backward compatibility layer for the Embroider build system.",
|
|
6
6
|
"repository": {
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
"broccoli-source": "^3.0.1",
|
|
46
46
|
"chalk": "^4.1.1",
|
|
47
47
|
"debug": "^4.3.2",
|
|
48
|
-
"escape-string-regexp": "^4.0.0",
|
|
49
48
|
"fast-sourcemap-concat": "^2.1.1",
|
|
50
49
|
"fs-extra": "^9.1.0",
|
|
51
50
|
"fs-tree-diff": "^2.0.1",
|
|
@@ -53,6 +52,7 @@
|
|
|
53
52
|
"lodash": "^4.17.21",
|
|
54
53
|
"pkg-up": "^3.1.0",
|
|
55
54
|
"resolve": "^1.20.0",
|
|
55
|
+
"resolve.exports": "^2.0.2",
|
|
56
56
|
"resolve-package-path": "^4.0.1",
|
|
57
57
|
"semver": "^7.3.5",
|
|
58
58
|
"symlink-or-copy": "^1.3.1",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"typescript-memoize": "^1.0.1",
|
|
61
61
|
"walk-sync": "^3.0.0",
|
|
62
62
|
"yargs": "^17.0.1",
|
|
63
|
-
"@embroider/macros": "1.16.6-unstable.
|
|
63
|
+
"@embroider/macros": "1.16.6-unstable.52687d4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@glimmer/syntax": "^0.84.3",
|
|
@@ -83,12 +83,12 @@
|
|
|
83
83
|
"ember-engines": "^0.8.19",
|
|
84
84
|
"scenario-tester": "^3.0.1",
|
|
85
85
|
"typescript": "^5.4.5",
|
|
86
|
-
"@embroider/core": "^3.4.15-unstable.
|
|
86
|
+
"@embroider/core": "^3.4.15-unstable.52687d4",
|
|
87
87
|
"@embroider/sample-transforms": "0.0.0",
|
|
88
88
|
"@embroider/test-support": "0.36.0"
|
|
89
89
|
},
|
|
90
90
|
"peerDependencies": {
|
|
91
|
-
"@embroider/core": "^3.4.15-unstable.
|
|
91
|
+
"@embroider/core": "^3.4.15-unstable.52687d4"
|
|
92
92
|
},
|
|
93
93
|
"engines": {
|
|
94
94
|
"node": "12.* || 14.* || >= 16"
|
package/src/audit/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";;;;;;AAIA,4BAaC;AASD,oCAEC;AA5BD,kDAA0B;AAE1B,iDAAsC;AAE/B,KAAK,UAAU,QAAQ,CAAC,OAA0B;IACvD,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,6CAA6C,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE;YACH,WAAW,EAAE,MAAM;SACpB;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,GAAG,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,qDAAqD,MAAM,CAAC,MAAM,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAa,UAAW,SAAQ,KAAK;IAEnC,YAAY,WAAmB;QAC7B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFrB,iBAAY,GAAG,IAAI,CAAC;IAGpB,CAAC;CACF;AALD,gCAKC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,YAAoB,EACpB,IAAqD;IAOrD,IAAI,GAAmD,CAAC;IACxD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,EAAE,CAAC;QACd,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,GAAG,IAAA,qBAAK,EAAC,YAAY,EAAE;QAC9B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG;QACd,KAAK,EAAE,IAAI;QACX,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["build.ts"],"names":[],"mappings":";;;;;;AAIA,4BAaC;AASD,oCAEC;AA5BD,kDAA0B;AAE1B,iDAAsC;AAE/B,KAAK,UAAU,QAAQ,CAAC,OAA0B;IACvD,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,6CAA6C,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE;YACH,WAAW,EAAE,MAAM;SACpB;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,GAAG,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,qDAAqD,MAAM,CAAC,MAAM,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAa,UAAW,SAAQ,KAAK;IAEnC,YAAY,WAAmB;QAC7B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFrB,iBAAY,GAAG,IAAI,CAAC;IAGpB,CAAC;CACF;AALD,gCAKC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,YAAoB,EACpB,IAAqD;IAOrD,IAAI,GAAmD,CAAC;IACxD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,EAAE,CAAC;QACd,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,GAAG,IAAA,qBAAK,EAAC,YAAY,EAAE;QAC9B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG;QACd,KAAK,EAAE,IAAI;QACX,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;YACrC,OAAO,CAAC;gBACN,QAAQ;gBACR,IAAI,MAAM;oBACR,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,MAAM;oBACR,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,MAAM;oBACR,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import chalk from 'chalk';\nimport type { AuditBuildOptions } from '../audit';\nimport { spawn } from 'child_process';\n\nexport async function buildApp(options: AuditBuildOptions): Promise<void> {\n let result = await execute(`node node_modules/ember-cli/bin/ember build`, {\n pwd: options.app,\n env: {\n STAGE2_ONLY: 'true',\n },\n });\n\n if (result.exitCode !== 0) {\n throw new BuildError(\n `${chalk.yellow('Unable to begin audit')} because the build failed. Build output follows:\\n${result.output}`\n );\n }\n}\n\nexport class BuildError extends Error {\n isBuildError = true;\n constructor(buildOutput: string) {\n super(buildOutput);\n }\n}\n\nexport function isBuildError(err: any): err is BuildError {\n return err?.isBuildError;\n}\n\nasync function execute(\n shellCommand: string,\n opts?: { env?: Record<string, string>; pwd?: string }\n): Promise<{\n exitCode: number;\n stderr: string;\n stdout: string;\n output: string;\n}> {\n let env: Record<string, string | undefined> | undefined;\n if (opts?.env) {\n env = { ...process.env, ...opts.env };\n }\n let child = spawn(shellCommand, {\n stdio: ['inherit', 'pipe', 'pipe'],\n cwd: opts?.pwd,\n shell: true,\n env,\n });\n let stderrBuffer: string[] = [];\n let stdoutBuffer: string[] = [];\n let combinedBuffer: string[] = [];\n child.stderr!.on('data', data => {\n stderrBuffer.push(data);\n combinedBuffer.push(data);\n });\n child.stdout!.on('data', data => {\n stdoutBuffer.push(data);\n combinedBuffer.push(data);\n });\n return new Promise(resolve => {\n child.on('close', (exitCode: number) => {\n resolve({\n exitCode,\n get stdout() {\n return stdoutBuffer.join('');\n },\n get stderr() {\n return stderrBuffer.join('');\n },\n get output() {\n return combinedBuffer.join('');\n },\n });\n });\n });\n}\n"]}
|
|
@@ -71,7 +71,7 @@ function applyRules(t, path, rules, adder, config, filename) {
|
|
|
71
71
|
if (rules.dependsOnComponents) {
|
|
72
72
|
for (let dasherizedName of rules.dependsOnComponents) {
|
|
73
73
|
if (lookup.owningEngine) {
|
|
74
|
-
path.node.body.unshift(amdDefine(t, adder, path,
|
|
74
|
+
path.node.body.unshift(amdDefine(t, adder, path, `@embroider/virtual/components/${dasherizedName}`, `${lookup.owningEngine.packageName}/components/${dasherizedName}`));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-adjust-imports.js","sourceRoot":"","sources":["babel-plugin-adjust-imports.ts"],"names":[],"mappings":";;AAuCA,uBA6BC;AApED,+BAA4B;AAI5B,yDAA+C;AAC/C,uCAAwC;AAGxC,0CAA2G;AAC3G,yEAAqE;AAErE,yDAAqD;AA4BrD,SAAwB,IAAI,CAAC,KAAmB;IAC9C,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACpB,IAAI,MAAkC,CAAC;IACvC,SAAS,SAAS,CAAC,OAAe;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,eAAe,GAA0B,IAAA,uBAAY,EACvD,IAAA,WAAI,EAAC,IAAA,gCAAyB,EAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAC1D,CAAC;QACF,IAAI,QAAQ,GAAG,IAAI,eAAQ,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,GAAG;YACP,eAAe;YACf,QAAQ;YACR,YAAY,EAAE,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC;YAC/D,qBAAqB,EAAE,+BAA+B,CAAC,eAAe,CAAC;SACxE,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,KAAK,CAAC,IAAyB,EAAE,KAAY;oBAC3C,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1D,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAEA,IAAY,CAAC,OAAO,GAAG;IACtB,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,CAAa,EAAE,IAAyB,EAAE,MAAsB;IACvF,IAAI,QAAQ,GAAW,IAAA,eAAQ,EAAE,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,KAAK,GAAG,IAAI,8BAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,CAAa,EACb,IAAyB,EACzB,KAA2B,EAC3B,KAAiB,EACjB,MAAsB,EACtB,QAAgB;IAEhB,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,IAAI,WAAmB,CAAC;gBACxB,IAAI,IAAA,kBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,WAAW,GAAG,MAAM,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,IAAA,mBAAY,EAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,KAAK,IAAI,cAAc,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACrD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CACpB,SAAS,CACP,CAAC,EACD,KAAK,EACL,IAAI,EACJ,gCAAgC,cAAc,EAAE,EAChD,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,eAAe,cAAc,EAAE,CAClE,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAa,EAAE,KAAiB,EAAE,IAAyB,EAAE,MAAc,EAAE,WAAmB;IACjH,IAAI,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,CAAC,mBAAmB,CAC1B,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;QACnF,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7E,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAA6B,EAAE,QAAkB;IAC/E,IAAI,YAAY,GAAiB,EAAE,CAAC;IACpC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,qEAAqE;oBACrE,qEAAqE;oBACrE,sEAAsE;oBACtE,oEAAoE;oBACpE,YAAY;oBACZ,oBAAoB,CAAC,IAAA,kCAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,kBAAkB,CAAC,IAAA,kCAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsB,EAAE,QAAgB;IACjE,IAAI,aAA0D,CAAC;IAC/D,IAAI,YAAsF,CAAC;IAC3F,OAAO;QACL,IAAI,aAAa;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,aAAa,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,CAAC;YACD,OAAO,aAAa,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC;oBACN,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,MAA6B;IACpE,IAAI,YAAY,GAAiB,EAAE,CAAC;IACpC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,YAAY,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG;wBACtD,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;6BAC9C,IAAI,EAAE;6BACN,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBAC1C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CACzB,gBAAwB,EACxB,KAAwD;IAExD,IAAI,CAAC,GAAG,IAAA,kDAAuB,EAAC,gBAAgB,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,sCAAsC,gBAAgB,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,QAAgB,EAChB,KAAkB,EAClB,YAA4C;IAE5C,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,KAAK,GAA2C,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,YAAY,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,QAAgB,EAChB,KAAoB,EACpB,YAA4C;IAE5C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,KAAK,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,IAAA,kDAAuB,EAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC/F,CAAC;gBACJ,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,YAAY,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC","sourcesContent":["import { join } from 'path';\nimport type { NodePath } from '@babel/traverse';\nimport type * as Babel from '@babel/core';\nimport type { types as t } from '@babel/core';\nimport { ImportUtil } from 'babel-import-util';\nimport { readJSONSync } from 'fs-extra';\nimport type { CompatResolverOptions } from './resolver-transform';\nimport type { Package } from '@embroider/core';\nimport { cleanUrl, locateEmbroiderWorkingDir, packageName, Resolver, unrelativize } from '@embroider/core';\nimport { snippetToDasherizedName } from './dasherize-component-name';\nimport type { ActivePackageRules, ComponentRules, ModuleRules, TemplateRules } from './dependency-rules';\nimport { appTreeRulesDir } from './dependency-rules';\n\nexport type Options = { appRoot: string };\n\ninterface State {\n opts: Options;\n}\n\ntype BabelTypes = typeof t;\n\ninterface ExtraImports {\n [key: string]: {\n dependsOnComponents?: string[]; // these are already standardized in dasherized form\n dependsOnModules?: string[];\n };\n}\n\ntype InternalConfig = {\n resolverOptions: CompatResolverOptions;\n resolver: Resolver;\n\n // rule-based extra dependencies, indexed by filename\n extraImports: ExtraImports;\n\n // rule-based extra dependencies, indexed by classical component name\n componentExtraImports: ExtraImports;\n};\n\nexport default function main(babel: typeof Babel) {\n let t = babel.types;\n let cached: InternalConfig | undefined;\n function getConfig(appRoot: string) {\n if (cached) {\n return cached;\n }\n let resolverOptions: CompatResolverOptions = readJSONSync(\n join(locateEmbroiderWorkingDir(appRoot), 'resolver.json')\n );\n let resolver = new Resolver(resolverOptions);\n cached = {\n resolverOptions,\n resolver,\n extraImports: preprocessExtraImports(resolverOptions, resolver),\n componentExtraImports: preprocessComponentExtraImports(resolverOptions),\n };\n return cached;\n }\n\n return {\n visitor: {\n Program: {\n enter(path: NodePath<t.Program>, state: State) {\n addExtraImports(t, path, getConfig(state.opts.appRoot));\n },\n },\n },\n };\n}\n\n(main as any).baseDir = function () {\n return join(__dirname, '..');\n};\n\nfunction addExtraImports(t: BabelTypes, path: NodePath<t.Program>, config: InternalConfig) {\n let filename: string = cleanUrl((path.hub as any).file.opts.filename);\n let entry = config.extraImports[filename];\n let adder = new ImportUtil(t, path);\n if (entry) {\n applyRules(t, path, entry, adder, config, filename);\n }\n\n let componentName = config.resolver.reverseComponentLookup(filename);\n if (componentName) {\n let rules = config.componentExtraImports[componentName];\n if (rules) {\n applyRules(t, path, rules, adder, config, filename);\n }\n }\n}\n\nfunction applyRules(\n t: BabelTypes,\n path: NodePath<t.Program>,\n rules: ExtraImports[string],\n adder: ImportUtil,\n config: InternalConfig,\n filename: string\n) {\n let lookup = lazyPackageLookup(config, filename);\n if (rules.dependsOnModules) {\n for (let target of rules.dependsOnModules) {\n if (lookup.owningPackage) {\n let runtimeName: string;\n if (packageName(target)) {\n runtimeName = target;\n } else {\n runtimeName = unrelativize(lookup.owningPackage, target, filename);\n }\n path.node.body.unshift(amdDefine(t, adder, path, target, runtimeName));\n }\n }\n }\n if (rules.dependsOnComponents) {\n for (let dasherizedName of rules.dependsOnComponents) {\n if (lookup.owningEngine) {\n path.node.body.unshift(\n amdDefine(\n t,\n adder,\n path,\n `#embroider_compat/components/${dasherizedName}`,\n `${lookup.owningEngine.packageName}/components/${dasherizedName}`\n )\n );\n }\n }\n }\n}\n\nfunction amdDefine(t: BabelTypes, adder: ImportUtil, path: NodePath<t.Program>, target: string, runtimeName: string) {\n let value = t.callExpression(adder.import(path, '@embroider/macros', 'importSync'), [t.stringLiteral(target)]);\n return t.expressionStatement(\n t.callExpression(t.memberExpression(t.identifier('window'), t.identifier('define')), [\n t.stringLiteral(runtimeName),\n t.functionExpression(null, [], t.blockStatement([t.returnStatement(value)])),\n ])\n );\n}\n\nfunction preprocessExtraImports(config: CompatResolverOptions, resolver: Resolver): ExtraImports {\n let extraImports: ExtraImports = {};\n for (let rule of config.activePackageRules) {\n if (rule.addonModules) {\n for (let [filename, moduleRules] of Object.entries(rule.addonModules)) {\n for (let root of rule.roots) {\n expandDependsOnRules(root, filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.appModules) {\n for (let [filename, moduleRules] of Object.entries(rule.appModules)) {\n for (let root of rule.roots) {\n // in general v2 addons can keep their app tree stuff in other places\n // than \"_app_\" and we would need to check their package.json to see.\n // But this code is only for applying packageRules to auto-upgraded v1\n // addons, and those we always organize with their treeForApp output\n // in _app_.\n expandDependsOnRules(appTreeRulesDir(root, resolver), filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.addonTemplates) {\n for (let [filename, moduleRules] of Object.entries(rule.addonTemplates)) {\n for (let root of rule.roots) {\n expandInvokesRules(root, filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.appTemplates) {\n for (let [filename, moduleRules] of Object.entries(rule.appTemplates)) {\n for (let root of rule.roots) {\n expandInvokesRules(appTreeRulesDir(root, resolver), filename, moduleRules, extraImports);\n }\n }\n }\n }\n return extraImports;\n}\n\nfunction lazyPackageLookup(config: InternalConfig, filename: string) {\n let owningPackage: { result: Package | undefined } | undefined;\n let owningEngine: { result: ReturnType<Resolver['owningEngine']> | undefined } | undefined;\n return {\n get owningPackage() {\n if (!owningPackage) {\n owningPackage = { result: config.resolver.packageCache.ownerOfFile(filename) };\n }\n return owningPackage.result;\n },\n get owningEngine() {\n if (!owningEngine) {\n owningEngine = { result: undefined };\n let p = this.owningPackage;\n if (p) {\n owningEngine.result = config.resolver.owningEngine(p);\n }\n }\n return owningEngine.result;\n },\n };\n}\n\nfunction preprocessComponentExtraImports(config: CompatResolverOptions): ExtraImports {\n let extraImports: ExtraImports = {};\n for (let rule of config.activePackageRules) {\n if (rule.components) {\n for (let [componentName, rules] of Object.entries(rule.components)) {\n if (rules.invokes) {\n extraImports[dasherizeComponent(componentName, rule)] = {\n dependsOnComponents: Object.values(rules.invokes)\n .flat()\n .map(c => dasherizeComponent(c, rules)),\n };\n }\n }\n }\n }\n return extraImports;\n}\n\nfunction dasherizeComponent(\n componentSnippet: string,\n rules: ModuleRules | ComponentRules | ActivePackageRules\n): string {\n let d = snippetToDasherizedName(componentSnippet);\n if (!d) {\n throw new Error(\n `unable to parse component snippet \"${componentSnippet}\" from rule ${JSON.stringify(rules, null, 2)}`\n );\n }\n return d;\n}\n\nfunction expandDependsOnRules(\n root: string,\n filename: string,\n rules: ModuleRules,\n extraImports: InternalConfig['extraImports']\n) {\n if (rules.dependsOnModules || rules.dependsOnComponents) {\n let entry: InternalConfig['extraImports'][string] = {};\n if (rules.dependsOnModules) {\n entry.dependsOnModules = rules.dependsOnModules;\n }\n if (rules.dependsOnComponents) {\n entry.dependsOnComponents = rules.dependsOnComponents.map(c => dasherizeComponent(c, rules));\n }\n extraImports[join(root, filename)] = entry;\n }\n}\n\nfunction expandInvokesRules(\n root: string,\n filename: string,\n rules: TemplateRules,\n extraImports: InternalConfig['extraImports']\n) {\n if (rules.invokes) {\n let dependsOnComponents: string[] = [];\n for (let componentList of Object.values(rules.invokes)) {\n for (let component of componentList) {\n let d = snippetToDasherizedName(component);\n if (!d) {\n throw new Error(\n `unable to parse component snippet \"${component}\" from rule ${JSON.stringify(rules, null, 2)}`\n );\n }\n dependsOnComponents.push(d);\n }\n }\n extraImports[join(root, filename)] = { dependsOnComponents };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"babel-plugin-adjust-imports.js","sourceRoot":"","sources":["babel-plugin-adjust-imports.ts"],"names":[],"mappings":";;AAuCA,uBA6BC;AApED,+BAA4B;AAI5B,yDAA+C;AAC/C,uCAAwC;AAGxC,0CAA2G;AAC3G,yEAAqE;AAErE,yDAAqD;AA4BrD,SAAwB,IAAI,CAAC,KAAmB;IAC9C,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACpB,IAAI,MAAkC,CAAC;IACvC,SAAS,SAAS,CAAC,OAAe;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,eAAe,GAA0B,IAAA,uBAAY,EACvD,IAAA,WAAI,EAAC,IAAA,gCAAyB,EAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAC1D,CAAC;QACF,IAAI,QAAQ,GAAG,IAAI,eAAQ,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,GAAG;YACP,eAAe;YACf,QAAQ;YACR,YAAY,EAAE,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC;YAC/D,qBAAqB,EAAE,+BAA+B,CAAC,eAAe,CAAC;SACxE,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,KAAK,CAAC,IAAyB,EAAE,KAAY;oBAC3C,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1D,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAEA,IAAY,CAAC,OAAO,GAAG;IACtB,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,CAAa,EAAE,IAAyB,EAAE,MAAsB;IACvF,IAAI,QAAQ,GAAW,IAAA,eAAQ,EAAE,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,KAAK,GAAG,IAAI,8BAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CACjB,CAAa,EACb,IAAyB,EACzB,KAA2B,EAC3B,KAAiB,EACjB,MAAsB,EACtB,QAAgB;IAEhB,IAAI,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,IAAI,WAAmB,CAAC;gBACxB,IAAI,IAAA,kBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,WAAW,GAAG,MAAM,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,IAAA,mBAAY,EAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,KAAK,IAAI,cAAc,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACrD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CACpB,SAAS,CACP,CAAC,EACD,KAAK,EACL,IAAI,EACJ,iCAAiC,cAAc,EAAE,EACjD,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,eAAe,cAAc,EAAE,CAClE,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAa,EAAE,KAAiB,EAAE,IAAyB,EAAE,MAAc,EAAE,WAAmB;IACjH,IAAI,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,CAAC,mBAAmB,CAC1B,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;QACnF,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7E,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAA6B,EAAE,QAAkB;IAC/E,IAAI,YAAY,GAAiB,EAAE,CAAC;IACpC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,qEAAqE;oBACrE,qEAAqE;oBACrE,sEAAsE;oBACtE,oEAAoE;oBACpE,YAAY;oBACZ,oBAAoB,CAAC,IAAA,kCAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC5B,kBAAkB,CAAC,IAAA,kCAAe,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsB,EAAE,QAAgB;IACjE,IAAI,aAA0D,CAAC;IAC/D,IAAI,YAAsF,CAAC;IAC3F,OAAO;QACL,IAAI,aAAa;YACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,aAAa,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,CAAC;YACD,OAAO,aAAa,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC;oBACN,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,MAA6B;IACpE,IAAI,YAAY,GAAiB,EAAE,CAAC;IACpC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,YAAY,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG;wBACtD,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;6BAC9C,IAAI,EAAE;6BACN,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBAC1C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CACzB,gBAAwB,EACxB,KAAwD;IAExD,IAAI,CAAC,GAAG,IAAA,kDAAuB,EAAC,gBAAgB,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,sCAAsC,gBAAgB,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACtG,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAY,EACZ,QAAgB,EAChB,KAAkB,EAClB,YAA4C;IAE5C,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,KAAK,GAA2C,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC3B,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,YAAY,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,QAAgB,EAChB,KAAoB,EACpB,YAA4C;IAE5C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,mBAAmB,GAAa,EAAE,CAAC;QACvC,KAAK,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,IAAA,kDAAuB,EAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC/F,CAAC;gBACJ,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,YAAY,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC","sourcesContent":["import { join } from 'path';\nimport type { NodePath } from '@babel/traverse';\nimport type * as Babel from '@babel/core';\nimport type { types as t } from '@babel/core';\nimport { ImportUtil } from 'babel-import-util';\nimport { readJSONSync } from 'fs-extra';\nimport type { CompatResolverOptions } from './resolver-transform';\nimport type { Package } from '@embroider/core';\nimport { cleanUrl, locateEmbroiderWorkingDir, packageName, Resolver, unrelativize } from '@embroider/core';\nimport { snippetToDasherizedName } from './dasherize-component-name';\nimport type { ActivePackageRules, ComponentRules, ModuleRules, TemplateRules } from './dependency-rules';\nimport { appTreeRulesDir } from './dependency-rules';\n\nexport type Options = { appRoot: string };\n\ninterface State {\n opts: Options;\n}\n\ntype BabelTypes = typeof t;\n\ninterface ExtraImports {\n [key: string]: {\n dependsOnComponents?: string[]; // these are already standardized in dasherized form\n dependsOnModules?: string[];\n };\n}\n\ntype InternalConfig = {\n resolverOptions: CompatResolverOptions;\n resolver: Resolver;\n\n // rule-based extra dependencies, indexed by filename\n extraImports: ExtraImports;\n\n // rule-based extra dependencies, indexed by classical component name\n componentExtraImports: ExtraImports;\n};\n\nexport default function main(babel: typeof Babel) {\n let t = babel.types;\n let cached: InternalConfig | undefined;\n function getConfig(appRoot: string) {\n if (cached) {\n return cached;\n }\n let resolverOptions: CompatResolverOptions = readJSONSync(\n join(locateEmbroiderWorkingDir(appRoot), 'resolver.json')\n );\n let resolver = new Resolver(resolverOptions);\n cached = {\n resolverOptions,\n resolver,\n extraImports: preprocessExtraImports(resolverOptions, resolver),\n componentExtraImports: preprocessComponentExtraImports(resolverOptions),\n };\n return cached;\n }\n\n return {\n visitor: {\n Program: {\n enter(path: NodePath<t.Program>, state: State) {\n addExtraImports(t, path, getConfig(state.opts.appRoot));\n },\n },\n },\n };\n}\n\n(main as any).baseDir = function () {\n return join(__dirname, '..');\n};\n\nfunction addExtraImports(t: BabelTypes, path: NodePath<t.Program>, config: InternalConfig) {\n let filename: string = cleanUrl((path.hub as any).file.opts.filename);\n let entry = config.extraImports[filename];\n let adder = new ImportUtil(t, path);\n if (entry) {\n applyRules(t, path, entry, adder, config, filename);\n }\n\n let componentName = config.resolver.reverseComponentLookup(filename);\n if (componentName) {\n let rules = config.componentExtraImports[componentName];\n if (rules) {\n applyRules(t, path, rules, adder, config, filename);\n }\n }\n}\n\nfunction applyRules(\n t: BabelTypes,\n path: NodePath<t.Program>,\n rules: ExtraImports[string],\n adder: ImportUtil,\n config: InternalConfig,\n filename: string\n) {\n let lookup = lazyPackageLookup(config, filename);\n if (rules.dependsOnModules) {\n for (let target of rules.dependsOnModules) {\n if (lookup.owningPackage) {\n let runtimeName: string;\n if (packageName(target)) {\n runtimeName = target;\n } else {\n runtimeName = unrelativize(lookup.owningPackage, target, filename);\n }\n path.node.body.unshift(amdDefine(t, adder, path, target, runtimeName));\n }\n }\n }\n if (rules.dependsOnComponents) {\n for (let dasherizedName of rules.dependsOnComponents) {\n if (lookup.owningEngine) {\n path.node.body.unshift(\n amdDefine(\n t,\n adder,\n path,\n `@embroider/virtual/components/${dasherizedName}`,\n `${lookup.owningEngine.packageName}/components/${dasherizedName}`\n )\n );\n }\n }\n }\n}\n\nfunction amdDefine(t: BabelTypes, adder: ImportUtil, path: NodePath<t.Program>, target: string, runtimeName: string) {\n let value = t.callExpression(adder.import(path, '@embroider/macros', 'importSync'), [t.stringLiteral(target)]);\n return t.expressionStatement(\n t.callExpression(t.memberExpression(t.identifier('window'), t.identifier('define')), [\n t.stringLiteral(runtimeName),\n t.functionExpression(null, [], t.blockStatement([t.returnStatement(value)])),\n ])\n );\n}\n\nfunction preprocessExtraImports(config: CompatResolverOptions, resolver: Resolver): ExtraImports {\n let extraImports: ExtraImports = {};\n for (let rule of config.activePackageRules) {\n if (rule.addonModules) {\n for (let [filename, moduleRules] of Object.entries(rule.addonModules)) {\n for (let root of rule.roots) {\n expandDependsOnRules(root, filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.appModules) {\n for (let [filename, moduleRules] of Object.entries(rule.appModules)) {\n for (let root of rule.roots) {\n // in general v2 addons can keep their app tree stuff in other places\n // than \"_app_\" and we would need to check their package.json to see.\n // But this code is only for applying packageRules to auto-upgraded v1\n // addons, and those we always organize with their treeForApp output\n // in _app_.\n expandDependsOnRules(appTreeRulesDir(root, resolver), filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.addonTemplates) {\n for (let [filename, moduleRules] of Object.entries(rule.addonTemplates)) {\n for (let root of rule.roots) {\n expandInvokesRules(root, filename, moduleRules, extraImports);\n }\n }\n }\n if (rule.appTemplates) {\n for (let [filename, moduleRules] of Object.entries(rule.appTemplates)) {\n for (let root of rule.roots) {\n expandInvokesRules(appTreeRulesDir(root, resolver), filename, moduleRules, extraImports);\n }\n }\n }\n }\n return extraImports;\n}\n\nfunction lazyPackageLookup(config: InternalConfig, filename: string) {\n let owningPackage: { result: Package | undefined } | undefined;\n let owningEngine: { result: ReturnType<Resolver['owningEngine']> | undefined } | undefined;\n return {\n get owningPackage() {\n if (!owningPackage) {\n owningPackage = { result: config.resolver.packageCache.ownerOfFile(filename) };\n }\n return owningPackage.result;\n },\n get owningEngine() {\n if (!owningEngine) {\n owningEngine = { result: undefined };\n let p = this.owningPackage;\n if (p) {\n owningEngine.result = config.resolver.owningEngine(p);\n }\n }\n return owningEngine.result;\n },\n };\n}\n\nfunction preprocessComponentExtraImports(config: CompatResolverOptions): ExtraImports {\n let extraImports: ExtraImports = {};\n for (let rule of config.activePackageRules) {\n if (rule.components) {\n for (let [componentName, rules] of Object.entries(rule.components)) {\n if (rules.invokes) {\n extraImports[dasherizeComponent(componentName, rule)] = {\n dependsOnComponents: Object.values(rules.invokes)\n .flat()\n .map(c => dasherizeComponent(c, rules)),\n };\n }\n }\n }\n }\n return extraImports;\n}\n\nfunction dasherizeComponent(\n componentSnippet: string,\n rules: ModuleRules | ComponentRules | ActivePackageRules\n): string {\n let d = snippetToDasherizedName(componentSnippet);\n if (!d) {\n throw new Error(\n `unable to parse component snippet \"${componentSnippet}\" from rule ${JSON.stringify(rules, null, 2)}`\n );\n }\n return d;\n}\n\nfunction expandDependsOnRules(\n root: string,\n filename: string,\n rules: ModuleRules,\n extraImports: InternalConfig['extraImports']\n) {\n if (rules.dependsOnModules || rules.dependsOnComponents) {\n let entry: InternalConfig['extraImports'][string] = {};\n if (rules.dependsOnModules) {\n entry.dependsOnModules = rules.dependsOnModules;\n }\n if (rules.dependsOnComponents) {\n entry.dependsOnComponents = rules.dependsOnComponents.map(c => dasherizeComponent(c, rules));\n }\n extraImports[join(root, filename)] = entry;\n }\n}\n\nfunction expandInvokesRules(\n root: string,\n filename: string,\n rules: TemplateRules,\n extraImports: InternalConfig['extraImports']\n) {\n if (rules.invokes) {\n let dependsOnComponents: string[] = [];\n for (let componentList of Object.values(rules.invokes)) {\n for (let component of componentList) {\n let d = snippetToDasherizedName(component);\n if (!d) {\n throw new Error(\n `unable to parse component snippet \"${component}\" from rule ${JSON.stringify(rules, null, 2)}`\n );\n }\n dependsOnComponents.push(d);\n }\n }\n extraImports[join(root, filename)] = { dependsOnComponents };\n }\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
const v1_addon_1 = __importDefault(require("../v1-addon"));
|
|
7
|
+
class default_1 extends v1_addon_1.default {
|
|
8
|
+
get packageMeta() {
|
|
9
|
+
let meta = super.packageMeta;
|
|
10
|
+
if (meta['implicit-modules']) {
|
|
11
|
+
// ember-resolver has a vestigial empty file here that existed due to
|
|
12
|
+
// babel-plugin-debug-macros behavior. But ember-resolver no longer uses
|
|
13
|
+
// babel-plugin-debug-macros. And the empty file makes vite's CJS interop
|
|
14
|
+
// get confused and produce a runtime crash.
|
|
15
|
+
meta['implicit-modules'] = meta['implicit-modules'].filter(m => m !== './features');
|
|
16
|
+
}
|
|
17
|
+
return meta;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = default_1;
|
|
21
|
+
//# sourceMappingURL=ember-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ember-resolver.js","sourceRoot":"","sources":["ember-resolver.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,eAAqB,SAAQ,kBAAO;IAClC,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7B,qEAAqE;YACrE,wEAAwE;YACxE,yEAAyE;YACzE,4CAA4C;YAC5C,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAZD,4BAYC","sourcesContent":["import V1Addon from '../v1-addon';\n\nexport default class extends V1Addon {\n get packageMeta() {\n let meta = super.packageMeta;\n if (meta['implicit-modules']) {\n // ember-resolver has a vestigial empty file here that existed due to\n // babel-plugin-debug-macros behavior. But ember-resolver no longer uses\n // babel-plugin-debug-macros. And the empty file makes vite's CJS interop\n // get confused and produce a runtime crash.\n meta['implicit-modules'] = meta['implicit-modules'].filter(m => m !== './features');\n }\n return meta;\n }\n}\n"]}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import type { Node as BroccoliNode } from 'broccoli-node-api';
|
|
2
|
-
import type { OutputPaths } from '@embroider/core';
|
|
3
1
|
import type Options from './options';
|
|
4
2
|
import type ContentForConfig from './content-for-config';
|
|
5
3
|
import type { V1Config } from './v1-config';
|
|
6
4
|
import type { Package } from '@embroider/core';
|
|
7
5
|
import type CompatApp from './compat-app';
|
|
8
6
|
export declare class CompatAppBuilder {
|
|
9
|
-
private root;
|
|
10
7
|
private origAppPackage;
|
|
11
8
|
private appPackageWithMovedDeps;
|
|
12
9
|
private options;
|
|
@@ -15,32 +12,22 @@ export declare class CompatAppBuilder {
|
|
|
15
12
|
private contentForTree;
|
|
16
13
|
private synthVendor;
|
|
17
14
|
private synthStyles;
|
|
18
|
-
constructor(
|
|
19
|
-
private fastbootJSSrcDir;
|
|
15
|
+
constructor(origAppPackage: Package, appPackageWithMovedDeps: Package, options: Required<Options>, compatApp: CompatApp, configTree: V1Config, contentForTree: ContentForConfig, synthVendor: Package, synthStyles: Package);
|
|
20
16
|
private activeAddonChildren;
|
|
21
17
|
private get allActiveAddons();
|
|
22
18
|
private isActiveAddon;
|
|
23
19
|
private orderAddons;
|
|
24
20
|
private resolvableExtensions;
|
|
25
|
-
private addEmberEntrypoints;
|
|
26
21
|
private modulePrefix;
|
|
27
22
|
private podModulePrefix;
|
|
28
|
-
private rootURL;
|
|
29
23
|
private activeRules;
|
|
30
24
|
private resolverConfig;
|
|
31
|
-
private get resolvableExtensionsPattern();
|
|
32
25
|
private babelConfig;
|
|
33
26
|
private findActiveAddons;
|
|
34
27
|
private partitionEngines;
|
|
35
|
-
private get activeFastboot();
|
|
36
28
|
private emberVersion;
|
|
37
|
-
private get fastbootConfig();
|
|
38
29
|
private engines;
|
|
39
|
-
|
|
40
|
-
private get staticAppPathsPattern();
|
|
41
|
-
private firstBuild;
|
|
42
|
-
build(inputPaths: OutputPaths<TreeNames>): Promise<void>;
|
|
43
|
-
private combinePackageJSON;
|
|
30
|
+
build(): Promise<void>;
|
|
44
31
|
private etcOptions;
|
|
45
32
|
private get portableHints();
|
|
46
33
|
private addBabelConfig;
|
|
@@ -50,10 +37,3 @@ export declare class CompatAppBuilder {
|
|
|
50
37
|
private addMacrosConfig;
|
|
51
38
|
private outputAppBootError;
|
|
52
39
|
}
|
|
53
|
-
interface TreeNames {
|
|
54
|
-
appJS: BroccoliNode;
|
|
55
|
-
htmlTree: BroccoliNode;
|
|
56
|
-
publicTree: BroccoliNode | undefined;
|
|
57
|
-
configTree: BroccoliNode;
|
|
58
|
-
}
|
|
59
|
-
export {};
|
|
@@ -14,25 +14,20 @@ const core_1 = require("@embroider/core");
|
|
|
14
14
|
const path_1 = require("path");
|
|
15
15
|
const dependency_rules_1 = require("./dependency-rules");
|
|
16
16
|
const flatMap_1 = __importDefault(require("lodash/flatMap"));
|
|
17
|
-
const mergeWith_1 = __importDefault(require("lodash/mergeWith"));
|
|
18
17
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
19
18
|
const bind_decorator_1 = __importDefault(require("bind-decorator"));
|
|
20
19
|
const fs_extra_1 = require("fs-extra");
|
|
21
20
|
const portable_babel_config_1 = require("@embroider/core/src/portable-babel-config");
|
|
22
|
-
const app_files_1 = require("@embroider/core/src/app-files");
|
|
23
21
|
const portable_1 = require("@embroider/core/src/portable");
|
|
24
22
|
const typescript_memoize_1 = require("typescript-memoize");
|
|
25
23
|
const path_2 = require("path");
|
|
26
24
|
const resolve_1 = __importDefault(require("resolve"));
|
|
27
25
|
const fs_extra_2 = require("fs-extra");
|
|
28
26
|
const node_1 = require("@embroider/macros/src/node");
|
|
29
|
-
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
|
|
30
|
-
const sync_dir_1 = require("./sync-dir");
|
|
31
27
|
// This exists during the actual broccoli build step. As opposed to CompatApp,
|
|
32
28
|
// which also exists during pipeline-construction time.
|
|
33
29
|
class CompatAppBuilder {
|
|
34
|
-
constructor(
|
|
35
|
-
this.root = root;
|
|
30
|
+
constructor(origAppPackage, appPackageWithMovedDeps, options, compatApp, configTree, contentForTree, synthVendor, synthStyles) {
|
|
36
31
|
this.origAppPackage = origAppPackage;
|
|
37
32
|
this.appPackageWithMovedDeps = appPackageWithMovedDeps;
|
|
38
33
|
this.options = options;
|
|
@@ -41,13 +36,6 @@ class CompatAppBuilder {
|
|
|
41
36
|
this.contentForTree = contentForTree;
|
|
42
37
|
this.synthVendor = synthVendor;
|
|
43
38
|
this.synthStyles = synthStyles;
|
|
44
|
-
this.firstBuild = true;
|
|
45
|
-
}
|
|
46
|
-
fastbootJSSrcDir() {
|
|
47
|
-
let target = (0, path_2.join)(this.compatApp.root, 'fastboot');
|
|
48
|
-
if ((0, fs_extra_2.pathExistsSync)(target)) {
|
|
49
|
-
return target;
|
|
50
|
-
}
|
|
51
39
|
}
|
|
52
40
|
activeAddonChildren(pkg) {
|
|
53
41
|
let result = pkg.dependencies.filter(this.isActiveAddon).filter(
|
|
@@ -90,26 +78,13 @@ class CompatAppBuilder {
|
|
|
90
78
|
return depAIdx - depBIdx;
|
|
91
79
|
}
|
|
92
80
|
resolvableExtensions() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
// For TS, we defer to ember-cli-babel, and the setting for
|
|
98
|
-
// "enableTypescriptTransform" can be set with and without
|
|
99
|
-
// ember-cli-typescript
|
|
100
|
-
return ['.wasm', '.mjs', '.js', '.json', '.ts', '.hbs', '.hbs.js', '.gjs', '.gts'];
|
|
101
|
-
}
|
|
102
|
-
addEmberEntrypoints(htmlTreePath) {
|
|
103
|
-
let classicEntrypoints = ['index.html', 'tests/index.html'];
|
|
104
|
-
if (!this.compatApp.shouldBuildTests) {
|
|
105
|
-
classicEntrypoints.pop();
|
|
81
|
+
let fromEnv = process.env.EMBROIDER_RESOLVABLE_EXTENSIONS;
|
|
82
|
+
if (fromEnv) {
|
|
83
|
+
return fromEnv.split(',');
|
|
106
84
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
let rewrittenAppPath = (0, path_2.join)(this.root, entrypoint);
|
|
110
|
-
(0, fs_extra_1.writeFileSync)(rewrittenAppPath, (0, fs_extra_1.readFileSync)(sourcePath));
|
|
85
|
+
else {
|
|
86
|
+
return ['.mjs', '.gjs', '.js', '.mts', '.gts', '.ts', '.hbs', '.hbs.js', '.json'];
|
|
111
87
|
}
|
|
112
|
-
return classicEntrypoints;
|
|
113
88
|
}
|
|
114
89
|
modulePrefix() {
|
|
115
90
|
return this.configTree.readConfig().modulePrefix;
|
|
@@ -117,12 +92,9 @@ class CompatAppBuilder {
|
|
|
117
92
|
podModulePrefix() {
|
|
118
93
|
return this.configTree.readConfig().podModulePrefix;
|
|
119
94
|
}
|
|
120
|
-
rootURL() {
|
|
121
|
-
return this.configTree.readConfig().rootURL;
|
|
122
|
-
}
|
|
123
95
|
activeRules() {
|
|
124
96
|
return (0, dependency_rules_1.activePackageRules)(this.options.packageRules.concat(defaultAddonPackageRules()), [
|
|
125
|
-
{ name: this.origAppPackage.name, version: this.origAppPackage.version, root: this.root },
|
|
97
|
+
{ name: this.origAppPackage.name, version: this.origAppPackage.version, root: this.origAppPackage.root },
|
|
126
98
|
...this.allActiveAddons.filter(p => p.meta['auto-upgraded']),
|
|
127
99
|
]);
|
|
128
100
|
}
|
|
@@ -141,13 +113,12 @@ class CompatAppBuilder {
|
|
|
141
113
|
renamePackages,
|
|
142
114
|
resolvableExtensions: this.resolvableExtensions(),
|
|
143
115
|
appRoot: this.origAppPackage.root,
|
|
144
|
-
engines: engines.map(
|
|
145
|
-
packageName:
|
|
146
|
-
// first engine is the app, which has been relocated to this.root
|
|
116
|
+
engines: engines.map(engine => ({
|
|
117
|
+
packageName: engine.package.name,
|
|
147
118
|
// we need to use the real path here because webpack requests always use the real path i.e. follow symlinks
|
|
148
|
-
root: (0, fs_extra_1.realpathSync)(
|
|
149
|
-
fastbootFiles:
|
|
150
|
-
activeAddons: [...
|
|
119
|
+
root: (0, fs_extra_1.realpathSync)(engine.package.root),
|
|
120
|
+
fastbootFiles: {},
|
|
121
|
+
activeAddons: [...engine.addons]
|
|
151
122
|
.map(([addon, canResolveFromFile]) => ({
|
|
152
123
|
name: addon.name,
|
|
153
124
|
root: addon.root,
|
|
@@ -157,7 +128,7 @@ class CompatAppBuilder {
|
|
|
157
128
|
// that the last one wins. Our resolver's order is the order to
|
|
158
129
|
// search, so first one wins.
|
|
159
130
|
.reverse(),
|
|
160
|
-
isLazy:
|
|
131
|
+
isLazy: engine.package.isLazyEngine(),
|
|
161
132
|
})),
|
|
162
133
|
amdCompatibility: this.options.amdCompatibility,
|
|
163
134
|
// this is the additional stufff that @embroider/compat adds on top to do
|
|
@@ -172,9 +143,6 @@ class CompatAppBuilder {
|
|
|
172
143
|
};
|
|
173
144
|
return config;
|
|
174
145
|
}
|
|
175
|
-
get resolvableExtensionsPattern() {
|
|
176
|
-
return (0, core_1.extensionsPattern)(this.resolvableExtensions());
|
|
177
|
-
}
|
|
178
146
|
async babelConfig(resolverConfig) {
|
|
179
147
|
let babel = (0, cloneDeep_1.default)(this.compatApp.babelConfig());
|
|
180
148
|
if (!babel.plugins) {
|
|
@@ -236,7 +204,7 @@ class CompatAppBuilder {
|
|
|
236
204
|
require.resolve('@babel/plugin-transform-runtime'),
|
|
237
205
|
{ absoluteRuntime: __dirname, useESModules: true, regenerator: false },
|
|
238
206
|
]);
|
|
239
|
-
const portable = (0, portable_babel_config_1.makePortable)(babel, { basedir: this.root }, this.portableHints);
|
|
207
|
+
const portable = (0, portable_babel_config_1.makePortable)(babel, { basedir: this.origAppPackage.root }, this.portableHints);
|
|
240
208
|
addCachablePlugin(portable.config);
|
|
241
209
|
return portable;
|
|
242
210
|
}
|
|
@@ -249,16 +217,7 @@ class CompatAppBuilder {
|
|
|
249
217
|
if (!child.isEngine()) {
|
|
250
218
|
this.findActiveAddons(child, engine, true);
|
|
251
219
|
}
|
|
252
|
-
let canResolveFrom;
|
|
253
|
-
if (pkg === this.appPackageWithMovedDeps) {
|
|
254
|
-
// we want canResolveFrom to always be a rewritten package path, and our
|
|
255
|
-
// app's package is not rewritten yet here.
|
|
256
|
-
canResolveFrom = (0, path_1.resolve)(this.root, 'package.json');
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
// whereas our addons are already moved
|
|
260
|
-
canResolveFrom = (0, path_1.resolve)(pkg.root, 'package.json');
|
|
261
|
-
}
|
|
220
|
+
let canResolveFrom = (0, path_1.resolve)(pkg.root, 'package.json');
|
|
262
221
|
engine.addons.set(child, canResolveFrom);
|
|
263
222
|
}
|
|
264
223
|
// ensure addons are applied in the correct order, if set (via @embroider/compat/v1-addon)
|
|
@@ -294,7 +253,7 @@ class CompatAppBuilder {
|
|
|
294
253
|
addons: new Map(),
|
|
295
254
|
isApp: !current,
|
|
296
255
|
modulePrefix: addon.name,
|
|
297
|
-
appRelativePath: (0, core_1.explicitRelative)(this.root, addon.root),
|
|
256
|
+
appRelativePath: (0, core_1.explicitRelative)(this.origAppPackage.root, addon.root),
|
|
298
257
|
});
|
|
299
258
|
}
|
|
300
259
|
}
|
|
@@ -302,9 +261,6 @@ class CompatAppBuilder {
|
|
|
302
261
|
}
|
|
303
262
|
return done;
|
|
304
263
|
}
|
|
305
|
-
get activeFastboot() {
|
|
306
|
-
return this.activeAddonChildren(this.appPackageWithMovedDeps).find(a => a.name === 'ember-cli-fastboot');
|
|
307
|
-
}
|
|
308
264
|
emberVersion() {
|
|
309
265
|
let pkg = this.activeAddonChildren(this.appPackageWithMovedDeps).find(a => a.name === 'ember-source');
|
|
310
266
|
if (!pkg) {
|
|
@@ -312,96 +268,14 @@ class CompatAppBuilder {
|
|
|
312
268
|
}
|
|
313
269
|
return pkg.version;
|
|
314
270
|
}
|
|
315
|
-
|
|
316
|
-
if (this.activeFastboot) {
|
|
317
|
-
// this is relying on work done in stage1 by @embroider/compat/src/compat-adapters/ember-cli-fastboot.ts
|
|
318
|
-
let packageJSON = (0, fs_extra_1.readJSONSync)((0, path_2.join)(this.activeFastboot.root, '_fastboot_', 'package.json'));
|
|
319
|
-
let { extraAppFiles, extraVendorFiles } = packageJSON['embroider-fastboot'];
|
|
320
|
-
delete packageJSON['embroider-fastboot'];
|
|
321
|
-
extraVendorFiles.push('assets/embroider_macros_fastboot_init.js');
|
|
322
|
-
return { packageJSON, extraAppFiles, extraVendorFiles };
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
updateAppJS(appJSPath) {
|
|
326
|
-
var _a;
|
|
327
|
-
if (!this.engines) {
|
|
328
|
-
this.engines = this.partitionEngines().map(engine => {
|
|
329
|
-
if (engine.isApp) {
|
|
330
|
-
// this is the app. We have more to do for the app than for other
|
|
331
|
-
// engines.
|
|
332
|
-
let fastbootSync;
|
|
333
|
-
if (this.activeFastboot) {
|
|
334
|
-
let fastbootDir = this.fastbootJSSrcDir();
|
|
335
|
-
if (fastbootDir) {
|
|
336
|
-
fastbootSync = new sync_dir_1.SyncDir(fastbootDir, (0, path_1.resolve)(this.root, '_fastboot_'));
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
return {
|
|
340
|
-
engine,
|
|
341
|
-
appSync: new sync_dir_1.SyncDir(appJSPath, this.root),
|
|
342
|
-
fastbootSync,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
// this is not the app, so it's some other engine. Engines are already
|
|
347
|
-
// built by stage1 like all other addons, so we only need to observe
|
|
348
|
-
// their files, not doing any actual copying or building.
|
|
349
|
-
return {
|
|
350
|
-
engine,
|
|
351
|
-
appSync: new sync_dir_1.SyncDir(engine.package.root, undefined),
|
|
352
|
-
// AFAIK, we've never supported a fastboot overlay directory in an
|
|
353
|
-
// engine. But if we do need that, it would go here.
|
|
354
|
-
fastbootSync: undefined,
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
for (let engine of this.engines) {
|
|
360
|
-
engine.appSync.update();
|
|
361
|
-
(_a = engine.fastbootSync) === null || _a === void 0 ? void 0 : _a.update();
|
|
362
|
-
}
|
|
363
|
-
return this.engines.map(({ engine, appSync, fastbootSync }) => {
|
|
364
|
-
var _a;
|
|
365
|
-
return new app_files_1.AppFiles(engine, appSync.files, (_a = fastbootSync === null || fastbootSync === void 0 ? void 0 : fastbootSync.files) !== null && _a !== void 0 ? _a : new Set(), this.resolvableExtensionsPattern, this.staticAppPathsPattern, this.podModulePrefix());
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
get staticAppPathsPattern() {
|
|
369
|
-
if (this.options.staticAppPaths.length > 0) {
|
|
370
|
-
return new RegExp('^(?:' + this.options.staticAppPaths.map(staticAppPath => (0, escape_string_regexp_1.default)(staticAppPath)).join('|') + ')(?:$|/)');
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
async build(inputPaths) {
|
|
271
|
+
async build() {
|
|
374
272
|
// on the first build, we lock down the macros config. on subsequent builds,
|
|
375
273
|
// this doesn't do anything anyway because it's idempotent.
|
|
376
274
|
this.compatApp.macrosConfig.finalize();
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
(0, fs_extra_1.rmSync)(this.root, { recursive: true, force: true });
|
|
380
|
-
this.firstBuild = false;
|
|
381
|
-
}
|
|
382
|
-
let appFiles = this.updateAppJS(inputPaths.appJS);
|
|
383
|
-
let assetPaths = this.addEmberEntrypoints(inputPaths.htmlTree);
|
|
384
|
-
if (this.activeFastboot) {
|
|
385
|
-
// when using fastboot, our own package.json needs to be in the output so fastboot can read it.
|
|
386
|
-
assetPaths.push('package.json');
|
|
275
|
+
if (!this.engines) {
|
|
276
|
+
this.engines = this.partitionEngines();
|
|
387
277
|
}
|
|
388
|
-
let
|
|
389
|
-
type: 'app',
|
|
390
|
-
version: 2,
|
|
391
|
-
assets: assetPaths,
|
|
392
|
-
babel: {
|
|
393
|
-
filename: '_babel_config_.js',
|
|
394
|
-
isParallelSafe: true, // TODO
|
|
395
|
-
majorVersion: this.compatApp.babelMajorVersion(),
|
|
396
|
-
fileFilter: '_babel_filter_.js',
|
|
397
|
-
},
|
|
398
|
-
'root-url': this.rootURL(),
|
|
399
|
-
};
|
|
400
|
-
// all compat apps are auto-upgraded, there's no v2 app format here
|
|
401
|
-
meta['auto-upgraded'] = true;
|
|
402
|
-
let pkg = this.combinePackageJSON(meta);
|
|
403
|
-
(0, fs_extra_1.writeFileSync)((0, path_2.join)(this.root, 'package.json'), JSON.stringify(pkg, null, 2), 'utf8');
|
|
404
|
-
let resolverConfig = this.resolverConfig(appFiles);
|
|
278
|
+
let resolverConfig = this.resolverConfig(this.engines);
|
|
405
279
|
let config = this.configTree.readConfig();
|
|
406
280
|
let contentForConfig = this.contentForTree.readContents();
|
|
407
281
|
this.addResolverConfig(resolverConfig);
|
|
@@ -412,17 +286,6 @@ class CompatAppBuilder {
|
|
|
412
286
|
this.addBabelConfig(babelConfig);
|
|
413
287
|
this.addMacrosConfig(this.compatApp.macrosConfig.babelPluginConfig()[0]);
|
|
414
288
|
}
|
|
415
|
-
combinePackageJSON(meta) {
|
|
416
|
-
let pkgLayers = [this.origAppPackage.packageJSON];
|
|
417
|
-
let fastbootConfig = this.fastbootConfig;
|
|
418
|
-
if (fastbootConfig) {
|
|
419
|
-
// fastboot-specific package.json output is allowed to add to our original package.json
|
|
420
|
-
pkgLayers.push(fastbootConfig.packageJSON);
|
|
421
|
-
}
|
|
422
|
-
// but our own new v2 app metadata takes precedence over both
|
|
423
|
-
pkgLayers.push({ 'ember-addon': meta });
|
|
424
|
-
return combinePackageJSON(...pkgLayers);
|
|
425
|
-
}
|
|
426
289
|
async etcOptions(resolverConfig) {
|
|
427
290
|
let transforms = this.compatApp.htmlbarsPlugins;
|
|
428
291
|
let { plugins: macroPlugins, setConfig } = node_1.MacrosConfig.transforms();
|
|
@@ -441,9 +304,9 @@ class CompatAppBuilder {
|
|
|
441
304
|
transforms.push([require.resolve('./resolver-transform'), opts]);
|
|
442
305
|
}
|
|
443
306
|
let resolver = new core_1.Resolver(resolverConfig);
|
|
444
|
-
let resolution = await resolver.nodeResolve('ember-source/vendor/ember/ember-template-compiler', (0, path_1.resolve)(this.root, 'package.json'));
|
|
307
|
+
let resolution = await resolver.nodeResolve('ember-source/vendor/ember/ember-template-compiler', (0, path_1.resolve)(this.origAppPackage.root, 'package.json'));
|
|
445
308
|
if (resolution.type !== 'real') {
|
|
446
|
-
throw new Error(`bug: unable to resolve ember-template-compiler from ${this.root}`);
|
|
309
|
+
throw new Error(`bug: unable to resolve ember-template-compiler from ${this.origAppPackage.root}`);
|
|
447
310
|
}
|
|
448
311
|
return {
|
|
449
312
|
transforms,
|
|
@@ -499,7 +362,7 @@ class CompatAppBuilder {
|
|
|
499
362
|
The following code is included via content-for 'config-module':
|
|
500
363
|
|
|
501
364
|
${configModule}
|
|
502
|
-
|
|
365
|
+
|
|
503
366
|
1. If you want to keep the same behavior, add it to the app/environment.js.
|
|
504
367
|
2. Once app/environment.js has the content you need, remove the present error by setting "useAddonConfigModule" to false in the build options.
|
|
505
368
|
`);
|
|
@@ -547,9 +410,6 @@ class CompatAppBuilder {
|
|
|
547
410
|
}
|
|
548
411
|
}
|
|
549
412
|
exports.CompatAppBuilder = CompatAppBuilder;
|
|
550
|
-
__decorate([
|
|
551
|
-
(0, typescript_memoize_1.Memoize)()
|
|
552
|
-
], CompatAppBuilder.prototype, "fastbootJSSrcDir", null);
|
|
553
413
|
__decorate([
|
|
554
414
|
(0, typescript_memoize_1.Memoize)()
|
|
555
415
|
], CompatAppBuilder.prototype, "allActiveAddons", null);
|
|
@@ -562,21 +422,9 @@ __decorate([
|
|
|
562
422
|
__decorate([
|
|
563
423
|
(0, typescript_memoize_1.Memoize)()
|
|
564
424
|
], CompatAppBuilder.prototype, "activeRules", null);
|
|
565
|
-
__decorate([
|
|
566
|
-
(0, typescript_memoize_1.Memoize)()
|
|
567
|
-
], CompatAppBuilder.prototype, "resolvableExtensionsPattern", null);
|
|
568
425
|
__decorate([
|
|
569
426
|
(0, typescript_memoize_1.Memoize)()
|
|
570
427
|
], CompatAppBuilder.prototype, "babelConfig", null);
|
|
571
|
-
__decorate([
|
|
572
|
-
(0, typescript_memoize_1.Memoize)()
|
|
573
|
-
], CompatAppBuilder.prototype, "activeFastboot", null);
|
|
574
|
-
__decorate([
|
|
575
|
-
(0, typescript_memoize_1.Memoize)()
|
|
576
|
-
], CompatAppBuilder.prototype, "fastbootConfig", null);
|
|
577
|
-
__decorate([
|
|
578
|
-
(0, typescript_memoize_1.Memoize)()
|
|
579
|
-
], CompatAppBuilder.prototype, "staticAppPathsPattern", null);
|
|
580
428
|
__decorate([
|
|
581
429
|
(0, typescript_memoize_1.Memoize)()
|
|
582
430
|
], CompatAppBuilder.prototype, "portableHints", null);
|
|
@@ -595,16 +443,6 @@ const babelFilterTemplate = (0, core_1.jsHandlebarsCompile)(`
|
|
|
595
443
|
const { babelFilter } = require(${JSON.stringify(require.resolve('@embroider/core'))});
|
|
596
444
|
module.exports = babelFilter({{json-stringify skipBabel}}, "{{js-string-escape appRoot}}");
|
|
597
445
|
`);
|
|
598
|
-
function combinePackageJSON(...layers) {
|
|
599
|
-
function custom(objValue, srcValue, key, _object, _source, stack) {
|
|
600
|
-
if (key === 'keywords' && stack.size === 0) {
|
|
601
|
-
if (Array.isArray(objValue)) {
|
|
602
|
-
return objValue.concat(srcValue);
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
return (0, mergeWith_1.default)({}, ...layers, custom);
|
|
607
|
-
}
|
|
608
446
|
function addCachablePlugin(babelConfig) {
|
|
609
447
|
if (Array.isArray(babelConfig.plugins) && babelConfig.plugins.length > 0) {
|
|
610
448
|
const plugins = Object.create(null);
|