@embroider/compat 3.1.5 → 3.1.6-unstable.0e00f2b
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 +15 -14
- package/src/babel-plugin-adjust-imports.js +1 -1
- package/src/babel-plugin-adjust-imports.js.map +1 -1
- package/src/build-compat-addon.js +1 -13
- package/src/build-compat-addon.js.map +1 -1
- package/src/compat-adapters/ember-scroll-modifiers.d.ts +4 -0
- package/src/compat-adapters/ember-scroll-modifiers.js +23 -0
- package/src/compat-adapters/ember-scroll-modifiers.js.map +1 -0
- package/src/compat-adapters/ember-source.d.ts +10 -0
- package/src/compat-adapters/ember-source.js +157 -0
- package/src/compat-adapters/ember-source.js.map +1 -1
- package/src/compat-app-builder.d.ts +0 -1
- package/src/compat-app-builder.js +15 -57
- package/src/compat-app-builder.js.map +1 -1
- package/src/dependency-rules.js +1 -1
- package/src/dependency-rules.js.map +1 -1
- package/src/options.d.ts +1 -0
- package/src/options.js +2 -0
- package/src/options.js.map +1 -1
- package/src/resolver-transform.js +6 -4
- package/src/resolver-transform.js.map +1 -1
- package/src/standalone-addon-build.js +12 -0
- package/src/standalone-addon-build.js.map +1 -1
- package/LICENSE +0 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embroider/compat",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.6-unstable.0e00f2b",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Backward compatibility layer for the Embroider build system.",
|
|
6
6
|
"repository": {
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
"bin": {
|
|
20
20
|
"embroider-compat-audit": "./src/audit-cli.js"
|
|
21
21
|
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"test": "jest"
|
|
24
|
+
},
|
|
22
25
|
"dependencies": {
|
|
23
26
|
"@babel/code-frame": "^7.14.5",
|
|
24
27
|
"@babel/core": "^7.14.5",
|
|
@@ -27,11 +30,12 @@
|
|
|
27
30
|
"@babel/preset-env": "^7.14.5",
|
|
28
31
|
"@babel/runtime": "^7.18.6",
|
|
29
32
|
"@babel/traverse": "^7.14.5",
|
|
33
|
+
"@embroider/macros": "1.12.4-unstable.0e00f2b",
|
|
30
34
|
"@types/babel__code-frame": "^7.0.2",
|
|
31
35
|
"@types/yargs": "^17.0.3",
|
|
32
36
|
"assert-never": "^1.1.0",
|
|
33
|
-
"babel-import-util": "^
|
|
34
|
-
"babel-plugin-ember-template-compilation": "^2.
|
|
37
|
+
"babel-import-util": "^2.0.0",
|
|
38
|
+
"babel-plugin-ember-template-compilation": "^2.1.1",
|
|
35
39
|
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
|
36
40
|
"babylon": "^6.18.0",
|
|
37
41
|
"bind-decorator": "^1.0.11",
|
|
@@ -59,11 +63,13 @@
|
|
|
59
63
|
"tree-sync": "^2.1.0",
|
|
60
64
|
"typescript-memoize": "^1.0.1",
|
|
61
65
|
"walk-sync": "^3.0.0",
|
|
62
|
-
"yargs": "^17.0.1"
|
|
63
|
-
"@embroider/macros": "1.12.3"
|
|
66
|
+
"yargs": "^17.0.1"
|
|
64
67
|
},
|
|
65
68
|
"devDependencies": {
|
|
66
|
-
"@
|
|
69
|
+
"@embroider/core": "3.1.4-unstable.0e00f2b",
|
|
70
|
+
"@embroider/sample-transforms": "workspace:*",
|
|
71
|
+
"@embroider/test-support": "workspace:*",
|
|
72
|
+
"@glimmer/syntax": "^0.84.3",
|
|
67
73
|
"@glint/template": "^1.0.0",
|
|
68
74
|
"@types/babel__core": "^7.1.14",
|
|
69
75
|
"@types/babel__generator": "^7.6.2",
|
|
@@ -82,20 +88,15 @@
|
|
|
82
88
|
"code-equality-assertions": "^0.9.0",
|
|
83
89
|
"ember-engines": "^0.8.19",
|
|
84
90
|
"scenario-tester": "^2.1.2",
|
|
85
|
-
"typescript": "^5.1.6"
|
|
86
|
-
"@embroider/sample-transforms": "0.0.0",
|
|
87
|
-
"@embroider/test-support": "0.36.0"
|
|
91
|
+
"typescript": "^5.1.6"
|
|
88
92
|
},
|
|
89
93
|
"peerDependencies": {
|
|
90
|
-
"@embroider/core": "
|
|
94
|
+
"@embroider/core": "3.1.4-unstable.0e00f2b"
|
|
91
95
|
},
|
|
92
96
|
"engines": {
|
|
93
97
|
"node": "12.* || 14.* || >= 16"
|
|
94
98
|
},
|
|
95
99
|
"volta": {
|
|
96
100
|
"extends": "../../package.json"
|
|
97
|
-
},
|
|
98
|
-
"scripts": {
|
|
99
|
-
"test": "jest"
|
|
100
101
|
}
|
|
101
|
-
}
|
|
102
|
+
}
|
|
@@ -128,7 +128,7 @@ function lazyPackageLookup(config, filename) {
|
|
|
128
128
|
return {
|
|
129
129
|
get owningPackage() {
|
|
130
130
|
if (!owningPackage) {
|
|
131
|
-
owningPackage = { result: config.resolver.
|
|
131
|
+
owningPackage = { result: config.resolver.packageCache.ownerOfFile(filename) };
|
|
132
132
|
}
|
|
133
133
|
return owningPackage.result;
|
|
134
134
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel-plugin-adjust-imports.js","sourceRoot":"","sources":["babel-plugin-adjust-imports.ts"],"names":[],"mappings":"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","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 { CompatResolverOptions } from './resolver-transform';\nimport { locateEmbroiderWorkingDir, Package, packageName, Resolver, unrelativize } from '@embroider/core';\nimport { snippetToDasherizedName } from './dasherize-component-name';\nimport { ActivePackageRules, appTreeRulesDir, ComponentRules, ModuleRules, TemplateRules } 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 = (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.owningPackage(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":"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","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 { CompatResolverOptions } from './resolver-transform';\nimport { locateEmbroiderWorkingDir, Package, packageName, Resolver, unrelativize } from '@embroider/core';\nimport { snippetToDasherizedName } from './dasherize-component-name';\nimport { ActivePackageRules, appTreeRulesDir, ComponentRules, ModuleRules, TemplateRules } 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 = (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"]}
|
|
@@ -5,16 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const smoosh_package_json_1 = __importDefault(require("./smoosh-package-json"));
|
|
7
7
|
const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
|
|
8
|
-
const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
|
|
9
|
-
const broccoli_source_1 = require("broccoli-source");
|
|
10
8
|
const empty_package_tree_1 = __importDefault(require("./empty-package-tree"));
|
|
11
9
|
function buildCompatAddon(originalPackage, v1Cache) {
|
|
12
10
|
if (originalPackage.isV2Addon()) {
|
|
13
|
-
|
|
14
|
-
// non-native-v2 addon. (The non-native one will get rewritten and
|
|
15
|
-
// therefore moved, so to continue depending on it the native one needs to
|
|
16
|
-
// move too.)
|
|
17
|
-
return withoutNodeModules(originalPackage);
|
|
11
|
+
throw new Error(`bug in @embroider/compat. We should not see any v2 addons here, but ${originalPackage.name} as ${originalPackage.root} is a v2 addon`);
|
|
18
12
|
}
|
|
19
13
|
let oldPackages = v1Cache.getAddons(originalPackage.root);
|
|
20
14
|
if (oldPackages.length > 1) {
|
|
@@ -45,10 +39,4 @@ function buildCompatAddon(originalPackage, v1Cache) {
|
|
|
45
39
|
}
|
|
46
40
|
}
|
|
47
41
|
exports.default = buildCompatAddon;
|
|
48
|
-
function withoutNodeModules(originalPackage) {
|
|
49
|
-
let Klass = originalPackage.mayRebuild ? broccoli_source_1.WatchedDir : broccoli_source_1.UnwatchedDir;
|
|
50
|
-
return (0, broccoli_funnel_1.default)(new Klass(originalPackage.root), {
|
|
51
|
-
exclude: ['node_modules', '*/node_modules'],
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
42
|
//# sourceMappingURL=build-compat-addon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-compat-addon.js","sourceRoot":"","sources":["build-compat-addon.ts"],"names":[],"mappings":";;;;;AAEA,gFAAsD;AACtD,gFAAsD;AAEtD,
|
|
1
|
+
{"version":3,"file":"build-compat-addon.js","sourceRoot":"","sources":["build-compat-addon.ts"],"names":[],"mappings":";;;;;AAEA,gFAAsD;AACtD,gFAAsD;AAEtD,8EAAoD;AAEpD,SAAwB,gBAAgB,CAAC,eAAwB,EAAE,OAAwB;IACzF,IAAI,eAAe,CAAC,SAAS,EAAE,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,uEAAuE,eAAe,CAAC,IAAI,OAAO,eAAe,CAAC,IAAI,gBAAgB,CACvI,CAAC;KACH;IAED,IAAI,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1B,sEAAsE;QACtE,2EAA2E;QAC3E,+BAA+B;QAC/B,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;KAC3D;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,yEAAyE;QACzE,4EAA4E;QAC5E,kCAAkC;QAClC,EAAE;QACF,yEAAyE;QACzE,gEAAgE;QAChE,0EAA0E;QAC1E,2BAA2B;QAC3B,OAAO,IAAI,4BAAgB,CAAC,eAAe,CAAC,CAAC;KAC9C;IAED,IAAI,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5E,IAAI,cAAc,EAAE;QAClB,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,IAAI,QAAQ,GAAG,IAAI,6BAAiB,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,OAAO,IAAA,8BAAkB,EAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACtE;SAAM;QACL,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9B;AACH,CAAC;AApCD,mCAoCC","sourcesContent":["import V1InstanceCache from './v1-instance-cache';\nimport { Package } from '@embroider/core';\nimport SmooshPackageJSON from './smoosh-package-json';\nimport broccoliMergeTrees from 'broccoli-merge-trees';\nimport { Node } from 'broccoli-node-api';\nimport EmptyPackageTree from './empty-package-tree';\n\nexport default function buildCompatAddon(originalPackage: Package, v1Cache: V1InstanceCache): Node {\n if (originalPackage.isV2Addon()) {\n throw new Error(\n `bug in @embroider/compat. We should not see any v2 addons here, but ${originalPackage.name} as ${originalPackage.root} is a v2 addon`\n );\n }\n\n let oldPackages = v1Cache.getAddons(originalPackage.root);\n\n if (oldPackages.length > 1) {\n // extensibility hook that allows a compat adapter to optimize its own\n // smooshing. We do it early so that if it reduces all the way to zero, the\n // next check will handle that.\n oldPackages = oldPackages[0].reduceInstances(oldPackages);\n }\n\n if (oldPackages.length === 0) {\n // this happens when the v1 addon wasn't actually getting instantiated at\n // all, which can happen if the app uses `addons.blacklist` or another addon\n // uses `shouldIncludeChildAddon`.\n //\n // we still keep a place for this addon in the rewritten addon workspace,\n // because that whole process only depends on looking at all the\n // package.json files on disk -- it can't know which ones are going to end\n // up unused at this point.\n return new EmptyPackageTree(originalPackage);\n }\n\n let needsSmooshing = oldPackages.length > 1 && oldPackages[0].hasAnyTrees();\n if (needsSmooshing) {\n let trees = oldPackages.map(pkg => pkg.v2Tree).reverse();\n let smoosher = new SmooshPackageJSON(trees, { annotation: originalPackage.name });\n return broccoliMergeTrees([...trees, smoosher], { overwrite: true });\n } else {\n return oldPackages[0].v2Tree;\n }\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
// observer-manager is injected with the undocumented package@service syntax without being app re-exported
|
|
11
|
+
// this makes sure that the service is always re-exported and injectable even when built with staticAddonTrees=true
|
|
12
|
+
if (meta['implicit-modules'] &&
|
|
13
|
+
!meta['implicit-modules'].find(implicitModule => implicitModule === './services/observer-manager.js')) {
|
|
14
|
+
meta['implicit-modules'].push('./services/observer-manager.js');
|
|
15
|
+
}
|
|
16
|
+
else if (!meta['implicit-modules']) {
|
|
17
|
+
meta['implicit-modules'] = ['./services/observer-manager.js'];
|
|
18
|
+
}
|
|
19
|
+
return meta;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.default = default_1;
|
|
23
|
+
//# sourceMappingURL=ember-scroll-modifiers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ember-scroll-modifiers.js","sourceRoot":"","sources":["ember-scroll-modifiers.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC,eAAqB,SAAQ,kBAAO;IAClC,IAAI,WAAW;QACb,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,0GAA0G;QAC1G,mHAAmH;QACnH,IACE,IAAI,CAAC,kBAAkB,CAAC;YACxB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,KAAK,gCAAgC,CAAC,EACrG;YACA,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;SACjE;aAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACpC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAfD,4BAeC","sourcesContent":["import V1Addon from '../v1-addon';\n\nexport default class extends V1Addon {\n get packageMeta() {\n let meta = super.packageMeta;\n // observer-manager is injected with the undocumented package@service syntax without being app re-exported\n // this makes sure that the service is always re-exported and injectable even when built with staticAddonTrees=true\n if (\n meta['implicit-modules'] &&\n !meta['implicit-modules'].find(implicitModule => implicitModule === './services/observer-manager.js')\n ) {\n meta['implicit-modules'].push('./services/observer-manager.js');\n } else if (!meta['implicit-modules']) {\n meta['implicit-modules'] = ['./services/observer-manager.js'];\n }\n return meta;\n }\n}\n"]}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import V1Addon from '../v1-addon';
|
|
2
2
|
export default class extends V1Addon {
|
|
3
3
|
get v2Tree(): Node;
|
|
4
|
+
private get useStaticEmber();
|
|
5
|
+
private get includedDependencies();
|
|
6
|
+
get newPackageJSON(): import("@embroider/core").PackageInfo;
|
|
7
|
+
customizes(treeName: string): boolean;
|
|
8
|
+
invokeOriginalTreeFor(name: string, opts?: {
|
|
9
|
+
neuterPreprocessors: boolean;
|
|
10
|
+
}): any;
|
|
11
|
+
private customAddonTree;
|
|
12
|
+
private customVendorTree;
|
|
13
|
+
get packageMeta(): Partial<import("@embroider/core").AddonMeta>;
|
|
4
14
|
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
2
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
10
|
};
|
|
@@ -6,10 +12,161 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
12
|
const v1_addon_1 = __importDefault(require("../v1-addon"));
|
|
7
13
|
const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
|
|
8
14
|
const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
|
|
15
|
+
const add_to_tree_1 = __importDefault(require("../add-to-tree"));
|
|
16
|
+
const fs_extra_1 = require("fs-extra");
|
|
17
|
+
const path_1 = require("path");
|
|
18
|
+
const typescript_memoize_1 = require("typescript-memoize");
|
|
19
|
+
const semver_1 = require("semver");
|
|
20
|
+
const core_1 = require("@babel/core");
|
|
21
|
+
const broccoli_plugin_1 = __importDefault(require("broccoli-plugin"));
|
|
9
22
|
class default_1 extends v1_addon_1.default {
|
|
10
23
|
get v2Tree() {
|
|
11
24
|
return (0, broccoli_merge_trees_1.default)([super.v2Tree, (0, broccoli_funnel_1.default)(this.rootTree, { include: ['dist/ember-template-compiler.js'] })]);
|
|
12
25
|
}
|
|
26
|
+
get useStaticEmber() {
|
|
27
|
+
return this.app.options.staticEmberSource;
|
|
28
|
+
}
|
|
29
|
+
// ember-source inlines a whole bunch of dependencies into itself
|
|
30
|
+
get includedDependencies() {
|
|
31
|
+
let result = [];
|
|
32
|
+
for (let name of (0, fs_extra_1.readdirSync)((0, path_1.resolve)(this.root, 'dist', 'dependencies'))) {
|
|
33
|
+
if (name[0] === '@') {
|
|
34
|
+
for (let innerName of (0, fs_extra_1.readdirSync)((0, path_1.resolve)(this.root, 'dist', 'dependencies', name))) {
|
|
35
|
+
if (innerName.endsWith('.js')) {
|
|
36
|
+
result.push(name + '/' + innerName.slice(0, -3));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (name.endsWith('.js')) {
|
|
42
|
+
result.push(name.slice(0, -3));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
get newPackageJSON() {
|
|
49
|
+
var _a;
|
|
50
|
+
let json = super.newPackageJSON;
|
|
51
|
+
if (this.useStaticEmber) {
|
|
52
|
+
for (let name of this.includedDependencies) {
|
|
53
|
+
// weirdly, many of the inlined dependency are still listed as real
|
|
54
|
+
// dependencies too. If we don't delete them here, they will take
|
|
55
|
+
// precedence over the inlined ones, because the embroider module-resolver
|
|
56
|
+
// tries to prioritize real deps.
|
|
57
|
+
(_a = json.dependencies) === null || _a === void 0 ? true : delete _a[name];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return json;
|
|
61
|
+
}
|
|
62
|
+
customizes(treeName) {
|
|
63
|
+
if (this.useStaticEmber) {
|
|
64
|
+
// we are adding custom implementations of these
|
|
65
|
+
return treeName === 'treeForAddon' || treeName === 'treeForVendor' || super.customizes(treeName);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return super.customizes(treeName);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
invokeOriginalTreeFor(name, opts = { neuterPreprocessors: false }) {
|
|
72
|
+
if (this.useStaticEmber) {
|
|
73
|
+
if (name === 'addon') {
|
|
74
|
+
return this.customAddonTree();
|
|
75
|
+
}
|
|
76
|
+
if (name === 'vendor') {
|
|
77
|
+
return this.customVendorTree();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return super.invokeOriginalTreeFor(name, opts);
|
|
81
|
+
}
|
|
82
|
+
// Our addon tree is all of the "packages" we share. @embroider/compat already
|
|
83
|
+
// supports that pattern of emitting modules into other package's namespaces.
|
|
84
|
+
customAddonTree() {
|
|
85
|
+
let packages = (0, broccoli_funnel_1.default)(this.rootTree, {
|
|
86
|
+
srcDir: 'dist/packages',
|
|
87
|
+
});
|
|
88
|
+
let trees = [
|
|
89
|
+
packages,
|
|
90
|
+
(0, broccoli_funnel_1.default)(this.rootTree, {
|
|
91
|
+
srcDir: 'dist/dependencies',
|
|
92
|
+
}),
|
|
93
|
+
];
|
|
94
|
+
if ((0, semver_1.satisfies)(this.packageJSON.version, '>= 4.0.0-alpha.0 <4.10.0-alpha.0', { includePrerelease: true })) {
|
|
95
|
+
// import { loc } from '@ember/string' was removed in 4.0. but the
|
|
96
|
+
// top-level `ember` package tries to import it until 4.10. A
|
|
97
|
+
// spec-compliant ES modules implementation will treat this as a parse
|
|
98
|
+
// error.
|
|
99
|
+
trees.push(new FixStringLoc([packages]));
|
|
100
|
+
}
|
|
101
|
+
return (0, broccoli_merge_trees_1.default)(trees, { overwrite: true });
|
|
102
|
+
}
|
|
103
|
+
// We're zeroing out these files in vendor rather than deleting them, because
|
|
104
|
+
// we can't easily intercept the `app.import` that presumably exists for them,
|
|
105
|
+
// so rather than error they will just be empty.
|
|
106
|
+
//
|
|
107
|
+
// The reason we're zeroing these out is that we're going to consume all our
|
|
108
|
+
// modules directly out of treeForAddon instead, as real modules that webpack
|
|
109
|
+
// can see.
|
|
110
|
+
customVendorTree() {
|
|
111
|
+
return new add_to_tree_1.default(this.addonInstance._treeFor('vendor'), outputPath => {
|
|
112
|
+
(0, fs_extra_1.unlinkSync)((0, path_1.join)(outputPath, 'ember', 'ember.js'));
|
|
113
|
+
(0, fs_extra_1.outputFileSync)((0, path_1.join)(outputPath, 'ember', 'ember.js'), '');
|
|
114
|
+
(0, fs_extra_1.unlinkSync)((0, path_1.join)(outputPath, 'ember', 'ember-testing.js'));
|
|
115
|
+
(0, fs_extra_1.outputFileSync)((0, path_1.join)(outputPath, 'ember', 'ember-testing.js'), '');
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
get packageMeta() {
|
|
119
|
+
let meta = super.packageMeta;
|
|
120
|
+
if (this.useStaticEmber) {
|
|
121
|
+
if (!meta['implicit-modules']) {
|
|
122
|
+
meta['implicit-modules'] = [];
|
|
123
|
+
}
|
|
124
|
+
meta['implicit-modules'].push('./ember/index.js');
|
|
125
|
+
if (!meta['implicit-test-modules']) {
|
|
126
|
+
meta['implicit-test-modules'] = [];
|
|
127
|
+
}
|
|
128
|
+
meta['implicit-test-modules'].push('./ember-testing/index.js');
|
|
129
|
+
}
|
|
130
|
+
return meta;
|
|
131
|
+
}
|
|
13
132
|
}
|
|
14
133
|
exports.default = default_1;
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, typescript_memoize_1.Memoize)()
|
|
136
|
+
], default_1.prototype, "includedDependencies", null);
|
|
137
|
+
class FixStringLoc extends broccoli_plugin_1.default {
|
|
138
|
+
build() {
|
|
139
|
+
let inSource = (0, fs_extra_1.readFileSync)((0, path_1.resolve)(this.inputPaths[0], 'ember', 'index.js'), 'utf8');
|
|
140
|
+
let outSource = (0, core_1.transform)(inSource, {
|
|
141
|
+
plugins: [fixStringLoc],
|
|
142
|
+
}).code;
|
|
143
|
+
(0, fs_extra_1.outputFileSync)((0, path_1.resolve)(this.outputPath, 'ember', 'index.js'), outSource, 'utf8');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function fixStringLoc(babel) {
|
|
147
|
+
let t = babel.types;
|
|
148
|
+
return {
|
|
149
|
+
visitor: {
|
|
150
|
+
Program(path) {
|
|
151
|
+
path.node.body.unshift(t.variableDeclaration('const', [t.variableDeclarator(t.identifier('loc'), t.identifier('undefined'))]));
|
|
152
|
+
},
|
|
153
|
+
ImportDeclaration: {
|
|
154
|
+
enter(path, state) {
|
|
155
|
+
if (path.node.source.value === '@ember/string') {
|
|
156
|
+
state.inEmberString = true;
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
exit(_path, state) {
|
|
160
|
+
state.inEmberString = false;
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
ImportSpecifier(path, state) {
|
|
164
|
+
let name = 'value' in path.node.imported ? path.node.imported.value : path.node.imported.name;
|
|
165
|
+
if (state.inEmberString && name === 'loc') {
|
|
166
|
+
path.remove();
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
15
172
|
//# sourceMappingURL=ember-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ember-source.js","sourceRoot":"","sources":["ember-source.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAClC,sEAA0C;AAC1C,gFAA8C;AAE9C,eAAqB,SAAQ,kBAAO;IAClC,IAAI,MAAM;QACR,OAAO,IAAA,8BAAU,EAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAA,yBAAW,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClH,CAAC;CACF;AAJD,4BAIC","sourcesContent":["import V1Addon from '../v1-addon';\nimport buildFunnel from 'broccoli-funnel';\nimport mergeTrees from 'broccoli-merge-trees';\n\nexport default class extends V1Addon {\n get v2Tree() {\n return mergeTrees([super.v2Tree, buildFunnel(this.rootTree, { include: ['dist/ember-template-compiler.js'] })]);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ember-source.js","sourceRoot":"","sources":["ember-source.ts"],"names":[],"mappings":"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","sourcesContent":["import V1Addon from '../v1-addon';\nimport buildFunnel from 'broccoli-funnel';\nimport mergeTrees from 'broccoli-merge-trees';\nimport AddToTree from '../add-to-tree';\nimport { outputFileSync, readFileSync, readdirSync, unlinkSync } from 'fs-extra';\nimport { join, resolve } from 'path';\nimport { Memoize } from 'typescript-memoize';\nimport { satisfies } from 'semver';\nimport { transform } from '@babel/core';\nimport type * as Babel from '@babel/core';\nimport type { NodePath } from '@babel/traverse';\nimport Plugin from 'broccoli-plugin';\nimport { Node } from 'broccoli-node-api';\n\nexport default class extends V1Addon {\n get v2Tree() {\n return mergeTrees([super.v2Tree, buildFunnel(this.rootTree, { include: ['dist/ember-template-compiler.js'] })]);\n }\n\n private get useStaticEmber(): boolean {\n return this.app.options.staticEmberSource;\n }\n\n // ember-source inlines a whole bunch of dependencies into itself\n @Memoize()\n private get includedDependencies() {\n let result: string[] = [];\n for (let name of readdirSync(resolve(this.root, 'dist', 'dependencies'))) {\n if (name[0] === '@') {\n for (let innerName of readdirSync(resolve(this.root, 'dist', 'dependencies', name))) {\n if (innerName.endsWith('.js')) {\n result.push(name + '/' + innerName.slice(0, -3));\n }\n }\n } else {\n if (name.endsWith('.js')) {\n result.push(name.slice(0, -3));\n }\n }\n }\n return result;\n }\n\n get newPackageJSON() {\n let json = super.newPackageJSON;\n if (this.useStaticEmber) {\n for (let name of this.includedDependencies) {\n // weirdly, many of the inlined dependency are still listed as real\n // dependencies too. If we don't delete them here, they will take\n // precedence over the inlined ones, because the embroider module-resolver\n // tries to prioritize real deps.\n delete json.dependencies?.[name];\n }\n }\n return json;\n }\n\n customizes(treeName: string) {\n if (this.useStaticEmber) {\n // we are adding custom implementations of these\n return treeName === 'treeForAddon' || treeName === 'treeForVendor' || super.customizes(treeName);\n } else {\n return super.customizes(treeName);\n }\n }\n\n invokeOriginalTreeFor(name: string, opts: { neuterPreprocessors: boolean } = { neuterPreprocessors: false }) {\n if (this.useStaticEmber) {\n if (name === 'addon') {\n return this.customAddonTree();\n }\n if (name === 'vendor') {\n return this.customVendorTree();\n }\n }\n return super.invokeOriginalTreeFor(name, opts);\n }\n\n // Our addon tree is all of the \"packages\" we share. @embroider/compat already\n // supports that pattern of emitting modules into other package's namespaces.\n private customAddonTree() {\n let packages = buildFunnel(this.rootTree, {\n srcDir: 'dist/packages',\n });\n\n let trees: Node[] = [\n packages,\n buildFunnel(this.rootTree, {\n srcDir: 'dist/dependencies',\n }),\n ];\n\n if (satisfies(this.packageJSON.version, '>= 4.0.0-alpha.0 <4.10.0-alpha.0', { includePrerelease: true })) {\n // import { loc } from '@ember/string' was removed in 4.0. but the\n // top-level `ember` package tries to import it until 4.10. A\n // spec-compliant ES modules implementation will treat this as a parse\n // error.\n trees.push(new FixStringLoc([packages]));\n }\n\n return mergeTrees(trees, { overwrite: true });\n }\n\n // We're zeroing out these files in vendor rather than deleting them, because\n // we can't easily intercept the `app.import` that presumably exists for them,\n // so rather than error they will just be empty.\n //\n // The reason we're zeroing these out is that we're going to consume all our\n // modules directly out of treeForAddon instead, as real modules that webpack\n // can see.\n private customVendorTree() {\n return new AddToTree(this.addonInstance._treeFor('vendor'), outputPath => {\n unlinkSync(join(outputPath, 'ember', 'ember.js'));\n outputFileSync(join(outputPath, 'ember', 'ember.js'), '');\n unlinkSync(join(outputPath, 'ember', 'ember-testing.js'));\n outputFileSync(join(outputPath, 'ember', 'ember-testing.js'), '');\n });\n }\n\n get packageMeta() {\n let meta = super.packageMeta;\n if (this.useStaticEmber) {\n if (!meta['implicit-modules']) {\n meta['implicit-modules'] = [];\n }\n meta['implicit-modules'].push('./ember/index.js');\n\n if (!meta['implicit-test-modules']) {\n meta['implicit-test-modules'] = [];\n }\n meta['implicit-test-modules'].push('./ember-testing/index.js');\n }\n return meta;\n }\n}\n\nclass FixStringLoc extends Plugin {\n build() {\n let inSource = readFileSync(resolve(this.inputPaths[0], 'ember', 'index.js'), 'utf8');\n let outSource = transform(inSource, {\n plugins: [fixStringLoc],\n })!.code!;\n outputFileSync(resolve(this.outputPath, 'ember', 'index.js'), outSource, 'utf8');\n }\n}\n\nfunction fixStringLoc(babel: typeof Babel) {\n let t = babel.types;\n return {\n visitor: {\n Program(path: NodePath<Babel.types.Program>) {\n path.node.body.unshift(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier('loc'), t.identifier('undefined'))])\n );\n },\n ImportDeclaration: {\n enter(path: NodePath<Babel.types.ImportDeclaration>, state: { inEmberString: boolean }) {\n if (path.node.source.value === '@ember/string') {\n state.inEmberString = true;\n }\n },\n exit(_path: NodePath<Babel.types.ImportDeclaration>, state: { inEmberString: boolean }) {\n state.inEmberString = false;\n },\n },\n ImportSpecifier(path: NodePath<Babel.types.ImportSpecifier>, state: { inEmberString: boolean }) {\n let name = 'value' in path.node.imported ? path.node.imported.value : path.node.imported.name;\n if (state.inEmberString && name === 'loc') {\n path.remove();\n }\n },\n },\n };\n}\n"]}
|
|
@@ -133,9 +133,9 @@ class CompatAppBuilder {
|
|
|
133
133
|
let result = pkg.dependencies.filter(this.isActiveAddon).filter(
|
|
134
134
|
// When looking for child addons, we want to ignore 'peerDependencies' of
|
|
135
135
|
// a given package, to align with how ember-cli resolves addons. So here
|
|
136
|
-
// we only include dependencies that definitely
|
|
137
|
-
// sections.
|
|
138
|
-
addon =>
|
|
136
|
+
// we only include dependencies that are definitely active due to one of
|
|
137
|
+
// the other sections.
|
|
138
|
+
addon => pkg.categorizeDependency(addon.name) !== 'peerDependencies');
|
|
139
139
|
if (pkg === this.appPackageWithMovedDeps) {
|
|
140
140
|
let extras = [this.synthVendor, this.synthStyles].filter(this.isActiveAddon);
|
|
141
141
|
result = [...result, ...extras];
|
|
@@ -264,6 +264,7 @@ class CompatAppBuilder {
|
|
|
264
264
|
// search, so first one wins.
|
|
265
265
|
.reverse(),
|
|
266
266
|
})),
|
|
267
|
+
amdCompatibility: this.options.amdCompatibility,
|
|
267
268
|
// this is the additional stufff that @embroider/compat adds on top to do
|
|
268
269
|
// global template resolving
|
|
269
270
|
modulePrefix: this.modulePrefix(),
|
|
@@ -595,11 +596,11 @@ class CompatAppBuilder {
|
|
|
595
596
|
return { packageJSON, extraAppFiles, extraVendorFiles };
|
|
596
597
|
}
|
|
597
598
|
}
|
|
598
|
-
updateAppJS(
|
|
599
|
+
updateAppJS(appJSPath) {
|
|
599
600
|
var _a;
|
|
600
601
|
if (!this.engines) {
|
|
601
|
-
this.engines = this.partitionEngines(
|
|
602
|
-
if (engine.sourcePath ===
|
|
602
|
+
this.engines = this.partitionEngines(appJSPath).map(engine => {
|
|
603
|
+
if (engine.sourcePath === appJSPath) {
|
|
603
604
|
// this is the app. We have more to do for the app than for other
|
|
604
605
|
// engines.
|
|
605
606
|
let fastbootSync;
|
|
@@ -611,7 +612,7 @@ class CompatAppBuilder {
|
|
|
611
612
|
}
|
|
612
613
|
return {
|
|
613
614
|
engine,
|
|
614
|
-
appSync: new sync_dir_1.SyncDir(
|
|
615
|
+
appSync: new sync_dir_1.SyncDir(appJSPath, this.root),
|
|
615
616
|
fastbootSync,
|
|
616
617
|
};
|
|
617
618
|
}
|
|
@@ -803,7 +804,7 @@ class CompatAppBuilder {
|
|
|
803
804
|
(0, fs_extra_1.rmSync)(this.root, { recursive: true, force: true });
|
|
804
805
|
this.firstBuild = false;
|
|
805
806
|
}
|
|
806
|
-
let appFiles = this.updateAppJS(inputPaths);
|
|
807
|
+
let appFiles = this.updateAppJS(inputPaths.appJS);
|
|
807
808
|
let emberENV = this.configTree.readConfig().EmberENV;
|
|
808
809
|
let assets = this.gatherAssets(inputPaths);
|
|
809
810
|
let finalAssets = await this.updateAssets(assets, appFiles, emberENV);
|
|
@@ -1060,7 +1061,7 @@ class CompatAppBuilder {
|
|
|
1060
1061
|
let fastbootOnlyAmdModules = fastboot.map(file => this.importPaths(appFiles, file));
|
|
1061
1062
|
// this is a backward-compatibility feature: addons can force inclusion of
|
|
1062
1063
|
// modules.
|
|
1063
|
-
|
|
1064
|
+
eagerModules.push('./-embroider-implicit-modules.js');
|
|
1064
1065
|
let params = { amdModules, fastbootOnlyAmdModules, lazyRoutes, lazyEngines, eagerModules, styles };
|
|
1065
1066
|
if (entryParams) {
|
|
1066
1067
|
Object.assign(params, entryParams);
|
|
@@ -1114,7 +1115,7 @@ class CompatAppBuilder {
|
|
|
1114
1115
|
let amdModules = [];
|
|
1115
1116
|
// this is a backward-compatibility feature: addons can force inclusion of
|
|
1116
1117
|
// test support modules.
|
|
1117
|
-
|
|
1118
|
+
eagerModules.push('./-embroider-implicit-test-modules.js');
|
|
1118
1119
|
for (let relativePath of engine.tests) {
|
|
1119
1120
|
amdModules.push(this.importPaths(engine, relativePath));
|
|
1120
1121
|
}
|
|
@@ -1131,37 +1132,6 @@ class CompatAppBuilder {
|
|
|
1131
1132
|
prepared.set(asset.relativePath, asset);
|
|
1132
1133
|
return asset;
|
|
1133
1134
|
}
|
|
1134
|
-
gatherImplicitModules(section, { engine }, lazyModules) {
|
|
1135
|
-
for (let addon of engine.addons) {
|
|
1136
|
-
let implicitModules = addon.meta[section];
|
|
1137
|
-
if (implicitModules) {
|
|
1138
|
-
let renamedModules = inverseRenamedModules(addon.meta, this.resolvableExtensionsPattern);
|
|
1139
|
-
for (let name of implicitModules) {
|
|
1140
|
-
let packageName = addon.name;
|
|
1141
|
-
if (addon.isV2Addon()) {
|
|
1142
|
-
let renamedMeta = addon.meta['renamed-packages'];
|
|
1143
|
-
if (renamedMeta) {
|
|
1144
|
-
Object.entries(renamedMeta).forEach(([key, value]) => {
|
|
1145
|
-
if (value === addon.name) {
|
|
1146
|
-
packageName = key;
|
|
1147
|
-
}
|
|
1148
|
-
});
|
|
1149
|
-
}
|
|
1150
|
-
}
|
|
1151
|
-
let runtime = (0, path_2.join)(packageName, name).replace(this.resolvableExtensionsPattern, '');
|
|
1152
|
-
let runtimeRenameLookup = runtime.split('\\').join('/');
|
|
1153
|
-
if (renamedModules && renamedModules[runtimeRenameLookup]) {
|
|
1154
|
-
runtime = renamedModules[runtimeRenameLookup];
|
|
1155
|
-
}
|
|
1156
|
-
runtime = runtime.split(path_2.sep).join('/');
|
|
1157
|
-
lazyModules.push({
|
|
1158
|
-
runtime,
|
|
1159
|
-
buildtime: path_1.posix.join(packageName, name),
|
|
1160
|
-
});
|
|
1161
|
-
}
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
1135
|
}
|
|
1166
1136
|
exports.CompatAppBuilder = CompatAppBuilder;
|
|
1167
1137
|
__decorate([
|
|
@@ -1234,6 +1204,10 @@ let d = w.define;
|
|
|
1234
1204
|
}
|
|
1235
1205
|
{{/if}}
|
|
1236
1206
|
|
|
1207
|
+
{{#each eagerModules as |eagerModule| ~}}
|
|
1208
|
+
i("{{js-string-escape eagerModule}}");
|
|
1209
|
+
{{/each}}
|
|
1210
|
+
|
|
1237
1211
|
{{#each amdModules as |amdModule| ~}}
|
|
1238
1212
|
d("{{js-string-escape amdModule.runtime}}", function(){ return i("{{js-string-escape amdModule.buildtime}}");});
|
|
1239
1213
|
{{/each}}
|
|
@@ -1246,9 +1220,6 @@ let d = w.define;
|
|
|
1246
1220
|
}
|
|
1247
1221
|
{{/if}}
|
|
1248
1222
|
|
|
1249
|
-
{{#each eagerModules as |eagerModule| ~}}
|
|
1250
|
-
i("{{js-string-escape eagerModule}}");
|
|
1251
|
-
{{/each}}
|
|
1252
1223
|
|
|
1253
1224
|
{{#if lazyRoutes}}
|
|
1254
1225
|
w._embroiderRouteBundles_ = [
|
|
@@ -1322,19 +1293,6 @@ const babelFilterTemplate = (0, core_1.jsHandlebarsCompile)(`
|
|
|
1322
1293
|
const { babelFilter } = require(${JSON.stringify(require.resolve('@embroider/core'))});
|
|
1323
1294
|
module.exports = babelFilter({{json-stringify skipBabel}}, "{{js-string-escape appRoot}}");
|
|
1324
1295
|
`);
|
|
1325
|
-
// meta['renamed-modules'] has mapping from classic filename to real filename.
|
|
1326
|
-
// This takes that and converts it to the inverst mapping from real import path
|
|
1327
|
-
// to classic import path.
|
|
1328
|
-
function inverseRenamedModules(meta, extensions) {
|
|
1329
|
-
let renamed = meta['renamed-modules'];
|
|
1330
|
-
if (renamed) {
|
|
1331
|
-
let inverted = {};
|
|
1332
|
-
for (let [classic, real] of Object.entries(renamed)) {
|
|
1333
|
-
inverted[real.replace(extensions, '')] = classic.replace(extensions, '');
|
|
1334
|
-
}
|
|
1335
|
-
return inverted;
|
|
1336
|
-
}
|
|
1337
|
-
}
|
|
1338
1296
|
function combinePackageJSON(...layers) {
|
|
1339
1297
|
function custom(objValue, srcValue, key, _object, _source, stack) {
|
|
1340
1298
|
if (key === 'keywords' && stack.size === 0) {
|