@embroider/compat 4.1.25 → 4.1.26
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/dist/src/add-to-tree.d.ts +0 -9
- package/dist/src/add-to-tree.d.ts.map +0 -1
- package/dist/src/add-to-tree.js +0 -22
- package/dist/src/add-to-tree.js.map +0 -1
- package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts +0 -4
- package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts.map +0 -1
- package/dist/src/addon-dependency-rules/ember-basic-dropdown.js +0 -28
- package/dist/src/addon-dependency-rules/ember-basic-dropdown.js.map +0 -1
- package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts +0 -4
- package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts.map +0 -1
- package/dist/src/addon-dependency-rules/ember-modal-dialog.js +0 -27
- package/dist/src/addon-dependency-rules/ember-modal-dialog.js.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts +0 -4
- package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js +0 -23
- package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts +0 -4
- package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select-with-create.js +0 -18
- package/dist/src/addon-dependency-rules/ember-power-select-with-create.js.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select.d.ts +0 -4
- package/dist/src/addon-dependency-rules/ember-power-select.d.ts.map +0 -1
- package/dist/src/addon-dependency-rules/ember-power-select.js +0 -57
- package/dist/src/addon-dependency-rules/ember-power-select.js.map +0 -1
- package/dist/src/audit/babel-visitor.d.ts +0 -41
- package/dist/src/audit/babel-visitor.d.ts.map +0 -1
- package/dist/src/audit/babel-visitor.js +0 -230
- package/dist/src/audit/babel-visitor.js.map +0 -1
- package/dist/src/audit/build.d.ts +0 -8
- package/dist/src/audit/build.d.ts.map +0 -1
- package/dist/src/audit/build.js +0 -71
- package/dist/src/audit/build.js.map +0 -1
- package/dist/src/audit/options.d.ts +0 -9
- package/dist/src/audit/options.d.ts.map +0 -1
- package/dist/src/audit/options.js +0 -3
- package/dist/src/audit/options.js.map +0 -1
- package/dist/src/audit.d.ts +0 -60
- package/dist/src/audit.d.ts.map +0 -1
- package/dist/src/audit.js +0 -296
- package/dist/src/audit.js.map +0 -1
- package/dist/src/babel.d.ts +0 -18
- package/dist/src/babel.d.ts.map +0 -1
- package/dist/src/babel.js +0 -138
- package/dist/src/babel.js.map +0 -1
- package/dist/src/build-compat-addon.d.ts +0 -5
- package/dist/src/build-compat-addon.d.ts.map +0 -1
- package/dist/src/build-compat-addon.js +0 -43
- package/dist/src/build-compat-addon.js.map +0 -1
- package/dist/src/compat-adapters/@ember/test-waiters.d.ts +0 -6
- package/dist/src/compat-adapters/@ember/test-waiters.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember/test-waiters.js +0 -26
- package/dist/src/compat-adapters/@ember/test-waiters.js.map +0 -1
- package/dist/src/compat-adapters/@ember-data/adapter.d.ts +0 -2
- package/dist/src/compat-adapters/@ember-data/adapter.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember-data/adapter.js +0 -6
- package/dist/src/compat-adapters/@ember-data/adapter.js.map +0 -1
- package/dist/src/compat-adapters/@ember-data/model.d.ts +0 -2
- package/dist/src/compat-adapters/@ember-data/model.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember-data/model.js +0 -6
- package/dist/src/compat-adapters/@ember-data/model.js.map +0 -1
- package/dist/src/compat-adapters/@ember-data/record-data.d.ts +0 -2
- package/dist/src/compat-adapters/@ember-data/record-data.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember-data/record-data.js +0 -6
- package/dist/src/compat-adapters/@ember-data/record-data.js.map +0 -1
- package/dist/src/compat-adapters/@ember-data/serializer.d.ts +0 -2
- package/dist/src/compat-adapters/@ember-data/serializer.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember-data/serializer.js +0 -6
- package/dist/src/compat-adapters/@ember-data/serializer.js.map +0 -1
- package/dist/src/compat-adapters/@ember-data/store.d.ts +0 -2
- package/dist/src/compat-adapters/@ember-data/store.d.ts.map +0 -1
- package/dist/src/compat-adapters/@ember-data/store.js +0 -6
- package/dist/src/compat-adapters/@ember-data/store.js.map +0 -1
- package/dist/src/compat-adapters/@glimmer/tracking.d.ts +0 -10
- package/dist/src/compat-adapters/@glimmer/tracking.d.ts.map +0 -1
- package/dist/src/compat-adapters/@glimmer/tracking.js +0 -36
- package/dist/src/compat-adapters/@glimmer/tracking.js.map +0 -1
- package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts +0 -5
- package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts.map +0 -1
- package/dist/src/compat-adapters/@html-next/vertical-collection.js +0 -14
- package/dist/src/compat-adapters/@html-next/vertical-collection.js.map +0 -1
- package/dist/src/compat-adapters/active-model-adapter.d.ts +0 -5
- package/dist/src/compat-adapters/active-model-adapter.d.ts.map +0 -1
- package/dist/src/compat-adapters/active-model-adapter.js +0 -16
- package/dist/src/compat-adapters/active-model-adapter.js.map +0 -1
- package/dist/src/compat-adapters/ember-asset-loader.d.ts +0 -6
- package/dist/src/compat-adapters/ember-asset-loader.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-asset-loader.js +0 -36
- package/dist/src/compat-adapters/ember-asset-loader.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts +0 -5
- package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-addon-docs.js +0 -14
- package/dist/src/compat-adapters/ember-cli-addon-docs.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-babel.d.ts +0 -5
- package/dist/src/compat-adapters/ember-cli-babel.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-babel.js +0 -25
- package/dist/src/compat-adapters/ember-cli-babel.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-clipboard.d.ts +0 -5
- package/dist/src/compat-adapters/ember-cli-clipboard.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-clipboard.js +0 -31
- package/dist/src/compat-adapters/ember-cli-clipboard.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts +0 -6
- package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js +0 -46
- package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts +0 -5
- package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-fastboot-testing.js +0 -21
- package/dist/src/compat-adapters/ember-cli-fastboot-testing.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-fastboot.d.ts +0 -12
- package/dist/src/compat-adapters/ember-cli-fastboot.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-fastboot.js +0 -157
- package/dist/src/compat-adapters/ember-cli-fastboot.js.map +0 -1
- package/dist/src/compat-adapters/ember-cli-mirage.d.ts +0 -7
- package/dist/src/compat-adapters/ember-cli-mirage.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-cli-mirage.js +0 -29
- package/dist/src/compat-adapters/ember-cli-mirage.js.map +0 -1
- package/dist/src/compat-adapters/ember-composable-helpers.d.ts +0 -6
- package/dist/src/compat-adapters/ember-composable-helpers.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-composable-helpers.js +0 -40
- package/dist/src/compat-adapters/ember-composable-helpers.js.map +0 -1
- package/dist/src/compat-adapters/ember-data.d.ts +0 -10
- package/dist/src/compat-adapters/ember-data.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-data.js +0 -74
- package/dist/src/compat-adapters/ember-data.js.map +0 -1
- package/dist/src/compat-adapters/ember-decorators.d.ts +0 -5
- package/dist/src/compat-adapters/ember-decorators.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-decorators.js +0 -16
- package/dist/src/compat-adapters/ember-decorators.js.map +0 -1
- package/dist/src/compat-adapters/ember-engines.d.ts +0 -15
- package/dist/src/compat-adapters/ember-engines.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-engines.js +0 -34
- package/dist/src/compat-adapters/ember-engines.js.map +0 -1
- package/dist/src/compat-adapters/ember-exam.d.ts +0 -16
- package/dist/src/compat-adapters/ember-exam.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-exam.js +0 -30
- package/dist/src/compat-adapters/ember-exam.js.map +0 -1
- package/dist/src/compat-adapters/ember-fetch.d.ts +0 -7
- package/dist/src/compat-adapters/ember-fetch.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-fetch.js +0 -56
- package/dist/src/compat-adapters/ember-fetch.js.map +0 -1
- package/dist/src/compat-adapters/ember-get-config.d.ts +0 -17
- package/dist/src/compat-adapters/ember-get-config.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-get-config.js +0 -41
- package/dist/src/compat-adapters/ember-get-config.js.map +0 -1
- package/dist/src/compat-adapters/ember-inflector.d.ts +0 -7
- package/dist/src/compat-adapters/ember-inflector.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-inflector.js +0 -39
- package/dist/src/compat-adapters/ember-inflector.js.map +0 -1
- package/dist/src/compat-adapters/ember-percy.d.ts +0 -5
- package/dist/src/compat-adapters/ember-percy.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-percy.js +0 -18
- package/dist/src/compat-adapters/ember-percy.js.map +0 -1
- package/dist/src/compat-adapters/ember-resolver.d.ts +0 -5
- package/dist/src/compat-adapters/ember-resolver.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-resolver.js +0 -21
- package/dist/src/compat-adapters/ember-resolver.js.map +0 -1
- package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts +0 -5
- package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-scroll-modifiers.js +0 -23
- package/dist/src/compat-adapters/ember-scroll-modifiers.js.map +0 -1
- package/dist/src/compat-adapters/ember-source.d.ts +0 -12
- package/dist/src/compat-adapters/ember-source.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-source.js +0 -465
- package/dist/src/compat-adapters/ember-source.js.map +0 -1
- package/dist/src/compat-adapters/ember-svg-jar.d.ts +0 -5
- package/dist/src/compat-adapters/ember-svg-jar.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-svg-jar.js +0 -29
- package/dist/src/compat-adapters/ember-svg-jar.js.map +0 -1
- package/dist/src/compat-adapters/ember-test-selectors.d.ts +0 -6
- package/dist/src/compat-adapters/ember-test-selectors.d.ts.map +0 -1
- package/dist/src/compat-adapters/ember-test-selectors.js +0 -19
- package/dist/src/compat-adapters/ember-test-selectors.js.map +0 -1
- package/dist/src/compat-addons.d.ts +0 -17
- package/dist/src/compat-addons.d.ts.map +0 -1
- package/dist/src/compat-addons.js +0 -48
- package/dist/src/compat-addons.js.map +0 -1
- package/dist/src/compat-app-builder.d.ts +0 -28
- package/dist/src/compat-app-builder.d.ts.map +0 -1
- package/dist/src/compat-app-builder.js +0 -221
- package/dist/src/compat-app-builder.js.map +0 -1
- package/dist/src/compat-app.d.ts +0 -62
- package/dist/src/compat-app.d.ts.map +0 -1
- package/dist/src/compat-app.js +0 -618
- package/dist/src/compat-app.js.map +0 -1
- package/dist/src/compat-utils.d.ts +0 -10
- package/dist/src/compat-utils.d.ts.map +0 -1
- package/dist/src/compat-utils.js +0 -65
- package/dist/src/compat-utils.js.map +0 -1
- package/dist/src/content-for-config.d.ts +0 -12
- package/dist/src/content-for-config.d.ts.map +0 -1
- package/dist/src/content-for-config.js +0 -66
- package/dist/src/content-for-config.js.map +0 -1
- package/dist/src/dasherize-component-name.d.ts +0 -3
- package/dist/src/dasherize-component-name.d.ts.map +0 -1
- package/dist/src/dasherize-component-name.js +0 -28
- package/dist/src/dasherize-component-name.js.map +0 -1
- package/dist/src/default-pipeline.d.ts +0 -10
- package/dist/src/default-pipeline.d.ts.map +0 -1
- package/dist/src/default-pipeline.js +0 -43
- package/dist/src/default-pipeline.js.map +0 -1
- package/dist/src/dependency-rules.d.ts +0 -62
- package/dist/src/dependency-rules.d.ts.map +0 -1
- package/dist/src/dependency-rules.js +0 -89
- package/dist/src/dependency-rules.js.map +0 -1
- package/dist/src/detect-babel-plugins.d.ts +0 -7
- package/dist/src/detect-babel-plugins.d.ts.map +0 -1
- package/dist/src/detect-babel-plugins.js +0 -96
- package/dist/src/detect-babel-plugins.js.map +0 -1
- package/dist/src/detect-compact-reexports.d.ts +0 -3
- package/dist/src/detect-compact-reexports.d.ts.map +0 -1
- package/dist/src/detect-compact-reexports.js +0 -17
- package/dist/src/detect-compact-reexports.js.map +0 -1
- package/dist/src/dummy-package.d.ts +0 -9
- package/dist/src/dummy-package.d.ts.map +0 -1
- package/dist/src/dummy-package.js +0 -44
- package/dist/src/dummy-package.js.map +0 -1
- package/dist/src/empty-package-tree.d.ts +0 -9
- package/dist/src/empty-package-tree.d.ts.map +0 -1
- package/dist/src/empty-package-tree.js +0 -36
- package/dist/src/empty-package-tree.js.map +0 -1
- package/dist/src/get-real-addon.d.ts +0 -7
- package/dist/src/get-real-addon.d.ts.map +0 -1
- package/dist/src/get-real-addon.js +0 -33
- package/dist/src/get-real-addon.js.map +0 -1
- package/dist/src/hbs-to-js-broccoli-plugin.d.ts +0 -9
- package/dist/src/hbs-to-js-broccoli-plugin.d.ts.map +0 -1
- package/dist/src/hbs-to-js-broccoli-plugin.js +0 -39
- package/dist/src/hbs-to-js-broccoli-plugin.js.map +0 -1
- package/dist/src/htmlbars-unwrapper.d.ts +0 -6
- package/dist/src/htmlbars-unwrapper.d.ts.map +0 -1
- package/dist/src/htmlbars-unwrapper.js +0 -8
- package/dist/src/htmlbars-unwrapper.js.map +0 -1
- package/dist/src/http-audit.d.ts +0 -14
- package/dist/src/http-audit.d.ts.map +0 -1
- package/dist/src/http-audit.js +0 -60
- package/dist/src/http-audit.js.map +0 -1
- package/dist/src/index.d.ts +0 -8
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -18
- package/dist/src/index.js.map +0 -1
- package/dist/src/merges.d.ts +0 -3
- package/dist/src/merges.d.ts.map +0 -1
- package/dist/src/merges.js +0 -32
- package/dist/src/merges.js.map +0 -1
- package/dist/src/module-visitor.d.ts +0 -53
- package/dist/src/module-visitor.d.ts.map +0 -1
- package/dist/src/module-visitor.js +0 -285
- package/dist/src/module-visitor.js.map +0 -1
- package/dist/src/modules-compat.d.ts +0 -3
- package/dist/src/modules-compat.d.ts.map +0 -1
- package/dist/src/modules-compat.js +0 -18
- package/dist/src/modules-compat.js.map +0 -1
- package/dist/src/observe-tree.d.ts +0 -8
- package/dist/src/observe-tree.d.ts.map +0 -1
- package/dist/src/observe-tree.js +0 -17
- package/dist/src/observe-tree.js.map +0 -1
- package/dist/src/options.d.ts +0 -17
- package/dist/src/options.d.ts.map +0 -1
- package/dist/src/options.js +0 -57
- package/dist/src/options.js.map +0 -1
- package/dist/src/prepare-htmlbars-ast-plugins.d.ts +0 -3
- package/dist/src/prepare-htmlbars-ast-plugins.d.ts.map +0 -1
- package/dist/src/prepare-htmlbars-ast-plugins.js +0 -39
- package/dist/src/prepare-htmlbars-ast-plugins.js.map +0 -1
- package/dist/src/resolver-transform.d.ts +0 -29
- package/dist/src/resolver-transform.d.ts.map +0 -1
- package/dist/src/resolver-transform.js +0 -1094
- package/dist/src/resolver-transform.js.map +0 -1
- package/dist/src/rewrite-addon-tree.d.ts +0 -9
- package/dist/src/rewrite-addon-tree.d.ts.map +0 -1
- package/dist/src/rewrite-addon-tree.js +0 -46
- package/dist/src/rewrite-addon-tree.js.map +0 -1
- package/dist/src/rewrite-package-json.d.ts +0 -8
- package/dist/src/rewrite-package-json.d.ts.map +0 -1
- package/dist/src/rewrite-package-json.js +0 -23
- package/dist/src/rewrite-package-json.js.map +0 -1
- package/dist/src/smoosh-package-json.d.ts +0 -9
- package/dist/src/smoosh-package-json.d.ts.map +0 -1
- package/dist/src/smoosh-package-json.js +0 -30
- package/dist/src/smoosh-package-json.js.map +0 -1
- package/dist/src/snitch.d.ts +0 -14
- package/dist/src/snitch.d.ts.map +0 -1
- package/dist/src/snitch.js +0 -42
- package/dist/src/snitch.js.map +0 -1
- package/dist/src/standalone-addon-build.d.ts +0 -3
- package/dist/src/standalone-addon-build.d.ts.map +0 -1
- package/dist/src/standalone-addon-build.js +0 -106
- package/dist/src/standalone-addon-build.js.map +0 -1
- package/dist/src/synthesize-template-only-components.d.ts +0 -17
- package/dist/src/synthesize-template-only-components.d.ts.map +0 -1
- package/dist/src/synthesize-template-only-components.js +0 -109
- package/dist/src/synthesize-template-only-components.js.map +0 -1
- package/dist/src/v1-addon.d.ts +0 -71
- package/dist/src/v1-addon.d.ts.map +0 -1
- package/dist/src/v1-addon.js +0 -1025
- package/dist/src/v1-addon.js.map +0 -1
- package/dist/src/v1-config.d.ts +0 -17
- package/dist/src/v1-config.d.ts.map +0 -1
- package/dist/src/v1-config.js +0 -26
- package/dist/src/v1-config.js.map +0 -1
- package/dist/src/v1-instance-cache.d.ts +0 -14
- package/dist/src/v1-instance-cache.d.ts.map +0 -1
- package/dist/src/v1-instance-cache.js +0 -66
- package/dist/src/v1-instance-cache.js.map +0 -1
package/dist/src/compat-app.js
DELETED
|
@@ -1,618 +0,0 @@
|
|
|
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
|
-
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const core_1 = require("@embroider/core");
|
|
13
|
-
const options_1 = require("./options");
|
|
14
|
-
const typescript_memoize_1 = require("typescript-memoize");
|
|
15
|
-
const pkg_up_1 = require("pkg-up");
|
|
16
|
-
const path_1 = require("path");
|
|
17
|
-
const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
|
|
18
|
-
const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
|
|
19
|
-
const broccoli_source_1 = require("broccoli-source");
|
|
20
|
-
const resolve_1 = __importDefault(require("resolve"));
|
|
21
|
-
const content_for_config_1 = __importDefault(require("./content-for-config"));
|
|
22
|
-
const v1_config_1 = require("./v1-config");
|
|
23
|
-
const fs_extra_1 = require("fs-extra");
|
|
24
|
-
const add_to_tree_1 = __importDefault(require("./add-to-tree"));
|
|
25
|
-
const dummy_package_1 = __importDefault(require("./dummy-package"));
|
|
26
|
-
const node_1 = require("@embroider/macros/src/node");
|
|
27
|
-
const resolve_package_path_1 = __importDefault(require("resolve-package-path"));
|
|
28
|
-
const broccoli_concat_1 = __importDefault(require("broccoli-concat"));
|
|
29
|
-
const mapKeys_1 = __importDefault(require("lodash/mapKeys"));
|
|
30
|
-
const detect_babel_plugins_1 = require("./detect-babel-plugins");
|
|
31
|
-
const prepare_htmlbars_ast_plugins_1 = __importDefault(require("./prepare-htmlbars-ast-plugins"));
|
|
32
|
-
const fs_1 = require("fs");
|
|
33
|
-
const semver_1 = __importDefault(require("semver"));
|
|
34
|
-
const compat_app_builder_1 = require("./compat-app-builder");
|
|
35
|
-
const walk_sync_1 = __importDefault(require("walk-sync"));
|
|
36
|
-
const broccoli_file_creator_1 = __importDefault(require("broccoli-file-creator"));
|
|
37
|
-
// This runs at broccoli-pipeline-construction time, whereas the
|
|
38
|
-
// CompatAppBuilder instance only becomes available during tree-building time.
|
|
39
|
-
class CompatApp {
|
|
40
|
-
get isDummy() {
|
|
41
|
-
var _a, _b;
|
|
42
|
-
return (_b = (_a = this.legacyEmberAppInstance.project.pkg.keywords) === null || _a === void 0 ? void 0 : _a.includes('ember-addon')) !== null && _b !== void 0 ? _b : false;
|
|
43
|
-
}
|
|
44
|
-
get name() {
|
|
45
|
-
if (this.isDummy) {
|
|
46
|
-
// here we accept the ember-cli behavior
|
|
47
|
-
return this.legacyEmberAppInstance.name;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// always the name from package.json. Not the one that apps may have weirdly
|
|
51
|
-
// customized.
|
|
52
|
-
return this.legacyEmberAppInstance.project.pkg.name;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
get env() {
|
|
56
|
-
return this.legacyEmberAppInstance.env;
|
|
57
|
-
}
|
|
58
|
-
get root() {
|
|
59
|
-
if (this.isDummy) {
|
|
60
|
-
// this is the Known Hack for finding the true root of the dummy app.
|
|
61
|
-
return (0, path_1.join)(this.legacyEmberAppInstance.project.configPath(), '..', '..');
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
return (0, path_1.dirname)((0, pkg_up_1.sync)({ cwd: this.legacyEmberAppInstance.project.root }));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
get emberCLILocation() {
|
|
68
|
-
const emberCLIPackage = (0, resolve_package_path_1.default)('ember-cli', this.root);
|
|
69
|
-
if (emberCLIPackage === null) {
|
|
70
|
-
throw new Error(`Embroider: cannot resolve ember-cli's package.json`);
|
|
71
|
-
}
|
|
72
|
-
return (0, path_1.dirname)(emberCLIPackage);
|
|
73
|
-
}
|
|
74
|
-
get hasCompiledStyles() {
|
|
75
|
-
return semver_1.default.gte(JSON.parse((0, fs_1.readFileSync)(`${this.emberCLILocation}/package.json`, 'utf8')).version, '3.18.0');
|
|
76
|
-
}
|
|
77
|
-
requireFromEmberCLI(specifier) {
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
79
|
-
return require(resolve_1.default.sync(specifier, { basedir: this.emberCLILocation }));
|
|
80
|
-
}
|
|
81
|
-
get configLoader() {
|
|
82
|
-
return this.requireFromEmberCLI('broccoli-config-loader');
|
|
83
|
-
}
|
|
84
|
-
get appUtils() {
|
|
85
|
-
return this.requireFromEmberCLI('./lib/utilities/ember-app-utils');
|
|
86
|
-
}
|
|
87
|
-
get addonTreeCache() {
|
|
88
|
-
return new Map();
|
|
89
|
-
}
|
|
90
|
-
get preprocessRegistry() {
|
|
91
|
-
return this.requireFromEmberCLI('ember-cli-preprocess-registry/preprocessors');
|
|
92
|
-
}
|
|
93
|
-
get shouldBuildTests() {
|
|
94
|
-
return this.legacyEmberAppInstance.tests || false;
|
|
95
|
-
}
|
|
96
|
-
configPath() {
|
|
97
|
-
return this.legacyEmberAppInstance.project.configPath();
|
|
98
|
-
}
|
|
99
|
-
get configTree() {
|
|
100
|
-
return new this.configLoader((0, path_1.dirname)(this.configPath()), {
|
|
101
|
-
env: this.legacyEmberAppInstance.env,
|
|
102
|
-
tests: this.legacyEmberAppInstance.tests || false,
|
|
103
|
-
project: this.legacyEmberAppInstance.project,
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
get config() {
|
|
107
|
-
return new v1_config_1.V1Config(this.configTree, this.legacyEmberAppInstance.env);
|
|
108
|
-
}
|
|
109
|
-
get testConfig() {
|
|
110
|
-
if (this.shouldBuildTests) {
|
|
111
|
-
return new v1_config_1.V1Config(this.configTree, 'test');
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
get contentFor() {
|
|
115
|
-
const configPaths = [
|
|
116
|
-
{ file: '/index.html', path: (0, path_1.join)('environments', `${this.legacyEmberAppInstance.env}.json`) },
|
|
117
|
-
];
|
|
118
|
-
if (this.shouldBuildTests)
|
|
119
|
-
configPaths.push({ file: '/tests/index.html', path: (0, path_1.join)('environments', `test.json`) });
|
|
120
|
-
return new content_for_config_1.default(this.configTree, {
|
|
121
|
-
availableContentForTypes: this.options.availableContentForTypes,
|
|
122
|
-
configPaths,
|
|
123
|
-
pattern: this.filteredPatternsByContentFor.contentFor,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
get autoRun() {
|
|
127
|
-
return this.legacyEmberAppInstance.options.autoRun;
|
|
128
|
-
}
|
|
129
|
-
get storeConfigInMeta() {
|
|
130
|
-
return this.legacyEmberAppInstance.options.storeConfigInMeta;
|
|
131
|
-
}
|
|
132
|
-
get configReplacePatterns() {
|
|
133
|
-
return this.appUtils.configReplacePatterns({
|
|
134
|
-
addons: this.legacyEmberAppInstance.project.addons,
|
|
135
|
-
autoRun: this.autoRun,
|
|
136
|
-
storeConfigInMeta: this.storeConfigInMeta,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
get filteredPatternsByContentFor() {
|
|
140
|
-
const filter = '/{{content-for [\'"](.+?)["\']}}/g';
|
|
141
|
-
return {
|
|
142
|
-
contentFor: this.configReplacePatterns.find((pattern) => filter.includes(pattern.match.toString())),
|
|
143
|
-
others: this.configReplacePatterns.filter((pattern) => !filter.includes(pattern.match.toString())),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
extraBabelPlugins() {
|
|
147
|
-
// this finds any custom babel plugins on the app (either because the app
|
|
148
|
-
// author explicitly added some, or because addons have pushed plugins into
|
|
149
|
-
// it).
|
|
150
|
-
let appBabel = this.legacyEmberAppInstance.options.babel;
|
|
151
|
-
if (appBabel) {
|
|
152
|
-
if (appBabel.plugins) {
|
|
153
|
-
return appBabel.plugins.filter(p => {
|
|
154
|
-
// even if the app was using @embroider/macros, we drop it from the config
|
|
155
|
-
// here in favor of our globally-configured one.
|
|
156
|
-
return (!(0, node_1.isEmbroiderMacrosPlugin)(p) &&
|
|
157
|
-
// similarly, if the app was already using an inline template compiler
|
|
158
|
-
// babel plugin, we remove it here because we have our own
|
|
159
|
-
// always-installed version of that (v2 addons are allowed to assume it
|
|
160
|
-
// will be present in the final app build, the app doesn't get to turn
|
|
161
|
-
// that off or configure it.)
|
|
162
|
-
!(0, detect_babel_plugins_1.isInlinePrecompilePlugin)(p) &&
|
|
163
|
-
!(0, detect_babel_plugins_1.isEmberAutoImportDynamic)(p) &&
|
|
164
|
-
!(0, detect_babel_plugins_1.isHtmlbarColocation)(p));
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return [];
|
|
169
|
-
}
|
|
170
|
-
babelMajorVersion() {
|
|
171
|
-
var _a, _b;
|
|
172
|
-
let babelAddon = this.legacyEmberAppInstance.project.addons.find((a) => a.name === 'ember-cli-babel');
|
|
173
|
-
if (babelAddon) {
|
|
174
|
-
let babelAddonMajor = Number(babelAddon.pkg.version.split('.')[0]);
|
|
175
|
-
let babelMajor = babelAddonMajor;
|
|
176
|
-
if (babelAddonMajor >= 8) {
|
|
177
|
-
// `ember-cli-babel` v8 breaks lockstep with Babel, because it now
|
|
178
|
-
// defines `@babel/core` as a peer dependency, so we need to check the
|
|
179
|
-
// project's version of `@babel/core`:
|
|
180
|
-
let babelVersion = (_a = this.legacyEmberAppInstance.project.pkg.devDependencies) === null || _a === void 0 ? void 0 : _a['@babel/core'];
|
|
181
|
-
if (babelVersion) {
|
|
182
|
-
babelMajor = (_b = semver_1.default.coerce(babelVersion)) === null || _b === void 0 ? void 0 : _b.major;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
babelMajor = 7;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (babelMajor !== 7) {
|
|
189
|
-
throw new Error('`@embroider/compat` only supports apps and addons that use Babel v7.');
|
|
190
|
-
}
|
|
191
|
-
return babelMajor;
|
|
192
|
-
}
|
|
193
|
-
// if we didn't have our own babel plugin at all, it's safe to parse our
|
|
194
|
-
// code with 7.
|
|
195
|
-
return 7;
|
|
196
|
-
}
|
|
197
|
-
transformedNodeFiles() {
|
|
198
|
-
// any app.imports from node_modules that need custom transforms will need
|
|
199
|
-
// to get copied into our own synthesized vendor package. app.imports from
|
|
200
|
-
// node_modules that *don't* need custom transforms can just stay where they
|
|
201
|
-
// are.
|
|
202
|
-
let transformed = new Map();
|
|
203
|
-
for (let transformConfig of this.legacyEmberAppInstance._customTransformsMap.values()) {
|
|
204
|
-
for (let filename of transformConfig.files) {
|
|
205
|
-
let preresolved = this.preresolvedNodeFile(filename);
|
|
206
|
-
if (preresolved) {
|
|
207
|
-
transformed.set(filename, preresolved);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
return transformed;
|
|
212
|
-
}
|
|
213
|
-
preresolvedNodeFile(filename) {
|
|
214
|
-
// this regex is an exact copy of how ember-cli does this, so we align.
|
|
215
|
-
let match = filename.match(/^node_modules\/((@[^/]+\/)?[^/]+)\//);
|
|
216
|
-
if (match) {
|
|
217
|
-
// ember-cli has already done its own resolution of
|
|
218
|
-
// `app.import('node_modules/something/...')`, so we go find its answer.
|
|
219
|
-
for (let { name, path } of this.legacyEmberAppInstance._nodeModules.values()) {
|
|
220
|
-
if (match[1] === name) {
|
|
221
|
-
return filename.replace(match[0], path + path_1.sep);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
throw new Error(`bug: expected ember-cli to already have a resolved path for asset ${filename}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
combinedVendor(addonTrees) {
|
|
228
|
-
var _a, _b;
|
|
229
|
-
let trees = addonTrees.map(tree => (0, broccoli_funnel_1.default)(tree, {
|
|
230
|
-
allowEmpty: true,
|
|
231
|
-
srcDir: 'vendor',
|
|
232
|
-
destDir: 'vendor',
|
|
233
|
-
}));
|
|
234
|
-
let emberSource = this.legacyEmberAppInstance.project.addons.find(a => a.name === 'ember-source');
|
|
235
|
-
if (emberSource && ((_b = (_a = emberSource.pkg['ember-addon']) === null || _a === void 0 ? void 0 : _a['version']) !== null && _b !== void 0 ? _b : 1) >= 2) {
|
|
236
|
-
// there's stuff in the ecosystem that assumes these files will always be
|
|
237
|
-
// present in the vendor tree. But when ember-source is V2, it cannot put
|
|
238
|
-
// them there, so @embroider/compat will fill in defaults. The bundles are
|
|
239
|
-
// empty because we're just trying to keep the build from blowing up, the
|
|
240
|
-
// actual ember modules get loaded as modules instead.
|
|
241
|
-
//
|
|
242
|
-
// The template compiler is still here so that apps using a V2 ember can
|
|
243
|
-
// still app.import the traditional runtime template compiler.
|
|
244
|
-
//
|
|
245
|
-
// When ember-source no longer provides `paths` (v7+), these legacy vendor
|
|
246
|
-
// files are not needed at all — ember-source is fully ESM.
|
|
247
|
-
if (emberSource.paths) {
|
|
248
|
-
trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember.js', () => ''));
|
|
249
|
-
trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-testing.js', () => ''));
|
|
250
|
-
const templateCompilerSrc = (0, fs_1.readFileSync)((0, path_1.join)(emberSource.root, 'dist/ember-template-compiler.js'), 'utf8');
|
|
251
|
-
trees.push((0, broccoli_file_creator_1.default)('vendor/ember/ember-template-compiler.js', () => templateCompilerSrc));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (this.vendorTree) {
|
|
255
|
-
trees.push((0, broccoli_funnel_1.default)(this.vendorTree, {
|
|
256
|
-
destDir: 'vendor',
|
|
257
|
-
}));
|
|
258
|
-
}
|
|
259
|
-
const tree = (0, broccoli_merge_trees_1.default)(trees, { overwrite: true });
|
|
260
|
-
const outputGroups = [
|
|
261
|
-
// scripts
|
|
262
|
-
{
|
|
263
|
-
outputFiles: this.legacyEmberAppInstance._scriptOutputFiles,
|
|
264
|
-
implicitKey: '_implicitScripts',
|
|
265
|
-
vendorOutputPath: this.legacyEmberAppInstance.options.outputPaths.vendor.js,
|
|
266
|
-
},
|
|
267
|
-
// styles
|
|
268
|
-
{
|
|
269
|
-
outputFiles: this.legacyEmberAppInstance._styleOutputFiles,
|
|
270
|
-
implicitKey: '_implicitStyles',
|
|
271
|
-
vendorOutputPath: this.legacyEmberAppInstance.options.outputPaths.vendor.css,
|
|
272
|
-
},
|
|
273
|
-
];
|
|
274
|
-
const concatentations = [];
|
|
275
|
-
// support: app.import / outputFile / using
|
|
276
|
-
for (let entry of outputGroups) {
|
|
277
|
-
const { outputFiles, implicitKey, vendorOutputPath } = entry;
|
|
278
|
-
for (let importPath of Object.keys(outputFiles)) {
|
|
279
|
-
const headerFiles = outputFiles[importPath];
|
|
280
|
-
if (importPath === vendorOutputPath) {
|
|
281
|
-
// these are the default ember-cli output files vendor.js or
|
|
282
|
-
// vendor.css. Let embroider handle these.
|
|
283
|
-
this[implicitKey] = headerFiles;
|
|
284
|
-
}
|
|
285
|
-
else if (headerFiles.length === 0) {
|
|
286
|
-
// something went really wrong, open an issue
|
|
287
|
-
throw new Error('Embroider: EWUT');
|
|
288
|
-
}
|
|
289
|
-
else if (headerFiles.length === 1) {
|
|
290
|
-
// app.import(x, { outputFile: y }); where only one app.imports had this outputFile
|
|
291
|
-
//
|
|
292
|
-
// No concat needed. Simply serialize the remapping in the addon's
|
|
293
|
-
// manifest, this ensures it is included in the final output with no extra work.
|
|
294
|
-
this._publicAssets[headerFiles[0]] = importPath;
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
// app.import(x, { outputFile: y }); where multiple app.imports share one outputFile
|
|
298
|
-
// Concat needed. Perform concat, and include the outputFile in the
|
|
299
|
-
// addon's manifest. This ensures it is included in the final output
|
|
300
|
-
this._publicAssets[importPath] = importPath;
|
|
301
|
-
concatentations.push(new broccoli_concat_1.default(tree, {
|
|
302
|
-
headerFiles,
|
|
303
|
-
outputFile: importPath,
|
|
304
|
-
annotation: `Package ${importPath}`,
|
|
305
|
-
separator: '\n;',
|
|
306
|
-
sourceMapConfig: this.legacyEmberAppInstance.options['sourcemaps'],
|
|
307
|
-
}));
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
this.addOtherAssets();
|
|
312
|
-
return (0, broccoli_merge_trees_1.default)([tree, ...concatentations], { overwrite: true });
|
|
313
|
-
}
|
|
314
|
-
addOtherAssets() {
|
|
315
|
-
for (let asset of this.legacyEmberAppInstance.otherAssetPaths) {
|
|
316
|
-
this._publicAssets[`${asset.src}/${asset.file}`] = `${asset.dest}/${asset.file}`;
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
addNodeAssets(inputTree) {
|
|
320
|
-
let transformedNodeFiles = this.transformedNodeFiles();
|
|
321
|
-
return new add_to_tree_1.default(inputTree, outputPath => {
|
|
322
|
-
for (let [localDestPath, sourcePath] of transformedNodeFiles) {
|
|
323
|
-
let destPath = (0, path_1.join)(outputPath, localDestPath);
|
|
324
|
-
(0, fs_extra_1.ensureDirSync)((0, path_1.dirname)(destPath));
|
|
325
|
-
(0, fs_extra_1.copySync)(sourcePath, destPath);
|
|
326
|
-
}
|
|
327
|
-
if (this.shouldBuildTests) {
|
|
328
|
-
(0, fs_extra_1.writeFileSync)((0, path_1.join)(outputPath, 'testem.js'), `/*
|
|
329
|
-
* This is dummy file that exists for the sole purpose
|
|
330
|
-
* of allowing tests to run directly in the browser as
|
|
331
|
-
* well as by Testem.
|
|
332
|
-
*
|
|
333
|
-
* Testem is configured to run tests directly against
|
|
334
|
-
* the test build of index.html, which requires a
|
|
335
|
-
* snippet to load the testem.js file:
|
|
336
|
-
* <script src="/testem.js"></script>
|
|
337
|
-
* This has to go before the qunit framework and app
|
|
338
|
-
* tests are loaded.
|
|
339
|
-
*
|
|
340
|
-
* Testem internally supplies this file. However, if you
|
|
341
|
-
* run the tests directly in the browser (localhost:8000/tests),
|
|
342
|
-
* this file does not exist.
|
|
343
|
-
*
|
|
344
|
-
* Hence the purpose of this fake file. This file is served
|
|
345
|
-
* directly from the express server to satisify the script load.
|
|
346
|
-
*/`);
|
|
347
|
-
this._publicAssets['/testem.js'] = './testem.js';
|
|
348
|
-
}
|
|
349
|
-
let remapAsset = this.remapAsset.bind(this);
|
|
350
|
-
let addonMeta = {
|
|
351
|
-
version: 2,
|
|
352
|
-
'implicit-scripts': this._implicitScripts.map(remapAsset).filter(forbiddenVendorPath),
|
|
353
|
-
'implicit-styles': this._implicitStyles.map(remapAsset),
|
|
354
|
-
'implicit-test-scripts': this.legacyEmberAppInstance.legacyTestFilesToAppend.map(remapAsset),
|
|
355
|
-
'implicit-test-styles': this.legacyEmberAppInstance.vendorTestStaticStyles.map(remapAsset),
|
|
356
|
-
'public-assets': (0, mapKeys_1.default)(this._publicAssets, (_, key) => remapAsset(key)),
|
|
357
|
-
};
|
|
358
|
-
let meta = {
|
|
359
|
-
name: '@embroider/synthesized-vendor',
|
|
360
|
-
version: '0.0.0',
|
|
361
|
-
keywords: ['ember-addon'],
|
|
362
|
-
'ember-addon': addonMeta,
|
|
363
|
-
};
|
|
364
|
-
(0, fs_extra_1.writeJSONSync)((0, path_1.join)(outputPath, 'package.json'), meta, { spaces: 2 });
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
synthesizeVendorPackage(addonTrees) {
|
|
368
|
-
return this.applyCustomTransforms(this.addNodeAssets(this.combinedVendor(addonTrees)));
|
|
369
|
-
}
|
|
370
|
-
combinedStyles(addonTrees) {
|
|
371
|
-
let trees = addonTrees.map(tree => (0, broccoli_funnel_1.default)(tree, {
|
|
372
|
-
allowEmpty: true,
|
|
373
|
-
srcDir: '_app_styles_',
|
|
374
|
-
}));
|
|
375
|
-
let appStyles = this.legacyEmberAppInstance.trees.styles;
|
|
376
|
-
if (appStyles) {
|
|
377
|
-
// Workaround for https://github.com/ember-cli/ember-cli/issues/9020
|
|
378
|
-
//
|
|
379
|
-
// The default app styles tree is unwatched and relies on side effects
|
|
380
|
-
// elsewhere in ember-cli's build pipeline to actually get rebuilds to
|
|
381
|
-
// work. Here we need it to actually be watched properly if we want to
|
|
382
|
-
// rely on it, particularly when using BROCCOLI_ENABLED_MEMOIZE.
|
|
383
|
-
if (appStyles._watched === false && appStyles._directoryPath) {
|
|
384
|
-
appStyles = new broccoli_source_1.WatchedDir(appStyles._directoryPath);
|
|
385
|
-
}
|
|
386
|
-
trees.push(appStyles);
|
|
387
|
-
}
|
|
388
|
-
return (0, broccoli_merge_trees_1.default)(trees, { overwrite: true, annotation: 'embroider-v1-app-combined-styles' });
|
|
389
|
-
}
|
|
390
|
-
synthesizeStylesPackage(addonTrees) {
|
|
391
|
-
let options = {
|
|
392
|
-
// we're deliberately not allowing this to be customized. It's an
|
|
393
|
-
// internal implementation detail, and respecting outputPaths here is
|
|
394
|
-
// unnecessary complexity. The corresponding code that adjusts the HTML
|
|
395
|
-
// <link> is in updateHTML in app.ts.
|
|
396
|
-
outputPaths: { app: `/@embroider/virtual/app.css` },
|
|
397
|
-
registry: this.legacyEmberAppInstance.registry,
|
|
398
|
-
minifyCSS: this.legacyEmberAppInstance.options.minifyCSS.options,
|
|
399
|
-
};
|
|
400
|
-
let nestedInput = (0, broccoli_funnel_1.default)(this.combinedStyles(addonTrees), { destDir: 'app/styles' });
|
|
401
|
-
let styles = this.preprocessors.preprocessCss(nestedInput, '/app/styles', '/assets', options);
|
|
402
|
-
return new add_to_tree_1.default(styles, outputPath => {
|
|
403
|
-
let addonMeta = {
|
|
404
|
-
version: 2,
|
|
405
|
-
'public-assets': {},
|
|
406
|
-
};
|
|
407
|
-
let assetPath = (0, path_1.join)(outputPath, '@embroider', 'virtual');
|
|
408
|
-
if ((0, fs_extra_1.pathExistsSync)(assetPath)) {
|
|
409
|
-
for (let file of (0, walk_sync_1.default)(assetPath, { directories: false })) {
|
|
410
|
-
addonMeta['public-assets'][`./@embroider/virtual/${file}`] = `/@embroider/virtual/${file}`;
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
let meta = {
|
|
414
|
-
name: '@embroider/synthesized-styles',
|
|
415
|
-
version: '0.0.0',
|
|
416
|
-
keywords: ['ember-addon'],
|
|
417
|
-
'ember-addon': addonMeta,
|
|
418
|
-
};
|
|
419
|
-
(0, fs_extra_1.writeJSONSync)((0, path_1.join)(outputPath, 'package.json'), meta, { spaces: 2 });
|
|
420
|
-
});
|
|
421
|
-
}
|
|
422
|
-
// this is taken nearly verbatim from ember-cli.
|
|
423
|
-
applyCustomTransforms(externalTree) {
|
|
424
|
-
for (let customTransformEntry of this.legacyEmberAppInstance._customTransformsMap) {
|
|
425
|
-
let transformName = customTransformEntry[0];
|
|
426
|
-
let transformConfig = customTransformEntry[1];
|
|
427
|
-
let transformTree = (0, broccoli_funnel_1.default)(externalTree, {
|
|
428
|
-
files: transformConfig.files,
|
|
429
|
-
annotation: `Funnel (custom transform: ${transformName})`,
|
|
430
|
-
});
|
|
431
|
-
externalTree = (0, broccoli_merge_trees_1.default)([externalTree, transformConfig.callback(transformTree, transformConfig.options)], {
|
|
432
|
-
annotation: `TreeMerger (custom transform: ${transformName})`,
|
|
433
|
-
overwrite: true,
|
|
434
|
-
});
|
|
435
|
-
}
|
|
436
|
-
return externalTree;
|
|
437
|
-
}
|
|
438
|
-
remapAsset(asset) {
|
|
439
|
-
if (this.transformedNodeFiles().has(asset)) {
|
|
440
|
-
// transformed node assets become local paths, because we have copied
|
|
441
|
-
// those ones into our synthesized vendor package.
|
|
442
|
-
return './' + asset;
|
|
443
|
-
}
|
|
444
|
-
let preresolved = this.preresolvedNodeFile(asset);
|
|
445
|
-
if (preresolved) {
|
|
446
|
-
// non-transformed node assets point directly at their pre-resolved
|
|
447
|
-
// original files (this is an absolute path).
|
|
448
|
-
return preresolved;
|
|
449
|
-
}
|
|
450
|
-
// non node assets are local paths. They need an explicit `/` or `.` at
|
|
451
|
-
// the start.
|
|
452
|
-
if (asset.startsWith('.') || (0, path_1.isAbsolute)(asset)) {
|
|
453
|
-
return asset;
|
|
454
|
-
}
|
|
455
|
-
return './' + asset;
|
|
456
|
-
}
|
|
457
|
-
get htmlbarsPlugins() {
|
|
458
|
-
let plugins = (0, prepare_htmlbars_ast_plugins_1.default)(this.legacyEmberAppInstance.registry);
|
|
459
|
-
// even if the app was using @embroider/macros, we drop it from the config
|
|
460
|
-
// here in favor of our globally-configured one.
|
|
461
|
-
plugins = plugins.filter((p) => !(0, node_1.isEmbroiderMacrosPlugin)(p));
|
|
462
|
-
return plugins;
|
|
463
|
-
}
|
|
464
|
-
get vendorTree() {
|
|
465
|
-
return this.ensureTree(this.legacyEmberAppInstance.trees.vendor);
|
|
466
|
-
}
|
|
467
|
-
ensureTree(maybeTree) {
|
|
468
|
-
if (typeof maybeTree === 'string') {
|
|
469
|
-
// this is deliberately mimicking how ember-cli does it. We don't use
|
|
470
|
-
// `this.root` on purpose, because that can differ from what ember-cli
|
|
471
|
-
// considers the project.root. And we don't use path.resolve even though
|
|
472
|
-
// that seems possibly more correct, because ember-cli always assumes the
|
|
473
|
-
// input is relative.
|
|
474
|
-
let resolvedPath = (0, path_1.join)(this.legacyEmberAppInstance.project.root, maybeTree);
|
|
475
|
-
if ((0, fs_extra_1.existsSync)(resolvedPath)) {
|
|
476
|
-
return new broccoli_source_1.WatchedDir(maybeTree);
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
return undefined;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
return maybeTree;
|
|
483
|
-
}
|
|
484
|
-
get preprocessors() {
|
|
485
|
-
return this.requireFromEmberCLI('ember-cli-preprocess-registry/preprocessors');
|
|
486
|
-
}
|
|
487
|
-
constructor(legacyEmberAppInstance, _options) {
|
|
488
|
-
this.legacyEmberAppInstance = legacyEmberAppInstance;
|
|
489
|
-
this.annotation = '@embroider/compat/app';
|
|
490
|
-
this._publicAssets = Object.create(null);
|
|
491
|
-
this._implicitScripts = [];
|
|
492
|
-
this._implicitStyles = [];
|
|
493
|
-
this.options = (0, options_1.optionsWithDefaults)(_options);
|
|
494
|
-
this.macrosConfig = node_1.MacrosConfig.for(legacyEmberAppInstance, this.root);
|
|
495
|
-
if (this.env !== 'production') {
|
|
496
|
-
this.macrosConfig.enablePackageDevelopment(this.root);
|
|
497
|
-
this.macrosConfig.enableRuntimeMode();
|
|
498
|
-
if (this.isDummy) {
|
|
499
|
-
// dummy apps automatically put their owning addon under development too
|
|
500
|
-
this.macrosConfig.enablePackageDevelopment((0, path_1.dirname)((0, pkg_up_1.sync)({ cwd: this.legacyEmberAppInstance.project.root })));
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
// this uses globalConfig because it's a way for packages to ask "is
|
|
504
|
-
// Embroider doing this build?". So it's necessarily global, not scoped to
|
|
505
|
-
// any subgraph of dependencies.
|
|
506
|
-
this.macrosConfig.setGlobalConfig(__filename, `@embroider/core`, {
|
|
507
|
-
// this is hard-coded to true because it literally means "embroider is
|
|
508
|
-
// building this Ember app". You can see non-true when using the Embroider
|
|
509
|
-
// macros in a classic build.
|
|
510
|
-
active: true,
|
|
511
|
-
});
|
|
512
|
-
// Embroider 4.x always requires eager importSync
|
|
513
|
-
this.macrosConfig.importSyncImplementation = 'eager';
|
|
514
|
-
}
|
|
515
|
-
inTrees(prevStageTree) {
|
|
516
|
-
let configTree = this.config;
|
|
517
|
-
let contentForTree = this.contentFor;
|
|
518
|
-
return {
|
|
519
|
-
configTree,
|
|
520
|
-
contentForTree,
|
|
521
|
-
prevStageTree,
|
|
522
|
-
};
|
|
523
|
-
}
|
|
524
|
-
appPackage() {
|
|
525
|
-
// this is deliberately not RewrittenPackageCache, because it's supposed to
|
|
526
|
-
// be the original copy of the app with all the original dependencies.
|
|
527
|
-
let packageCache = core_1.PackageCache.shared('embroider', this.root);
|
|
528
|
-
if (this.isDummy) {
|
|
529
|
-
return new dummy_package_1.default(this.root, this.legacyEmberAppInstance.project.root, packageCache // TODO: cast won't be needed when refactor is complete
|
|
530
|
-
);
|
|
531
|
-
}
|
|
532
|
-
else {
|
|
533
|
-
return packageCache.get(this.root);
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
async instantiate(packageCache, configTree, contentForTree) {
|
|
537
|
-
let origAppPkg = this.appPackage();
|
|
538
|
-
let movedAppPkg = packageCache.withRewrittenDeps(origAppPkg);
|
|
539
|
-
let workingDir = (0, core_1.locateEmbroiderWorkingDir)(this.root);
|
|
540
|
-
return new compat_app_builder_1.CompatAppBuilder(origAppPkg, movedAppPkg, this.options, this, configTree, contentForTree, packageCache.get((0, path_1.join)(workingDir, 'rewritten-packages', '@embroider', 'synthesized-vendor')), packageCache.get((0, path_1.join)(workingDir, 'rewritten-packages', '@embroider', 'synthesized-styles')));
|
|
541
|
-
}
|
|
542
|
-
asStage(prevStage) {
|
|
543
|
-
let resolve;
|
|
544
|
-
let promise = new Promise(r => (resolve = r));
|
|
545
|
-
let tree = () => {
|
|
546
|
-
let inTrees = this.inTrees(prevStage.tree);
|
|
547
|
-
return new core_1.WaitForTrees(inTrees, this.annotation, async (_treePaths) => {
|
|
548
|
-
if (!this.active) {
|
|
549
|
-
let { outputPath } = await prevStage.ready();
|
|
550
|
-
let packageCache = core_1.RewrittenPackageCache.shared('embroider', this.root);
|
|
551
|
-
this.active = await this.instantiate(packageCache, inTrees.configTree, inTrees.contentForTree);
|
|
552
|
-
resolve({ outputPath });
|
|
553
|
-
}
|
|
554
|
-
await this.active.build();
|
|
555
|
-
});
|
|
556
|
-
};
|
|
557
|
-
return {
|
|
558
|
-
get inputPath() {
|
|
559
|
-
return prevStage.inputPath;
|
|
560
|
-
},
|
|
561
|
-
ready: async () => {
|
|
562
|
-
return await promise;
|
|
563
|
-
},
|
|
564
|
-
get tree() {
|
|
565
|
-
return tree();
|
|
566
|
-
},
|
|
567
|
-
};
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
exports.default = CompatApp;
|
|
571
|
-
__decorate([
|
|
572
|
-
(0, typescript_memoize_1.Memoize)()
|
|
573
|
-
], CompatApp.prototype, "root", null);
|
|
574
|
-
__decorate([
|
|
575
|
-
(0, typescript_memoize_1.Memoize)()
|
|
576
|
-
], CompatApp.prototype, "emberCLILocation", null);
|
|
577
|
-
__decorate([
|
|
578
|
-
(0, typescript_memoize_1.Memoize)()
|
|
579
|
-
], CompatApp.prototype, "hasCompiledStyles", null);
|
|
580
|
-
__decorate([
|
|
581
|
-
(0, typescript_memoize_1.Memoize)()
|
|
582
|
-
], CompatApp.prototype, "addonTreeCache", null);
|
|
583
|
-
__decorate([
|
|
584
|
-
(0, typescript_memoize_1.Memoize)()
|
|
585
|
-
], CompatApp.prototype, "preprocessRegistry", null);
|
|
586
|
-
__decorate([
|
|
587
|
-
(0, typescript_memoize_1.Memoize)()
|
|
588
|
-
], CompatApp.prototype, "config", null);
|
|
589
|
-
__decorate([
|
|
590
|
-
(0, typescript_memoize_1.Memoize)()
|
|
591
|
-
], CompatApp.prototype, "testConfig", null);
|
|
592
|
-
__decorate([
|
|
593
|
-
(0, typescript_memoize_1.Memoize)()
|
|
594
|
-
], CompatApp.prototype, "contentFor", null);
|
|
595
|
-
__decorate([
|
|
596
|
-
(0, typescript_memoize_1.Memoize)()
|
|
597
|
-
], CompatApp.prototype, "configReplacePatterns", null);
|
|
598
|
-
__decorate([
|
|
599
|
-
(0, typescript_memoize_1.Memoize)()
|
|
600
|
-
], CompatApp.prototype, "extraBabelPlugins", null);
|
|
601
|
-
__decorate([
|
|
602
|
-
(0, typescript_memoize_1.Memoize)()
|
|
603
|
-
], CompatApp.prototype, "babelMajorVersion", null);
|
|
604
|
-
__decorate([
|
|
605
|
-
(0, typescript_memoize_1.Memoize)()
|
|
606
|
-
], CompatApp.prototype, "transformedNodeFiles", null);
|
|
607
|
-
__decorate([
|
|
608
|
-
(0, typescript_memoize_1.Memoize)()
|
|
609
|
-
], CompatApp.prototype, "preprocessors", null);
|
|
610
|
-
__decorate([
|
|
611
|
-
(0, typescript_memoize_1.Memoize)()
|
|
612
|
-
], CompatApp.prototype, "appPackage", null);
|
|
613
|
-
function forbiddenVendorPath(path) {
|
|
614
|
-
// ember-source does not go in vendor under embroider (we always use the
|
|
615
|
-
// separate ES modules)
|
|
616
|
-
return !['./vendor/ember/ember.js'].includes(path);
|
|
617
|
-
}
|
|
618
|
-
//# sourceMappingURL=compat-app.js.map
|