@embroider/compat 4.1.24 → 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 +6 -6
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/audit/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxE;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,UAAQ;gBACR,WAAW,EAAE,MAAM;CAGhC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAExD"}
|
package/dist/src/audit/build.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BuildError = void 0;
|
|
7
|
-
exports.buildApp = buildApp;
|
|
8
|
-
exports.isBuildError = isBuildError;
|
|
9
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
-
const child_process_1 = require("child_process");
|
|
11
|
-
async function buildApp(options) {
|
|
12
|
-
let result = await execute(`node node_modules/ember-cli/bin/ember build`, {
|
|
13
|
-
pwd: options.app,
|
|
14
|
-
env: {
|
|
15
|
-
STAGE2_ONLY: 'true',
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
if (result.exitCode !== 0) {
|
|
19
|
-
throw new BuildError(`${chalk_1.default.yellow('Unable to begin audit')} because the build failed. Build output follows:\n${result.output}`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
class BuildError extends Error {
|
|
23
|
-
constructor(buildOutput) {
|
|
24
|
-
super(buildOutput);
|
|
25
|
-
this.isBuildError = true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.BuildError = BuildError;
|
|
29
|
-
function isBuildError(err) {
|
|
30
|
-
return err === null || err === void 0 ? void 0 : err.isBuildError;
|
|
31
|
-
}
|
|
32
|
-
async function execute(shellCommand, opts) {
|
|
33
|
-
let env;
|
|
34
|
-
if (opts === null || opts === void 0 ? void 0 : opts.env) {
|
|
35
|
-
env = { ...process.env, ...opts.env };
|
|
36
|
-
}
|
|
37
|
-
let child = (0, child_process_1.spawn)(shellCommand, {
|
|
38
|
-
stdio: ['inherit', 'pipe', 'pipe'],
|
|
39
|
-
cwd: opts === null || opts === void 0 ? void 0 : opts.pwd,
|
|
40
|
-
shell: true,
|
|
41
|
-
env,
|
|
42
|
-
});
|
|
43
|
-
let stderrBuffer = [];
|
|
44
|
-
let stdoutBuffer = [];
|
|
45
|
-
let combinedBuffer = [];
|
|
46
|
-
child.stderr.on('data', data => {
|
|
47
|
-
stderrBuffer.push(data);
|
|
48
|
-
combinedBuffer.push(data);
|
|
49
|
-
});
|
|
50
|
-
child.stdout.on('data', data => {
|
|
51
|
-
stdoutBuffer.push(data);
|
|
52
|
-
combinedBuffer.push(data);
|
|
53
|
-
});
|
|
54
|
-
return new Promise(resolve => {
|
|
55
|
-
child.on('close', (exitCode) => {
|
|
56
|
-
resolve({
|
|
57
|
-
exitCode,
|
|
58
|
-
get stdout() {
|
|
59
|
-
return stdoutBuffer.join('');
|
|
60
|
-
},
|
|
61
|
-
get stderr() {
|
|
62
|
-
return stderrBuffer.join('');
|
|
63
|
-
},
|
|
64
|
-
get output() {
|
|
65
|
-
return combinedBuffer.join('');
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/audit/build.ts"],"names":[],"mappings":";;;;;;AAIA,4BAaC;AASD,oCAEC;AA5BD,kDAA0B;AAE1B,iDAAsC;AAE/B,KAAK,UAAU,QAAQ,CAAC,OAA0B;IACvD,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,6CAA6C,EAAE;QACxE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE;YACH,WAAW,EAAE,MAAM;SACpB;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAClB,GAAG,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,qDAAqD,MAAM,CAAC,MAAM,EAAE,CAC7G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAa,UAAW,SAAQ,KAAK;IAEnC,YAAY,WAAmB;QAC7B,KAAK,CAAC,WAAW,CAAC,CAAC;QAFrB,iBAAY,GAAG,IAAI,CAAC;IAGpB,CAAC;CACF;AALD,gCAKC;AAED,SAAgB,YAAY,CAAC,GAAQ;IACnC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,YAAoB,EACpB,IAAqD;IAOrD,IAAI,GAAmD,CAAC;IACxD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,EAAE,CAAC;QACd,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,GAAG,IAAA,qBAAK,EAAC,YAAY,EAAE;QAC9B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QAClC,GAAG,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG;QACd,KAAK,EAAE,IAAI;QACX,GAAG;KACJ,CAAC,CAAC;IACH,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;QAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;YACrC,OAAO,CAAC;gBACN,QAAQ;gBACR,IAAI,MAAM;oBACR,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,MAAM;oBACR,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;gBACD,IAAI,MAAM;oBACR,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import chalk from 'chalk';\nimport type { AuditBuildOptions } from '../audit';\nimport { spawn } from 'child_process';\n\nexport async function buildApp(options: AuditBuildOptions): Promise<void> {\n let result = await execute(`node node_modules/ember-cli/bin/ember build`, {\n pwd: options.app,\n env: {\n STAGE2_ONLY: 'true',\n },\n });\n\n if (result.exitCode !== 0) {\n throw new BuildError(\n `${chalk.yellow('Unable to begin audit')} because the build failed. Build output follows:\\n${result.output}`\n );\n }\n}\n\nexport class BuildError extends Error {\n isBuildError = true;\n constructor(buildOutput: string) {\n super(buildOutput);\n }\n}\n\nexport function isBuildError(err: any): err is BuildError {\n return err?.isBuildError;\n}\n\nasync function execute(\n shellCommand: string,\n opts?: { env?: Record<string, string>; pwd?: string }\n): Promise<{\n exitCode: number;\n stderr: string;\n stdout: string;\n output: string;\n}> {\n let env: Record<string, string | undefined> | undefined;\n if (opts?.env) {\n env = { ...process.env, ...opts.env };\n }\n let child = spawn(shellCommand, {\n stdio: ['inherit', 'pipe', 'pipe'],\n cwd: opts?.pwd,\n shell: true,\n env,\n });\n let stderrBuffer: string[] = [];\n let stdoutBuffer: string[] = [];\n let combinedBuffer: string[] = [];\n child.stderr!.on('data', data => {\n stderrBuffer.push(data);\n combinedBuffer.push(data);\n });\n child.stdout!.on('data', data => {\n stdoutBuffer.push(data);\n combinedBuffer.push(data);\n });\n return new Promise(resolve => {\n child.on('close', (exitCode: number) => {\n resolve({\n exitCode,\n get stdout() {\n return stdoutBuffer.join('');\n },\n get stderr() {\n return stderrBuffer.join('');\n },\n get output() {\n return combinedBuffer.join('');\n },\n });\n });\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/audit/options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/audit/options.ts"],"names":[],"mappings":"","sourcesContent":["export interface AuditOptions {\n entrypoints: string[];\n rootURL: string;\n}\n\nexport interface AuditBuildOptions extends AuditOptions {\n 'reuse-build'?: boolean;\n app: string;\n}\n"]}
|
package/dist/src/audit.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { AuditBuildOptions, AuditOptions } from './audit/options';
|
|
2
|
-
import { BuildError, isBuildError } from './audit/build';
|
|
3
|
-
import { type Module } from './module-visitor';
|
|
4
|
-
export interface AuditMessage {
|
|
5
|
-
message: string;
|
|
6
|
-
detail: string;
|
|
7
|
-
loc: Loc;
|
|
8
|
-
source: string;
|
|
9
|
-
filename: string;
|
|
10
|
-
}
|
|
11
|
-
export interface Loc {
|
|
12
|
-
start: {
|
|
13
|
-
line: number;
|
|
14
|
-
column: number;
|
|
15
|
-
};
|
|
16
|
-
end: {
|
|
17
|
-
line: number;
|
|
18
|
-
column: number;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export { AuditOptions, AuditBuildOptions, BuildError, isBuildError };
|
|
22
|
-
export interface Finding {
|
|
23
|
-
message: string;
|
|
24
|
-
filename: string;
|
|
25
|
-
detail: string;
|
|
26
|
-
codeFrame?: string;
|
|
27
|
-
}
|
|
28
|
-
export declare class AuditResults {
|
|
29
|
-
modules: {
|
|
30
|
-
[file: string]: Module;
|
|
31
|
-
};
|
|
32
|
-
findings: Finding[];
|
|
33
|
-
static create(baseDir: string, findings: Finding[], modules: Record<string, Module>): AuditResults;
|
|
34
|
-
humanReadable(): string;
|
|
35
|
-
get perfect(): boolean;
|
|
36
|
-
}
|
|
37
|
-
export declare class Audit {
|
|
38
|
-
private originAppRoot;
|
|
39
|
-
private options;
|
|
40
|
-
private virtualModules;
|
|
41
|
-
private findings;
|
|
42
|
-
private frames;
|
|
43
|
-
static run(options: AuditBuildOptions): Promise<AuditResults>;
|
|
44
|
-
constructor(originAppRoot: string, options: AuditOptions);
|
|
45
|
-
private get movedAppRoot();
|
|
46
|
-
private get babelConfig();
|
|
47
|
-
private get resolverParams();
|
|
48
|
-
private resolver;
|
|
49
|
-
run(): Promise<AuditResults>;
|
|
50
|
-
private resolveId;
|
|
51
|
-
private load;
|
|
52
|
-
private handleResolverError;
|
|
53
|
-
private inspectModules;
|
|
54
|
-
private inspectImports;
|
|
55
|
-
private moduleProvidesName;
|
|
56
|
-
private handleJSON;
|
|
57
|
-
private pushFinding;
|
|
58
|
-
}
|
|
59
|
-
export { Module };
|
|
60
|
-
//# sourceMappingURL=audit.d.ts.map
|
package/dist/src/audit.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/audit.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAY,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAEL,KAAK,MAAM,EAKZ,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAErE,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAY;IACvB,OAAO,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEzB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAcnF,aAAa,IAAI,MAAM;IA+CvB,IAAI,OAAO,YAEV;CACF;AAED,qBAAa,KAAK;IAeJ,OAAO,CAAC,aAAa;IAAU,OAAO,CAAC,OAAO;IAd1D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO,CAAC,MAAM,CAA0B;WAE3B,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;gBAS/C,aAAa,EAAE,MAAM,EAAU,OAAO,EAAE,YAAY;IAGxE,OAAO,KAAK,YAAY,GAGvB;IAGD,OAAO,KAAK,WAAW,GAetB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,CAAC,QAAQ,CAAqC;IAE/C,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;IA0BlC,OAAO,CAAC,SAAS,CAyBf;IAEF,OAAO,CAAC,IAAI,CAiBV;IAEF,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;IAyCtB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,WAAW;CAGpB;AAmBD,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/src/audit.js
DELETED
|
@@ -1,296 +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
|
-
exports.Audit = exports.AuditResults = exports.isBuildError = exports.BuildError = void 0;
|
|
13
|
-
const fs_extra_1 = require("fs-extra");
|
|
14
|
-
const path_1 = require("path");
|
|
15
|
-
const core_1 = require("@embroider/core");
|
|
16
|
-
const typescript_memoize_1 = require("typescript-memoize");
|
|
17
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
-
const groupBy_1 = __importDefault(require("lodash/groupBy"));
|
|
19
|
-
const babel_visitor_1 = require("./audit/babel-visitor");
|
|
20
|
-
const build_1 = require("./audit/build");
|
|
21
|
-
Object.defineProperty(exports, "BuildError", { enumerable: true, get: function () { return build_1.BuildError; } });
|
|
22
|
-
Object.defineProperty(exports, "isBuildError", { enumerable: true, get: function () { return build_1.isBuildError; } });
|
|
23
|
-
const module_visitor_1 = require("./module-visitor");
|
|
24
|
-
class AuditResults {
|
|
25
|
-
constructor() {
|
|
26
|
-
this.modules = {};
|
|
27
|
-
this.findings = [];
|
|
28
|
-
}
|
|
29
|
-
static create(baseDir, findings, modules) {
|
|
30
|
-
let results = new this();
|
|
31
|
-
results.modules = modules;
|
|
32
|
-
for (let finding of findings) {
|
|
33
|
-
const filename = finding.filename.startsWith('./')
|
|
34
|
-
? finding.filename
|
|
35
|
-
: (0, core_1.explicitRelative)(baseDir, finding.filename);
|
|
36
|
-
let relFinding = Object.assign({}, finding, { filename });
|
|
37
|
-
results.findings.push(relFinding);
|
|
38
|
-
}
|
|
39
|
-
return results;
|
|
40
|
-
}
|
|
41
|
-
humanReadable() {
|
|
42
|
-
var _a;
|
|
43
|
-
let output = [];
|
|
44
|
-
let findingsByFile = (0, groupBy_1.default)(this.findings, f => f.filename);
|
|
45
|
-
output.push(`=== Audit Results ===`);
|
|
46
|
-
for (let [filename, findings] of Object.entries(findingsByFile)) {
|
|
47
|
-
output.push(`${chalk_1.default.yellow(filename)}`);
|
|
48
|
-
for (let finding of findings) {
|
|
49
|
-
output.push(indent(chalk_1.default.red(finding.message) + ': ' + finding.detail, 1));
|
|
50
|
-
if (finding.codeFrame) {
|
|
51
|
-
output.push(indent(finding.codeFrame, 2));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
output.push(indent(chalk_1.default.blueBright(`file was included because:`), 1));
|
|
55
|
-
let pointer = filename;
|
|
56
|
-
while (!(0, module_visitor_1.isRootMarker)(pointer)) {
|
|
57
|
-
// the zero here means we only display the first path we found. I think
|
|
58
|
-
// that's a fine tradeoff to keep the output smaller.
|
|
59
|
-
let nextPointer = (_a = this.modules[pointer]) === null || _a === void 0 ? void 0 : _a.consumedFrom[0];
|
|
60
|
-
if (!nextPointer) {
|
|
61
|
-
output.push(indent(chalk_1.default.red(`couldn't figure out why this was included. Please file a bug against @embroider/compat.`), 2));
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
if ((0, module_visitor_1.isRootMarker)(nextPointer)) {
|
|
65
|
-
output.push(indent('packageJSON.ember-addon.assets', 2));
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
output.push(indent(nextPointer, 2));
|
|
69
|
-
}
|
|
70
|
-
pointer = nextPointer;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
let summaryColor;
|
|
74
|
-
if (this.perfect) {
|
|
75
|
-
summaryColor = chalk_1.default.green;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
summaryColor = chalk_1.default.yellow;
|
|
79
|
-
}
|
|
80
|
-
output.push(summaryColor(`${this.findings.length} issues found`));
|
|
81
|
-
output.push(`=== End Audit Results ===`);
|
|
82
|
-
output.push(''); // always end with a newline because `yarn run` can overwrite our last line otherwise
|
|
83
|
-
return output.join('\n');
|
|
84
|
-
}
|
|
85
|
-
get perfect() {
|
|
86
|
-
return this.findings.length === 0;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
exports.AuditResults = AuditResults;
|
|
90
|
-
class Audit {
|
|
91
|
-
static async run(options) {
|
|
92
|
-
if (!options['reuse-build']) {
|
|
93
|
-
await (0, build_1.buildApp)(options);
|
|
94
|
-
}
|
|
95
|
-
let audit = new this(options.app, options);
|
|
96
|
-
return audit.run();
|
|
97
|
-
}
|
|
98
|
-
constructor(originAppRoot, options) {
|
|
99
|
-
this.originAppRoot = originAppRoot;
|
|
100
|
-
this.options = options;
|
|
101
|
-
this.virtualModules = new Map();
|
|
102
|
-
this.findings = [];
|
|
103
|
-
this.frames = new babel_visitor_1.CodeFrameStorage();
|
|
104
|
-
this.resolver = new core_1.Resolver(this.resolverParams);
|
|
105
|
-
this.resolveId = async (specifier, fromFile) => {
|
|
106
|
-
if (['@embroider/macros'].includes(specifier)) {
|
|
107
|
-
// the audit process deliberately removes the @embroider/macros babel
|
|
108
|
-
// plugins, so the imports are still present and should be left alone.
|
|
109
|
-
return undefined;
|
|
110
|
-
}
|
|
111
|
-
if (fromFile.endsWith('.html') && specifier.startsWith(this.options.rootURL)) {
|
|
112
|
-
// root-relative URLs in HTML are actually relative to the appDir
|
|
113
|
-
specifier = (0, core_1.explicitRelative)((0, path_1.dirname)(fromFile), (0, path_1.resolve)(this.movedAppRoot, specifier.replace(this.options.rootURL, '')));
|
|
114
|
-
}
|
|
115
|
-
let resolution = await this.resolver.nodeResolve(specifier, fromFile);
|
|
116
|
-
switch (resolution.type) {
|
|
117
|
-
case 'virtual':
|
|
118
|
-
this.virtualModules.set(resolution.filename, resolution.content);
|
|
119
|
-
return resolution.filename;
|
|
120
|
-
case 'not_found':
|
|
121
|
-
return undefined;
|
|
122
|
-
case 'real':
|
|
123
|
-
return resolution.filename;
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
this.load = async (id) => {
|
|
127
|
-
let content;
|
|
128
|
-
if (this.virtualModules.has(id)) {
|
|
129
|
-
content = this.virtualModules.get(id);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
content = (0, fs_extra_1.readFileSync)(id);
|
|
133
|
-
}
|
|
134
|
-
if (id.endsWith('.html')) {
|
|
135
|
-
return { content, type: 'html' };
|
|
136
|
-
}
|
|
137
|
-
else if (id.endsWith('.hbs')) {
|
|
138
|
-
return { content: (0, core_1.hbsToJS)(content.toString('utf8')), type: 'javascript' };
|
|
139
|
-
}
|
|
140
|
-
else if (id.endsWith('.json')) {
|
|
141
|
-
return this.handleJSON(id, content);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
return { content, type: 'javascript' };
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
get movedAppRoot() {
|
|
149
|
-
let cache = core_1.RewrittenPackageCache.shared('embroider', this.originAppRoot);
|
|
150
|
-
return cache.maybeMoved(cache.get(this.originAppRoot)).root;
|
|
151
|
-
}
|
|
152
|
-
get babelConfig() {
|
|
153
|
-
let origCwd = process.cwd();
|
|
154
|
-
process.chdir(this.originAppRoot);
|
|
155
|
-
try {
|
|
156
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
157
|
-
let config = require((0, path_1.join)(this.originAppRoot, 'babel.config.cjs'));
|
|
158
|
-
config = Object.assign({}, config);
|
|
159
|
-
config.plugins = config.plugins.filter((p) => !isMacrosPlugin(p));
|
|
160
|
-
config.ast = true;
|
|
161
|
-
return config;
|
|
162
|
-
}
|
|
163
|
-
finally {
|
|
164
|
-
process.chdir(origCwd);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
get resolverParams() {
|
|
168
|
-
return (0, fs_extra_1.readJSONSync)((0, path_1.join)((0, core_1.locateEmbroiderWorkingDir)(this.originAppRoot), 'resolver.json'));
|
|
169
|
-
}
|
|
170
|
-
async run() {
|
|
171
|
-
globalThis.embroider_audit = this.handleResolverError.bind(this);
|
|
172
|
-
try {
|
|
173
|
-
let entrypoints = this.options.entrypoints
|
|
174
|
-
.filter(a => a.endsWith('html'))
|
|
175
|
-
.map(a => (0, path_1.resolve)(this.movedAppRoot, a));
|
|
176
|
-
let modules = await (0, module_visitor_1.visitModules)({
|
|
177
|
-
base: this.originAppRoot,
|
|
178
|
-
entrypoints,
|
|
179
|
-
resolveId: this.resolveId,
|
|
180
|
-
load: this.load,
|
|
181
|
-
findings: this.findings,
|
|
182
|
-
frames: this.frames,
|
|
183
|
-
babelConfig: this.babelConfig,
|
|
184
|
-
});
|
|
185
|
-
this.inspectModules(modules);
|
|
186
|
-
return AuditResults.create(this.originAppRoot, this.findings, modules);
|
|
187
|
-
}
|
|
188
|
-
finally {
|
|
189
|
-
delete globalThis.embroider_audit;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
handleResolverError(msg) {
|
|
193
|
-
this.pushFinding({
|
|
194
|
-
message: msg.message,
|
|
195
|
-
filename: msg.filename,
|
|
196
|
-
detail: msg.detail,
|
|
197
|
-
codeFrame: this.frames.render(this.frames.forSource(msg.source)(msg)),
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
inspectModules(modules) {
|
|
201
|
-
for (let [filename, module] of Object.entries(modules)) {
|
|
202
|
-
if (module.type === 'complete') {
|
|
203
|
-
this.inspectImports(filename, module, modules);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
inspectImports(filename, module, modules) {
|
|
208
|
-
for (let imp of module.imports) {
|
|
209
|
-
// our Audit should always ignore any imports of @embroider/macros because we already ignored them
|
|
210
|
-
// in resolveId above
|
|
211
|
-
if (imp.source === '@embroider/macros') {
|
|
212
|
-
continue;
|
|
213
|
-
}
|
|
214
|
-
let resolved = module.resolutions[imp.source];
|
|
215
|
-
if (!resolved) {
|
|
216
|
-
this.findings.push({
|
|
217
|
-
filename,
|
|
218
|
-
message: 'unable to resolve dependency',
|
|
219
|
-
detail: imp.source,
|
|
220
|
-
codeFrame: this.frames.render(imp.codeFrameIndex),
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
else if (resolved) {
|
|
224
|
-
let target = modules[resolved];
|
|
225
|
-
for (let specifier of imp.specifiers) {
|
|
226
|
-
if (target.type === 'complete' && !this.moduleProvidesName(target, specifier.name)) {
|
|
227
|
-
if (specifier.name === 'default') {
|
|
228
|
-
let backtick = '`';
|
|
229
|
-
this.findings.push({
|
|
230
|
-
filename,
|
|
231
|
-
message: 'importing a non-existent default export',
|
|
232
|
-
detail: `"${imp.source}" has no default export. Did you mean ${backtick}import * as ${specifier.local} from "${imp.source}"${backtick}?`,
|
|
233
|
-
codeFrame: this.frames.render(specifier.codeFrameIndex),
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
this.findings.push({
|
|
238
|
-
filename,
|
|
239
|
-
message: 'importing a non-existent named export',
|
|
240
|
-
detail: `"${imp.source}" has no export named "${specifier.name}".`,
|
|
241
|
-
codeFrame: this.frames.render(specifier.codeFrameIndex),
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
moduleProvidesName(target, name) {
|
|
250
|
-
// any module can provide a namespace.
|
|
251
|
-
// CJS and AMD are too dynamic to be sure exactly what names are available,
|
|
252
|
-
// so they always get a pass
|
|
253
|
-
return (0, babel_visitor_1.isNamespaceMarker)(name) || target.isCJS || target.isAMD || target.exports.includes(name);
|
|
254
|
-
}
|
|
255
|
-
handleJSON(filename, content) {
|
|
256
|
-
let js;
|
|
257
|
-
try {
|
|
258
|
-
let structure = JSON.parse(content.toString('utf8'));
|
|
259
|
-
js = `export default ${JSON.stringify(structure)}`;
|
|
260
|
-
}
|
|
261
|
-
catch (err) {
|
|
262
|
-
this.findings.push({
|
|
263
|
-
filename,
|
|
264
|
-
message: `failed to parse JSON`,
|
|
265
|
-
detail: err.toString().replace(filename, (0, core_1.explicitRelative)(this.originAppRoot, filename)),
|
|
266
|
-
});
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
return { content: js, type: 'javascript' };
|
|
270
|
-
}
|
|
271
|
-
pushFinding(finding) {
|
|
272
|
-
this.findings.push(finding);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
exports.Audit = Audit;
|
|
276
|
-
__decorate([
|
|
277
|
-
(0, typescript_memoize_1.Memoize)()
|
|
278
|
-
], Audit.prototype, "movedAppRoot", null);
|
|
279
|
-
__decorate([
|
|
280
|
-
(0, typescript_memoize_1.Memoize)()
|
|
281
|
-
], Audit.prototype, "babelConfig", null);
|
|
282
|
-
function isMacrosPlugin(p) {
|
|
283
|
-
return Array.isArray(p) && p[1] && p[1].embroiderMacrosConfigMarker;
|
|
284
|
-
}
|
|
285
|
-
function indent(str, level) {
|
|
286
|
-
const spacesPerLevel = 2;
|
|
287
|
-
let spaces = '';
|
|
288
|
-
for (let i = 0; i < level * spacesPerLevel; i++) {
|
|
289
|
-
spaces += ' ';
|
|
290
|
-
}
|
|
291
|
-
return str
|
|
292
|
-
.split('\n')
|
|
293
|
-
.map(line => spaces + line)
|
|
294
|
-
.join('\n');
|
|
295
|
-
}
|
|
296
|
-
//# sourceMappingURL=audit.js.map
|
package/dist/src/audit.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/audit.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAsD;AACtD,+BAA6D;AAE7D,0CAAwH;AACxH,2DAA6C;AAC7C,kDAA0B;AAC1B,6DAAqC;AAErC,yDAA4E;AAE5E,yCAAmE;AAuBzB,2FAvBvB,kBAAU,OAuBuB;AAAE,6FAvBvB,oBAAY,OAuBuB;AAtBlE,qDAO0B;AAwB1B,MAAa,YAAY;IAAzB;QACE,YAAO,GAA+B,EAAE,CAAC;QACzC,aAAQ,GAAc,EAAE,CAAC;IAkE3B,CAAC;IAhEC,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,QAAmB,EAAE,OAA+B;QACjF,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gBAChD,CAAC,CAAC,OAAO,CAAC,QAAQ;gBAClB,CAAC,CAAC,IAAA,uBAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEhD,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa;;QACX,IAAI,MAAM,GAAG,EAAc,CAAC;QAC5B,IAAI,cAAc,GAAG,IAAA,iBAAO,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzC,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAK,CAAC,UAAU,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,OAAO,GAAwB,QAAQ,CAAC;YAC5C,OAAO,CAAC,IAAA,6BAAY,EAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,uEAAuE;gBACvE,qDAAqD;gBACrD,IAAI,WAAW,GAAoC,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,0CAAE,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC1F,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CACT,MAAM,CACJ,eAAK,CAAC,GAAG,CAAC,yFAAyF,CAAC,EACpG,CAAC,CACF,CACF,CAAC;oBACF,MAAM;gBACR,CAAC;gBACD,IAAI,IAAA,6BAAY,EAAC,WAAW,CAAC,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,OAAO,GAAG,WAAW,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,YAAY,GAAG,eAAK,CAAC,KAAK,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,eAAK,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,qFAAqF;QACtG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACpC,CAAC;CACF;AApED,oCAoEC;AAED,MAAa,KAAK;IAMhB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAA0B;QACzC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,YAAoB,aAAqB,EAAU,OAAqB;QAApD,kBAAa,GAAb,aAAa,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAc;QAdhE,mBAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QAChD,aAAQ,GAAG,EAAe,CAAC;QAE3B,WAAM,GAAG,IAAI,gCAAgB,EAAE,CAAC;QAyChC,aAAQ,GAAG,IAAI,eAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QA4B7C,cAAS,GAAG,KAAK,EAAE,SAAiB,EAAE,QAAgB,EAA+B,EAAE;YAC7F,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,qEAAqE;gBACrE,sEAAsE;gBACtE,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7E,iEAAiE;gBACjE,SAAS,GAAG,IAAA,uBAAgB,EAC1B,IAAA,cAAO,EAAC,QAAQ,CAAC,EACjB,IAAA,cAAW,EAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAC5E,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtE,QAAQ,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,SAAS;oBACZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;oBACjE,OAAO,UAAU,CAAC,QAAQ,CAAC;gBAC7B,KAAK,WAAW;oBACd,OAAO,SAAS,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,UAAU,CAAC,QAAQ,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QAEM,SAAI,GAAG,KAAK,EAAE,EAAU,EAAwE,EAAE;YACxG,IAAI,OAAwB,CAAC;YAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,IAAA,uBAAY,EAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACnC,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,OAAO,EAAE,IAAA,cAAO,EAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YAC5E,CAAC;iBAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;IAtGyE,CAAC;IAG5E,IAAY,YAAY;QACtB,IAAI,KAAK,GAAG,4BAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAGD,IAAY,WAAW;QACrB,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,iEAAiE;YACjE,IAAI,MAAM,GAAG,OAAO,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAEnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAY,cAAc;QACxB,OAAO,IAAA,uBAAY,EAAC,IAAA,WAAI,EAAC,IAAA,gCAAyB,EAAC,IAAI,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5F,CAAC;IAID,KAAK,CAAC,GAAG;QACN,UAAkB,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,cAAW,EAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAE/C,IAAI,OAAO,GAAG,MAAM,IAAA,6BAAY,EAAC;gBAC/B,IAAI,EAAE,IAAI,CAAC,aAAa;gBACxB,WAAW;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAE7B,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACT,OAAQ,UAAkB,CAAC,eAAe,CAAC;QAC7C,CAAC;IACH,CAAC;IAgDO,mBAAmB,CAAC,GAAiB;QAC3C,IAAI,CAAC,WAAW,CAAC;YACf,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,OAA+B;QACpD,KAAK,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,QAAgB,EAAE,MAAsB,EAAE,OAA+B;QAC9F,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,kGAAkG;YAClG,qBAAqB;YACrB,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,QAAQ;oBACR,OAAO,EAAE,8BAA8B;oBACvC,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAE,CAAC;gBAChC,KAAK,IAAI,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACrC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnF,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BACjC,IAAI,QAAQ,GAAG,GAAG,CAAC;4BACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gCACjB,QAAQ;gCACR,OAAO,EAAE,yCAAyC;gCAClD,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,yCAAyC,QAAQ,eAAe,SAAS,CAAC,KAAK,UAAU,GAAG,CAAC,MAAM,IAAI,QAAQ,GAAG;gCACxI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;6BACxD,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gCACjB,QAAQ;gCACR,OAAO,EAAE,uCAAuC;gCAChD,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,0BAA0B,SAAS,CAAC,IAAI,IAAI;gCAClE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;6BACxD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAsB,EAAE,IAA8B;QAC/E,sCAAsC;QACtC,2EAA2E;QAC3E,4BAA4B;QAC5B,OAAO,IAAA,iCAAiB,EAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClG,CAAC;IAEO,UAAU,CAAC,QAAgB,EAAE,OAAwB;QAC3D,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YACH,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YACrD,EAAE,GAAG,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,QAAQ;gBACR,OAAO,EAAE,sBAAsB;gBAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAA,uBAAgB,EAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;aACzF,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,OAAgB;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AA3MD,sBA2MC;AAzLC;IADC,IAAA,4BAAO,GAAE;yCAIT;AAGD;IADC,IAAA,4BAAO,GAAE;wCAgBT;AAsKH,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC;AACtE,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,KAAa;IACxC,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,CAAC;IAChB,CAAC;IAED,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC","sourcesContent":["import { readFileSync, readJSONSync } from 'fs-extra';\nimport { join, resolve as resolvePath, dirname } from 'path';\nimport type { ResolverOptions } from '@embroider/core';\nimport { explicitRelative, hbsToJS, locateEmbroiderWorkingDir, Resolver, RewrittenPackageCache } from '@embroider/core';\nimport { Memoize } from 'typescript-memoize';\nimport chalk from 'chalk';\nimport groupBy from 'lodash/groupBy';\nimport type { NamespaceMarker } from './audit/babel-visitor';\nimport { CodeFrameStorage, isNamespaceMarker } from './audit/babel-visitor';\nimport { AuditBuildOptions, AuditOptions } from './audit/options';\nimport { buildApp, BuildError, isBuildError } from './audit/build';\nimport {\n type ContentType,\n type Module,\n visitModules,\n type RootMarker,\n isRootMarker,\n type CompleteModule,\n} from './module-visitor';\n\nexport interface AuditMessage {\n message: string;\n detail: string;\n loc: Loc;\n source: string;\n filename: string;\n}\n\nexport interface Loc {\n start: { line: number; column: number };\n end: { line: number; column: number };\n}\n\nexport { AuditOptions, AuditBuildOptions, BuildError, isBuildError };\n\nexport interface Finding {\n message: string;\n filename: string;\n detail: string;\n codeFrame?: string;\n}\n\nexport class AuditResults {\n modules: { [file: string]: Module } = {};\n findings: Finding[] = [];\n\n static create(baseDir: string, findings: Finding[], modules: Record<string, Module>) {\n let results = new this();\n results.modules = modules;\n for (let finding of findings) {\n const filename = finding.filename.startsWith('./')\n ? finding.filename\n : explicitRelative(baseDir, finding.filename);\n\n let relFinding = Object.assign({}, finding, { filename });\n results.findings.push(relFinding);\n }\n return results;\n }\n\n humanReadable(): string {\n let output = [] as string[];\n let findingsByFile = groupBy(this.findings, f => f.filename);\n output.push(`=== Audit Results ===`);\n for (let [filename, findings] of Object.entries(findingsByFile)) {\n output.push(`${chalk.yellow(filename)}`);\n for (let finding of findings) {\n output.push(indent(chalk.red(finding.message) + ': ' + finding.detail, 1));\n if (finding.codeFrame) {\n output.push(indent(finding.codeFrame, 2));\n }\n }\n output.push(indent(chalk.blueBright(`file was included because:`), 1));\n let pointer: string | RootMarker = filename;\n while (!isRootMarker(pointer)) {\n // the zero here means we only display the first path we found. I think\n // that's a fine tradeoff to keep the output smaller.\n let nextPointer: string | RootMarker | undefined = this.modules[pointer]?.consumedFrom[0];\n if (!nextPointer) {\n output.push(\n indent(\n chalk.red(`couldn't figure out why this was included. Please file a bug against @embroider/compat.`),\n 2\n )\n );\n break;\n }\n if (isRootMarker(nextPointer)) {\n output.push(indent('packageJSON.ember-addon.assets', 2));\n } else {\n output.push(indent(nextPointer, 2));\n }\n pointer = nextPointer;\n }\n }\n let summaryColor;\n if (this.perfect) {\n summaryColor = chalk.green;\n } else {\n summaryColor = chalk.yellow;\n }\n output.push(summaryColor(`${this.findings.length} issues found`));\n output.push(`=== End Audit Results ===`);\n output.push(''); // always end with a newline because `yarn run` can overwrite our last line otherwise\n return output.join('\\n');\n }\n\n get perfect() {\n return this.findings.length === 0;\n }\n}\n\nexport class Audit {\n private virtualModules: Map<string, string> = new Map();\n private findings = [] as Finding[];\n\n private frames = new CodeFrameStorage();\n\n static async run(options: AuditBuildOptions): Promise<AuditResults> {\n if (!options['reuse-build']) {\n await buildApp(options);\n }\n\n let audit = new this(options.app, options);\n return audit.run();\n }\n\n constructor(private originAppRoot: string, private options: AuditOptions) {}\n\n @Memoize()\n private get movedAppRoot() {\n let cache = RewrittenPackageCache.shared('embroider', this.originAppRoot);\n return cache.maybeMoved(cache.get(this.originAppRoot)).root;\n }\n\n @Memoize()\n private get babelConfig() {\n let origCwd = process.cwd();\n process.chdir(this.originAppRoot);\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n let config = require(join(this.originAppRoot, 'babel.config.cjs'));\n\n config = Object.assign({}, config);\n config.plugins = config.plugins.filter((p: any) => !isMacrosPlugin(p));\n\n config.ast = true;\n return config;\n } finally {\n process.chdir(origCwd);\n }\n }\n\n private get resolverParams(): ResolverOptions {\n return readJSONSync(join(locateEmbroiderWorkingDir(this.originAppRoot), 'resolver.json'));\n }\n\n private resolver = new Resolver(this.resolverParams);\n\n async run(): Promise<AuditResults> {\n (globalThis as any).embroider_audit = this.handleResolverError.bind(this);\n\n try {\n let entrypoints = this.options.entrypoints\n .filter(a => a.endsWith('html'))\n .map(a => resolvePath(this.movedAppRoot, a));\n\n let modules = await visitModules({\n base: this.originAppRoot,\n entrypoints,\n resolveId: this.resolveId,\n load: this.load,\n findings: this.findings,\n frames: this.frames,\n babelConfig: this.babelConfig,\n });\n\n this.inspectModules(modules);\n\n return AuditResults.create(this.originAppRoot, this.findings, modules);\n } finally {\n delete (globalThis as any).embroider_audit;\n }\n }\n\n private resolveId = async (specifier: string, fromFile: string): Promise<string | undefined> => {\n if (['@embroider/macros'].includes(specifier)) {\n // the audit process deliberately removes the @embroider/macros babel\n // plugins, so the imports are still present and should be left alone.\n return undefined;\n }\n\n if (fromFile.endsWith('.html') && specifier.startsWith(this.options.rootURL)) {\n // root-relative URLs in HTML are actually relative to the appDir\n specifier = explicitRelative(\n dirname(fromFile),\n resolvePath(this.movedAppRoot, specifier.replace(this.options.rootURL, ''))\n );\n }\n\n let resolution = await this.resolver.nodeResolve(specifier, fromFile);\n switch (resolution.type) {\n case 'virtual':\n this.virtualModules.set(resolution.filename, resolution.content);\n return resolution.filename;\n case 'not_found':\n return undefined;\n case 'real':\n return resolution.filename;\n }\n };\n\n private load = async (id: string): Promise<{ content: string | Buffer; type: ContentType } | undefined> => {\n let content: string | Buffer;\n if (this.virtualModules.has(id)) {\n content = this.virtualModules.get(id)!;\n } else {\n content = readFileSync(id);\n }\n\n if (id.endsWith('.html')) {\n return { content, type: 'html' };\n } else if (id.endsWith('.hbs')) {\n return { content: hbsToJS(content.toString('utf8')), type: 'javascript' };\n } else if (id.endsWith('.json')) {\n return this.handleJSON(id, content);\n } else {\n return { content, type: 'javascript' };\n }\n };\n\n private handleResolverError(msg: AuditMessage) {\n this.pushFinding({\n message: msg.message,\n filename: msg.filename,\n detail: msg.detail,\n codeFrame: this.frames.render(this.frames.forSource(msg.source)(msg)),\n });\n }\n\n private inspectModules(modules: Record<string, Module>) {\n for (let [filename, module] of Object.entries(modules)) {\n if (module.type === 'complete') {\n this.inspectImports(filename, module, modules);\n }\n }\n }\n\n private inspectImports(filename: string, module: CompleteModule, modules: Record<string, Module>) {\n for (let imp of module.imports) {\n // our Audit should always ignore any imports of @embroider/macros because we already ignored them\n // in resolveId above\n if (imp.source === '@embroider/macros') {\n continue;\n }\n let resolved = module.resolutions[imp.source];\n if (!resolved) {\n this.findings.push({\n filename,\n message: 'unable to resolve dependency',\n detail: imp.source,\n codeFrame: this.frames.render(imp.codeFrameIndex),\n });\n } else if (resolved) {\n let target = modules[resolved]!;\n for (let specifier of imp.specifiers) {\n if (target.type === 'complete' && !this.moduleProvidesName(target, specifier.name)) {\n if (specifier.name === 'default') {\n let backtick = '`';\n this.findings.push({\n filename,\n message: 'importing a non-existent default export',\n detail: `\"${imp.source}\" has no default export. Did you mean ${backtick}import * as ${specifier.local} from \"${imp.source}\"${backtick}?`,\n codeFrame: this.frames.render(specifier.codeFrameIndex),\n });\n } else {\n this.findings.push({\n filename,\n message: 'importing a non-existent named export',\n detail: `\"${imp.source}\" has no export named \"${specifier.name}\".`,\n codeFrame: this.frames.render(specifier.codeFrameIndex),\n });\n }\n }\n }\n }\n }\n }\n\n private moduleProvidesName(target: CompleteModule, name: string | NamespaceMarker) {\n // any module can provide a namespace.\n // CJS and AMD are too dynamic to be sure exactly what names are available,\n // so they always get a pass\n return isNamespaceMarker(name) || target.isCJS || target.isAMD || target.exports.includes(name);\n }\n\n private handleJSON(filename: string, content: Buffer | string): { content: string; type: ContentType } | undefined {\n let js;\n try {\n let structure = JSON.parse(content.toString('utf8'));\n js = `export default ${JSON.stringify(structure)}`;\n } catch (err) {\n this.findings.push({\n filename,\n message: `failed to parse JSON`,\n detail: err.toString().replace(filename, explicitRelative(this.originAppRoot, filename)),\n });\n return;\n }\n return { content: js, type: 'javascript' };\n }\n\n private pushFinding(finding: Finding) {\n this.findings.push(finding);\n }\n}\n\nfunction isMacrosPlugin(p: any) {\n return Array.isArray(p) && p[1] && p[1].embroiderMacrosConfigMarker;\n}\n\nfunction indent(str: string, level: number) {\n const spacesPerLevel = 2;\n let spaces = '';\n for (let i = 0; i < level * spacesPerLevel; i++) {\n spaces += ' ';\n }\n\n return str\n .split('\\n')\n .map(line => spaces + line)\n .join('\\n');\n}\n\nexport { Module };\n"]}
|
package/dist/src/babel.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { PluginItem } from '@babel/core';
|
|
2
|
-
import type { Transform } from 'babel-plugin-ember-template-compilation';
|
|
3
|
-
export interface CompatBabelState {
|
|
4
|
-
plugins: PluginItem[];
|
|
5
|
-
templateTransforms: Transform[];
|
|
6
|
-
babelMacros: PluginItem[];
|
|
7
|
-
templateMacros: Transform[];
|
|
8
|
-
}
|
|
9
|
-
export declare function pluginsFromV1Addons(): PluginItem[];
|
|
10
|
-
export declare function transformsFromV1Addons(): Transform[];
|
|
11
|
-
export declare function looseModeSupport(): Transform;
|
|
12
|
-
export declare function templateMacros(): Transform[];
|
|
13
|
-
export declare function babelMacros(): PluginItem[];
|
|
14
|
-
export declare function oldDebugMacros(): PluginItem[];
|
|
15
|
-
export declare function templateColocation(): PluginItem;
|
|
16
|
-
export declare function babelCompatSupport(): PluginItem[];
|
|
17
|
-
export declare function templateCompatSupport(): Transform[];
|
|
18
|
-
//# sourceMappingURL=babel.d.ts.map
|
package/dist/src/babel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babel.d.ts","sourceRoot":"","sources":["../../src/babel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAS9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,kBAAkB,EAAE,SAAS,EAAE,CAAC;IAChC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,cAAc,EAAE,SAAS,EAAE,CAAC;CAC7B;AAqBD,wBAAgB,mBAAmB,iBAGlC;AAED,wBAAgB,sBAAsB,gBAGrC;AAED,wBAAgB,gBAAgB,IAAI,SAAS,CAO5C;AAED,wBAAgB,cAAc,gBAG7B;AAED,wBAAgB,WAAW,iBAG1B;AAED,wBAAgB,cAAc,IAAI,UAAU,EAAE,CA6C7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAkC/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,EAAE,CAEjD;AAED,wBAAgB,qBAAqB,IAAI,SAAS,EAAE,CAEnD"}
|