projen 0.48.0 → 0.49.2
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/.jsii +6276 -1413
- package/.prettierignore +1 -0
- package/.prettierrc.json +3 -0
- package/API.md +1111 -41
- package/changelog.md +2 -8
- package/docs/gitlab.md +67 -0
- package/lib/_resolve.d.ts +1 -1
- package/lib/_resolve.js +5 -7
- package/lib/awscdk/auto-discover.d.ts +4 -4
- package/lib/awscdk/auto-discover.js +2 -2
- package/lib/awscdk/{java-app.d.ts → awscdk-app-java.d.ts} +13 -30
- package/lib/awscdk/awscdk-app-java.js +91 -0
- package/lib/awscdk/awscdk-app-ts.d.ts +5 -5
- package/lib/awscdk/awscdk-app-ts.js +35 -34
- package/lib/awscdk/awscdk-construct.d.ts +3 -3
- package/lib/awscdk/awscdk-construct.js +12 -10
- package/lib/awscdk/awscdk-deps-java.d.ts +14 -0
- package/lib/awscdk/awscdk-deps-java.js +30 -0
- package/lib/awscdk/awscdk-deps-js.d.ts +14 -0
- package/lib/awscdk/awscdk-deps-js.js +31 -0
- package/lib/awscdk/awscdk-deps.d.ts +59 -11
- package/lib/awscdk/awscdk-deps.js +27 -23
- package/lib/awscdk/cdk-config.d.ts +3 -3
- package/lib/awscdk/cdk-config.js +5 -5
- package/lib/awscdk/cdk-tasks.d.ts +3 -3
- package/lib/awscdk/cdk-tasks.js +21 -20
- package/lib/awscdk/index.d.ts +11 -9
- package/lib/awscdk/index.js +4 -2
- package/lib/awscdk/integration-test.d.ts +4 -4
- package/lib/awscdk/integration-test.js +15 -13
- package/lib/awscdk/internal.js +16 -16
- package/lib/awscdk/lambda-function.d.ts +4 -4
- package/lib/awscdk/lambda-function.js +29 -29
- package/lib/build/build-workflow.d.ts +5 -5
- package/lib/build/build-workflow.js +36 -30
- package/lib/build/index.d.ts +1 -1
- package/lib/build/index.js +1 -1
- package/lib/builtin-example.task.js +3 -3
- package/lib/cdk/construct-lib.d.ts +1 -1
- package/lib/cdk/construct-lib.js +4 -4
- package/lib/cdk/consts.d.ts +2 -2
- package/lib/cdk/consts.js +5 -5
- package/lib/cdk/index.d.ts +3 -3
- package/lib/cdk/index.js +1 -1
- package/lib/cdk/jsii-docgen.d.ts +1 -1
- package/lib/cdk/jsii-docgen.js +7 -7
- package/lib/cdk/jsii-project.d.ts +3 -3
- package/lib/cdk/jsii-project.js +39 -39
- package/lib/cdk8s/cdk8s-app-ts.d.ts +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +28 -21
- package/lib/cdk8s/cdk8s-construct.d.ts +1 -1
- package/lib/cdk8s/cdk8s-construct.js +10 -6
- package/lib/cdk8s/index.d.ts +2 -2
- package/lib/cdk8s/index.js +1 -1
- package/lib/cdktf/cdktf-construct.d.ts +1 -1
- package/lib/cdktf/cdktf-construct.js +4 -4
- package/lib/cdktf/index.d.ts +1 -1
- package/lib/cdktf/index.js +1 -1
- package/lib/cleanup.js +20 -14
- package/lib/cli/cmds/new.js +71 -42
- package/lib/cli/index.js +27 -10
- package/lib/cli/macros.js +15 -11
- package/lib/cli/synth.d.ts +1 -1
- package/lib/cli/synth.js +15 -12
- package/lib/cli/tasks.d.ts +2 -2
- package/lib/cli/tasks.js +9 -6
- package/lib/cli/util.js +4 -4
- package/lib/clobber.d.ts +2 -2
- package/lib/clobber.js +14 -10
- package/lib/common.js +7 -9
- package/lib/component.d.ts +1 -1
- package/lib/component.js +2 -2
- package/lib/dependencies.d.ts +2 -2
- package/lib/dependencies.js +14 -12
- package/lib/dev-env.d.ts +1 -1
- package/lib/dev-env.js +2 -2
- package/lib/docker-compose.d.ts +2 -2
- package/lib/docker-compose.js +23 -19
- package/lib/file.d.ts +2 -2
- package/lib/file.js +7 -5
- package/lib/gitattributes.d.ts +2 -2
- package/lib/gitattributes.js +7 -8
- package/lib/github/auto-approve.d.ts +2 -2
- package/lib/github/auto-approve.js +25 -15
- package/lib/github/auto-merge.d.ts +2 -2
- package/lib/github/auto-merge.js +14 -14
- package/lib/github/constants.d.ts +1 -1
- package/lib/github/constants.js +4 -4
- package/lib/github/dependabot.d.ts +2 -2
- package/lib/github/dependabot.js +16 -14
- package/lib/github/github-project.d.ts +5 -5
- package/lib/github/github-project.js +14 -10
- package/lib/github/github.d.ts +7 -7
- package/lib/github/github.js +7 -5
- package/lib/github/index.d.ts +13 -13
- package/lib/github/index.js +1 -1
- package/lib/github/mergify.d.ts +2 -2
- package/lib/github/mergify.js +3 -3
- package/lib/github/pr-template.d.ts +2 -2
- package/lib/github/pr-template.js +5 -5
- package/lib/github/pull-request-lint.d.ts +2 -2
- package/lib/github/pull-request-lint.js +17 -14
- package/lib/github/stale-util.d.ts +1 -1
- package/lib/github/stale-util.js +2 -3
- package/lib/github/stale.d.ts +2 -2
- package/lib/github/stale.js +28 -20
- package/lib/github/task-workflow.d.ts +4 -4
- package/lib/github/task-workflow.js +12 -10
- package/lib/github/workflow-actions.d.ts +2 -2
- package/lib/github/workflow-actions.js +22 -20
- package/lib/github/workflows-model.d.ts +20 -20
- package/lib/github/workflows-model.js +1 -1
- package/lib/github/workflows.d.ts +4 -4
- package/lib/github/workflows.js +42 -27
- package/lib/gitlab/configuration-model.d.ts +1308 -0
- package/lib/gitlab/configuration-model.js +122 -0
- package/lib/gitlab/configuration.d.ts +260 -0
- package/lib/gitlab/configuration.js +296 -0
- package/lib/gitlab/gitlab-configuration.d.ts +30 -0
- package/lib/gitlab/gitlab-configuration.js +49 -0
- package/lib/gitlab/index.d.ts +4 -0
- package/lib/gitlab/index.js +17 -0
- package/lib/gitlab/nested-configuration.d.ts +26 -0
- package/lib/gitlab/nested-configuration.js +38 -0
- package/lib/gitpod.d.ts +4 -4
- package/lib/gitpod.js +12 -9
- package/lib/ignore-file.d.ts +2 -2
- package/lib/ignore-file.js +10 -13
- package/lib/index.d.ts +47 -46
- package/lib/index.js +2 -1
- package/lib/ini.d.ts +3 -3
- package/lib/ini.js +4 -4
- package/lib/inventory.d.ts +1 -1
- package/lib/inventory.js +34 -30
- package/lib/java/index.d.ts +7 -7
- package/lib/java/index.js +1 -1
- package/lib/java/java-project.d.ts +7 -6
- package/lib/java/java-project.js +11 -13
- package/lib/java/junit.d.ts +3 -3
- package/lib/java/junit.js +17 -17
- package/lib/java/maven-compile.d.ts +3 -3
- package/lib/java/maven-compile.js +7 -7
- package/lib/java/maven-packaging.d.ts +3 -3
- package/lib/java/maven-packaging.js +12 -16
- package/lib/java/maven-sample.d.ts +2 -2
- package/lib/java/maven-sample.js +12 -12
- package/lib/java/pom.d.ts +2 -2
- package/lib/java/pom.js +16 -14
- package/lib/java/projenrc.d.ts +3 -3
- package/lib/java/projenrc.js +35 -25
- package/lib/javascript/bundler.d.ts +3 -3
- package/lib/javascript/bundler.js +14 -12
- package/lib/javascript/eslint.d.ts +4 -3
- package/lib/javascript/eslint.js +102 -86
- package/lib/javascript/index.d.ts +10 -10
- package/lib/javascript/index.js +1 -1
- package/lib/javascript/jest.d.ts +4 -4
- package/lib/javascript/jest.js +48 -37
- package/lib/javascript/node-package.d.ts +9 -2
- package/lib/javascript/node-package.js +111 -81
- package/lib/javascript/node-project.d.ts +11 -11
- package/lib/javascript/node-project.js +78 -52
- package/lib/javascript/npm-config.d.ts +2 -2
- package/lib/javascript/npm-config.js +4 -4
- package/lib/javascript/prettier.d.ts +4 -4
- package/lib/javascript/prettier.js +5 -5
- package/lib/javascript/projenrc.d.ts +2 -2
- package/lib/javascript/projenrc.js +8 -8
- package/lib/javascript/render-options.d.ts +2 -2
- package/lib/javascript/render-options.js +23 -18
- package/lib/javascript/typescript-config.d.ts +2 -2
- package/lib/javascript/typescript-config.js +5 -5
- package/lib/javascript/upgrade-dependencies.d.ts +4 -4
- package/lib/javascript/upgrade-dependencies.js +67 -53
- package/lib/javascript/util.js +2 -2
- package/lib/json.d.ts +3 -3
- package/lib/json.js +4 -4
- package/lib/license.d.ts +2 -2
- package/lib/license.js +7 -7
- package/lib/logger.d.ts +2 -2
- package/lib/logger.js +14 -9
- package/lib/logging.js +2 -2
- package/lib/makefile.d.ts +2 -2
- package/lib/makefile.js +12 -15
- package/lib/object-file.d.ts +2 -2
- package/lib/object-file.js +9 -7
- package/lib/option-hints.js +1 -1
- package/lib/project-build.d.ts +3 -3
- package/lib/project-build.js +14 -14
- package/lib/project.d.ts +14 -14
- package/lib/project.js +41 -23
- package/lib/projects.d.ts +1 -1
- package/lib/projects.js +10 -11
- package/lib/projenrc-json.d.ts +2 -2
- package/lib/projenrc-json.js +5 -5
- package/lib/python/index.d.ts +13 -13
- package/lib/python/index.js +1 -1
- package/lib/python/pip.d.ts +4 -4
- package/lib/python/pip.js +16 -12
- package/lib/python/poetry.d.ts +7 -7
- package/lib/python/poetry.js +41 -33
- package/lib/python/projenrc.d.ts +2 -2
- package/lib/python/projenrc.js +24 -21
- package/lib/python/pytest.d.ts +2 -2
- package/lib/python/pytest.js +19 -19
- package/lib/python/python-deps.d.ts +2 -2
- package/lib/python/python-deps.js +1 -1
- package/lib/python/python-packaging.d.ts +2 -2
- package/lib/python/python-packaging.js +1 -1
- package/lib/python/python-project.d.ts +7 -7
- package/lib/python/python-project.js +14 -13
- package/lib/python/python-sample.d.ts +2 -2
- package/lib/python/python-sample.js +17 -17
- package/lib/python/requirements-file.d.ts +3 -3
- package/lib/python/requirements-file.js +7 -8
- package/lib/python/setuppy.d.ts +2 -2
- package/lib/python/setuppy.js +23 -23
- package/lib/python/setuptools.d.ts +4 -4
- package/lib/python/setuptools.js +11 -11
- package/lib/python/venv.d.ts +3 -3
- package/lib/python/venv.js +6 -6
- package/lib/readme.d.ts +2 -2
- package/lib/readme.js +5 -3
- package/lib/release/bump-version.d.ts +1 -1
- package/lib/release/bump-version.js +37 -26
- package/lib/release/bump-version.task.js +7 -7
- package/lib/release/index.d.ts +3 -3
- package/lib/release/index.js +1 -1
- package/lib/release/publisher.d.ts +4 -4
- package/lib/release/publisher.js +93 -78
- package/lib/release/release-trigger.js +3 -3
- package/lib/release/release.d.ts +6 -6
- package/lib/release/release.js +37 -23
- package/lib/release/reset-version.task.js +4 -4
- package/lib/release/tag-version.js +1 -1
- package/lib/release/tag-version.task.js +3 -3
- package/lib/release/update-changelog.js +6 -4
- package/lib/release/update-changelog.task.js +4 -4
- package/lib/run-projenrc-json.task.js +5 -5
- package/lib/sample-file.d.ts +2 -2
- package/lib/sample-file.js +8 -8
- package/lib/semver.js +17 -7
- package/lib/source-code.d.ts +2 -2
- package/lib/source-code.js +5 -5
- package/lib/task-model.js +1 -1
- package/lib/task-runtime.d.ts +1 -1
- package/lib/task-runtime.js +27 -27
- package/lib/task.d.ts +1 -1
- package/lib/task.js +2 -2
- package/lib/tasks.d.ts +3 -3
- package/lib/tasks.js +5 -5
- package/lib/testing.d.ts +1 -1
- package/lib/testing.js +2 -2
- package/lib/textfile.d.ts +2 -2
- package/lib/textfile.js +3 -3
- package/lib/toml.d.ts +3 -3
- package/lib/toml.js +4 -4
- package/lib/typescript/index.d.ts +3 -3
- package/lib/typescript/index.js +1 -1
- package/lib/typescript/projenrc.d.ts +2 -2
- package/lib/typescript/projenrc.js +10 -10
- package/lib/typescript/typescript-typedoc.d.ts +1 -1
- package/lib/typescript/typescript-typedoc.js +4 -4
- package/lib/typescript/typescript.d.ts +3 -3
- package/lib/typescript/typescript.js +59 -62
- package/lib/util/semver.js +33 -33
- package/lib/util/synth.d.ts +1 -1
- package/lib/util/synth.js +15 -12
- package/lib/util.js +39 -32
- package/lib/version.d.ts +3 -3
- package/lib/version.js +12 -12
- package/lib/vscode/devcontainer.d.ts +4 -4
- package/lib/vscode/devcontainer.js +13 -8
- package/lib/vscode/index.d.ts +3 -3
- package/lib/vscode/index.js +1 -1
- package/lib/vscode/launch-config.d.ts +2 -2
- package/lib/vscode/launch-config.js +4 -4
- package/lib/vscode/vscode.d.ts +3 -3
- package/lib/vscode/vscode.js +2 -2
- package/lib/web/index.d.ts +4 -4
- package/lib/web/index.js +1 -1
- package/lib/web/next.d.ts +3 -3
- package/lib/web/next.js +241 -237
- package/lib/web/postcss.d.ts +3 -3
- package/lib/web/postcss.js +9 -6
- package/lib/web/react.d.ts +4 -4
- package/lib/web/react.js +172 -177
- package/lib/web/tailwind.d.ts +2 -2
- package/lib/web/tailwind.js +3 -3
- package/lib/xmlfile.d.ts +3 -3
- package/lib/xmlfile.js +5 -5
- package/lib/yaml.d.ts +3 -3
- package/lib/yaml.js +4 -4
- package/package.json +4 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
- package/lib/awscdk/java-app.js +0 -90
|
@@ -24,7 +24,7 @@ class Bundler extends component_1.Component {
|
|
|
24
24
|
var _b, _c;
|
|
25
25
|
super(project);
|
|
26
26
|
this.esbuildVersion = options.esbuildVersion;
|
|
27
|
-
this.bundledir = (_b = options.assetsDir) !== null && _b !== void 0 ? _b :
|
|
27
|
+
this.bundledir = (_b = options.assetsDir) !== null && _b !== void 0 ? _b : "assets";
|
|
28
28
|
this.addToPreCompile = (_c = options.addToPreCompile) !== null && _c !== void 0 ? _c : true;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
@@ -49,8 +49,8 @@ class Bundler extends component_1.Component {
|
|
|
49
49
|
get bundleTask() {
|
|
50
50
|
if (!this._task) {
|
|
51
51
|
this.addBundlingSupport();
|
|
52
|
-
this._task = this.project.tasks.addTask(
|
|
53
|
-
description:
|
|
52
|
+
this._task = this.project.tasks.addTask("bundle", {
|
|
53
|
+
description: "Prepare assets",
|
|
54
54
|
});
|
|
55
55
|
// install the bundle task into the pre-compile phase.
|
|
56
56
|
if (this.addToPreCompile) {
|
|
@@ -69,10 +69,10 @@ class Bundler extends component_1.Component {
|
|
|
69
69
|
addBundle(entrypoint, options) {
|
|
70
70
|
var _b, _c, _d;
|
|
71
71
|
const name = util_1.renderBundleName(entrypoint);
|
|
72
|
-
const outfile = path_1.join(this.bundledir, name,
|
|
72
|
+
const outfile = path_1.join(this.bundledir, name, "index.js");
|
|
73
73
|
const args = [
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
"esbuild",
|
|
75
|
+
"--bundle",
|
|
76
76
|
entrypoint,
|
|
77
77
|
`--target="${options.target}"`,
|
|
78
78
|
`--platform="${options.platform}"`,
|
|
@@ -83,11 +83,11 @@ class Bundler extends component_1.Component {
|
|
|
83
83
|
}
|
|
84
84
|
const sourcemap = (_c = options.sourcemap) !== null && _c !== void 0 ? _c : false;
|
|
85
85
|
if (sourcemap) {
|
|
86
|
-
args.push(
|
|
86
|
+
args.push("--sourcemap");
|
|
87
87
|
}
|
|
88
88
|
const bundleTask = this.project.addTask(`bundle:${name}`, {
|
|
89
89
|
description: `Create a JavaScript bundle from ${entrypoint}`,
|
|
90
|
-
exec: args.join(
|
|
90
|
+
exec: args.join(" "),
|
|
91
91
|
});
|
|
92
92
|
this.bundleTask.spawn(bundleTask);
|
|
93
93
|
let watchTask;
|
|
@@ -95,7 +95,7 @@ class Bundler extends component_1.Component {
|
|
|
95
95
|
if (watch) {
|
|
96
96
|
watchTask = this.project.addTask(`bundle:${name}:watch`, {
|
|
97
97
|
description: `Continuously update the JavaScript bundle from ${entrypoint}`,
|
|
98
|
-
exec: `${args.join(
|
|
98
|
+
exec: `${args.join(" ")} --watch`,
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
return {
|
|
@@ -113,11 +113,13 @@ class Bundler extends component_1.Component {
|
|
|
113
113
|
const ignoreEntry = `/${this.bundledir}/`;
|
|
114
114
|
this.project.addGitIgnore(ignoreEntry);
|
|
115
115
|
this.project.addPackageIgnore(`!${ignoreEntry}`); // include in tarball
|
|
116
|
-
const dep = this.esbuildVersion
|
|
116
|
+
const dep = this.esbuildVersion
|
|
117
|
+
? `esbuild@${this.esbuildVersion}`
|
|
118
|
+
: "esbuild";
|
|
117
119
|
this.project.deps.addDependency(dep, dependencies_1.DependencyType.BUILD);
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
exports.Bundler = Bundler;
|
|
121
123
|
_a = JSII_RTTI_SYMBOL_1;
|
|
122
|
-
Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQUdqRCxpQ0FBMEM7Ozs7Ozs7O0FBZTFDLE1BQWEsT0FBUSxTQUFRLHFCQUFTOzs7Ozs7SUFpQnBDLFlBQVksT0FBZ0IsRUFBRSxVQUEwQixFQUFFOztRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsU0FBRyxPQUFPLENBQUMsU0FBUyxtQ0FBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsU0FBRyxPQUFPLENBQUMsZUFBZSxtQ0FBSSxJQUFJLENBQUM7SUFDekQsQ0FBQzs7Ozs7Ozs7SUFyQk0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxPQUFPLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7Ozs7Ozs7SUFxQkQsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoRCxXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUVILHNEQUFzRDtZQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7Ozs7OztJQUdNLFNBQVMsQ0FBQyxVQUFrQixFQUFFLE9BQXlCOztRQUM1RCxNQUFNLElBQUksR0FBRyx1QkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLE9BQU8sR0FBRyxXQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQUc7WUFDWCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFVBQVU7WUFDVixhQUFhLE9BQU8sQ0FBQyxNQUFNLEdBQUc7WUFDOUIsZUFBZSxPQUFPLENBQUMsUUFBUSxHQUFHO1lBQ2xDLGNBQWMsT0FBTyxHQUFHO1NBQ3pCLENBQUM7UUFFRixLQUFLLE1BQU0sQ0FBQyxVQUFJLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUVELE1BQU0sU0FBUyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEtBQUssQ0FBQztRQUM3QyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFO1lBQ3hELFdBQVcsRUFBRSxtQ0FBbUMsVUFBVSxFQUFFO1lBQzVELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxJQUFJLFNBQVMsQ0FBQztRQUNkLE1BQU0sS0FBSyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLElBQUksQ0FBQztRQUN4QyxJQUFJLEtBQUssRUFBRTtZQUNULFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksUUFBUSxFQUFFO2dCQUN2RCxXQUFXLEVBQUUsa0RBQWtELFVBQVUsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVTthQUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxrQkFBa0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLDZCQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7QUFuR0gsMEJBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50JztcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSAnLi4vZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi9wcm9qZWN0JztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90YXNrJztcbmltcG9ydCB7IHJlbmRlckJ1bmRsZU5hbWUgfSBmcm9tICcuL3V0aWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlck9wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXNidWlsZFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXNzZXRzRGlyPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYWRkVG9QcmVDb21waWxlPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBCdW5kbGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEJ1bmRsZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzQnVuZGxlciA9IChvOiBDb21wb25lbnQpOiBvIGlzIEJ1bmRsZXIgPT4gbyBpbnN0YW5jZW9mIEJ1bmRsZXI7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzQnVuZGxlcik7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYnVuZGxlZGlyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfdGFzazogVGFzayB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBhZGRUb1ByZUNvbXBpbGU6IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogQnVuZGxlck9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5lc2J1aWxkVmVyc2lvbiA9IG9wdGlvbnMuZXNidWlsZFZlcnNpb247XG4gICAgdGhpcy5idW5kbGVkaXIgPSBvcHRpb25zLmFzc2V0c0RpciA/PyAnYXNzZXRzJztcbiAgICB0aGlzLmFkZFRvUHJlQ29tcGlsZSA9IG9wdGlvbnMuYWRkVG9QcmVDb21waWxlID8/IHRydWU7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBidW5kbGVUYXNrKCk6IFRhc2sge1xuICAgIGlmICghdGhpcy5fdGFzaykge1xuICAgICAgdGhpcy5hZGRCdW5kbGluZ1N1cHBvcnQoKTtcbiAgICAgIHRoaXMuX3Rhc2sgPSB0aGlzLnByb2plY3QudGFza3MuYWRkVGFzaygnYnVuZGxlJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1ByZXBhcmUgYXNzZXRzJyxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBpbnN0YWxsIHRoZSBidW5kbGUgdGFzayBpbnRvIHRoZSBwcmUtY29tcGlsZSBwaGFzZS5cbiAgICAgIGlmICh0aGlzLmFkZFRvUHJlQ29tcGlsZSkge1xuICAgICAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suc3Bhd24odGhpcy5fdGFzayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2s7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQnVuZGxlKGVudHJ5cG9pbnQ6IHN0cmluZywgb3B0aW9uczogQWRkQnVuZGxlT3B0aW9ucyk6IEJ1bmRsZSB7XG4gICAgY29uc3QgbmFtZSA9IHJlbmRlckJ1bmRsZU5hbWUoZW50cnlwb2ludCk7XG5cbiAgICBjb25zdCBvdXRmaWxlID0gam9pbih0aGlzLmJ1bmRsZWRpciwgbmFtZSwgJ2luZGV4LmpzJyk7XG4gICAgY29uc3QgYXJncyA9IFtcbiAgICAgICdlc2J1aWxkJyxcbiAgICAgICctLWJ1bmRsZScsXG4gICAgICBlbnRyeXBvaW50LFxuICAgICAgYC0tdGFyZ2V0PVwiJHtvcHRpb25zLnRhcmdldH1cImAsXG4gICAgICBgLS1wbGF0Zm9ybT1cIiR7b3B0aW9ucy5wbGF0Zm9ybX1cImAsXG4gICAgICBgLS1vdXRmaWxlPVwiJHtvdXRmaWxlfVwiYCxcbiAgICBdO1xuXG4gICAgZm9yIChjb25zdCB4IG9mIG9wdGlvbnMuZXh0ZXJuYWxzID8/IFtdKSB7XG4gICAgICBhcmdzLnB1c2goYC0tZXh0ZXJuYWw6JHt4fWApO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZW1hcCA9IG9wdGlvbnMuc291cmNlbWFwID8/IGZhbHNlO1xuICAgIGlmIChzb3VyY2VtYXApIHtcbiAgICAgIGFyZ3MucHVzaCgnLS1zb3VyY2VtYXAnKTtcbiAgICB9XG5cbiAgICBjb25zdCBidW5kbGVUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soYGJ1bmRsZToke25hbWV9YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGUgYSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgZXhlYzogYXJncy5qb2luKCcgJyksXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1bmRsZVRhc2suc3Bhd24oYnVuZGxlVGFzayk7XG5cbiAgICBsZXQgd2F0Y2hUYXNrO1xuICAgIGNvbnN0IHdhdGNoID0gb3B0aW9ucy53YXRjaFRhc2sgPz8gdHJ1ZTtcbiAgICBpZiAod2F0Y2gpIHtcbiAgICAgIHdhdGNoVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKGBidW5kbGU6JHtuYW1lfTp3YXRjaGAsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IGBDb250aW51b3VzbHkgdXBkYXRlIHRoZSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgICBleGVjOiBgJHthcmdzLmpvaW4oJyAnKX0gLS13YXRjaGAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVuZGxlVGFzazogYnVuZGxlVGFzayxcbiAgICAgIHdhdGNoVGFzazogd2F0Y2hUYXNrLFxuICAgICAgb3V0ZmlsZTogb3V0ZmlsZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBidW5kbGluZyBzdXBwb3J0IHRvIGEgcHJvamVjdC4gVGhpcyBpcyBjYWxsZWQgaW1wbGljaXRseSB3aGVuXG4gICAqIGBidW5kbGVUYXNrYCBpcyByZWZlcmVuY2VkIGZpcnN0LiBJdCBhZGRzIHRoZSBkZXBlbmRlbmN5IG9uIGBlc2J1aWxkYCxcbiAgICogZ2l0aWdub3JlL25wbWlnbm9yZSwgZXRjLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCdW5kbGluZ1N1cHBvcnQoKSB7XG4gICAgY29uc3QgaWdub3JlRW50cnkgPSBgLyR7dGhpcy5idW5kbGVkaXJ9L2A7XG4gICAgdGhpcy5wcm9qZWN0LmFkZEdpdElnbm9yZShpZ25vcmVFbnRyeSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYCEke2lnbm9yZUVudHJ5fWApOyAvLyBpbmNsdWRlIGluIHRhcmJhbGxcbiAgICBjb25zdCBkZXAgPSB0aGlzLmVzYnVpbGRWZXJzaW9uID8gYGVzYnVpbGRAJHt0aGlzLmVzYnVpbGRWZXJzaW9ufWAgOiAnZXNidWlsZCc7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShkZXAsIERlcGVuZGVuY3lUeXBlLkJVSUxEKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJ1bmRsZVRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHdhdGNoVGFzaz86IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvdXRmaWxlOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsaW5nT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBleHRlcm5hbHM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc291cmNlbWFwPzogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHdhdGNoVGFzaz86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQWRkQnVuZGxlT3B0aW9ucyBleHRlbmRzIEJ1bmRsaW5nT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFyZ2V0OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcGxhdGZvcm06IHN0cmluZztcbn1cblxuIl19
|
|
124
|
+
Bundler[_a] = { fqn: "projen.javascript.Bundler", version: "0.49.2" };
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhc2NyaXB0L2J1bmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBNEI7QUFDNUIsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQUdqRCxpQ0FBMEM7Ozs7Ozs7O0FBZTFDLE1BQWEsT0FBUSxTQUFRLHFCQUFTOzs7Ozs7SUFpQnBDLFlBQVksT0FBZ0IsRUFBRSxVQUEwQixFQUFFOztRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsU0FBRyxPQUFPLENBQUMsU0FBUyxtQ0FBSSxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsU0FBRyxPQUFPLENBQUMsZUFBZSxtQ0FBSSxJQUFJLENBQUM7SUFDekQsQ0FBQzs7Ozs7Ozs7SUFyQk0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBZ0IsRUFBRSxDQUFDLENBQUMsWUFBWSxPQUFPLENBQUM7UUFDdkUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7Ozs7Ozs7SUFxQkQsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoRCxXQUFXLEVBQUUsZ0JBQWdCO2FBQzlCLENBQUMsQ0FBQztZQUVILHNEQUFzRDtZQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0M7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7Ozs7OztJQUdNLFNBQVMsQ0FBQyxVQUFrQixFQUFFLE9BQXlCOztRQUM1RCxNQUFNLElBQUksR0FBRyx1QkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLE9BQU8sR0FBRyxXQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQUc7WUFDWCxTQUFTO1lBQ1QsVUFBVTtZQUNWLFVBQVU7WUFDVixhQUFhLE9BQU8sQ0FBQyxNQUFNLEdBQUc7WUFDOUIsZUFBZSxPQUFPLENBQUMsUUFBUSxHQUFHO1lBQ2xDLGNBQWMsT0FBTyxHQUFHO1NBQ3pCLENBQUM7UUFFRixLQUFLLE1BQU0sQ0FBQyxVQUFJLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUVELE1BQU0sU0FBUyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLEtBQUssQ0FBQztRQUM3QyxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFO1lBQ3hELFdBQVcsRUFBRSxtQ0FBbUMsVUFBVSxFQUFFO1lBQzVELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxJQUFJLFNBQVMsQ0FBQztRQUNkLE1BQU0sS0FBSyxTQUFHLE9BQU8sQ0FBQyxTQUFTLG1DQUFJLElBQUksQ0FBQztRQUN4QyxJQUFJLEtBQUssRUFBRTtZQUNULFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksUUFBUSxFQUFFO2dCQUN2RCxXQUFXLEVBQUUsa0RBQWtELFVBQVUsRUFBRTtnQkFDM0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVTthQUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxrQkFBa0I7UUFDeEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWM7WUFDN0IsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNsQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSw2QkFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7O0FBckdILDBCQXNHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza1wiO1xuaW1wb3J0IHsgcmVuZGVyQnVuZGxlTmFtZSB9IGZyb20gXCIuL3V0aWxcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGVzYnVpbGRWZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFzc2V0c0Rpcj86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFkZFRvUHJlQ29tcGlsZT86IGJvb2xlYW47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQnVuZGxlciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBCdW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc0J1bmRsZXIgPSAobzogQ29tcG9uZW50KTogbyBpcyBCdW5kbGVyID0+IG8gaW5zdGFuY2VvZiBCdW5kbGVyO1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0J1bmRsZXIpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJ1bmRsZWRpcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3Rhc2s6IFRhc2sgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWRkVG9QcmVDb21waWxlOiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IEJ1bmRsZXJPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZXNidWlsZFZlcnNpb24gPSBvcHRpb25zLmVzYnVpbGRWZXJzaW9uO1xuICAgIHRoaXMuYnVuZGxlZGlyID0gb3B0aW9ucy5hc3NldHNEaXIgPz8gXCJhc3NldHNcIjtcbiAgICB0aGlzLmFkZFRvUHJlQ29tcGlsZSA9IG9wdGlvbnMuYWRkVG9QcmVDb21waWxlID8/IHRydWU7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBidW5kbGVUYXNrKCk6IFRhc2sge1xuICAgIGlmICghdGhpcy5fdGFzaykge1xuICAgICAgdGhpcy5hZGRCdW5kbGluZ1N1cHBvcnQoKTtcbiAgICAgIHRoaXMuX3Rhc2sgPSB0aGlzLnByb2plY3QudGFza3MuYWRkVGFzayhcImJ1bmRsZVwiLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlByZXBhcmUgYXNzZXRzXCIsXG4gICAgICB9KTtcblxuICAgICAgLy8gaW5zdGFsbCB0aGUgYnVuZGxlIHRhc2sgaW50byB0aGUgcHJlLWNvbXBpbGUgcGhhc2UuXG4gICAgICBpZiAodGhpcy5hZGRUb1ByZUNvbXBpbGUpIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLnNwYXduKHRoaXMuX3Rhc2spO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90YXNrO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZEJ1bmRsZShlbnRyeXBvaW50OiBzdHJpbmcsIG9wdGlvbnM6IEFkZEJ1bmRsZU9wdGlvbnMpOiBCdW5kbGUge1xuICAgIGNvbnN0IG5hbWUgPSByZW5kZXJCdW5kbGVOYW1lKGVudHJ5cG9pbnQpO1xuXG4gICAgY29uc3Qgb3V0ZmlsZSA9IGpvaW4odGhpcy5idW5kbGVkaXIsIG5hbWUsIFwiaW5kZXguanNcIik7XG4gICAgY29uc3QgYXJncyA9IFtcbiAgICAgIFwiZXNidWlsZFwiLFxuICAgICAgXCItLWJ1bmRsZVwiLFxuICAgICAgZW50cnlwb2ludCxcbiAgICAgIGAtLXRhcmdldD1cIiR7b3B0aW9ucy50YXJnZXR9XCJgLFxuICAgICAgYC0tcGxhdGZvcm09XCIke29wdGlvbnMucGxhdGZvcm19XCJgLFxuICAgICAgYC0tb3V0ZmlsZT1cIiR7b3V0ZmlsZX1cImAsXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgeCBvZiBvcHRpb25zLmV4dGVybmFscyA/PyBbXSkge1xuICAgICAgYXJncy5wdXNoKGAtLWV4dGVybmFsOiR7eH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2VtYXAgPSBvcHRpb25zLnNvdXJjZW1hcCA/PyBmYWxzZTtcbiAgICBpZiAoc291cmNlbWFwKSB7XG4gICAgICBhcmdzLnB1c2goXCItLXNvdXJjZW1hcFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBidW5kbGVUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soYGJ1bmRsZToke25hbWV9YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGUgYSBKYXZhU2NyaXB0IGJ1bmRsZSBmcm9tICR7ZW50cnlwb2ludH1gLFxuICAgICAgZXhlYzogYXJncy5qb2luKFwiIFwiKSxcbiAgICB9KTtcblxuICAgIHRoaXMuYnVuZGxlVGFzay5zcGF3bihidW5kbGVUYXNrKTtcblxuICAgIGxldCB3YXRjaFRhc2s7XG4gICAgY29uc3Qgd2F0Y2ggPSBvcHRpb25zLndhdGNoVGFzayA/PyB0cnVlO1xuICAgIGlmICh3YXRjaCkge1xuICAgICAgd2F0Y2hUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soYGJ1bmRsZToke25hbWV9OndhdGNoYCwge1xuICAgICAgICBkZXNjcmlwdGlvbjogYENvbnRpbnVvdXNseSB1cGRhdGUgdGhlIEphdmFTY3JpcHQgYnVuZGxlIGZyb20gJHtlbnRyeXBvaW50fWAsXG4gICAgICAgIGV4ZWM6IGAke2FyZ3Muam9pbihcIiBcIil9IC0td2F0Y2hgLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1bmRsZVRhc2s6IGJ1bmRsZVRhc2ssXG4gICAgICB3YXRjaFRhc2s6IHdhdGNoVGFzayxcbiAgICAgIG91dGZpbGU6IG91dGZpbGUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYnVuZGxpbmcgc3VwcG9ydCB0byBhIHByb2plY3QuIFRoaXMgaXMgY2FsbGVkIGltcGxpY2l0bHkgd2hlblxuICAgKiBgYnVuZGxlVGFza2AgaXMgcmVmZXJlbmNlZCBmaXJzdC4gSXQgYWRkcyB0aGUgZGVwZW5kZW5jeSBvbiBgZXNidWlsZGAsXG4gICAqIGdpdGlnbm9yZS9ucG1pZ25vcmUsIGV0Yy5cbiAgICovXG4gIHByaXZhdGUgYWRkQnVuZGxpbmdTdXBwb3J0KCkge1xuICAgIGNvbnN0IGlnbm9yZUVudHJ5ID0gYC8ke3RoaXMuYnVuZGxlZGlyfS9gO1xuICAgIHRoaXMucHJvamVjdC5hZGRHaXRJZ25vcmUoaWdub3JlRW50cnkpO1xuICAgIHRoaXMucHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKGAhJHtpZ25vcmVFbnRyeX1gKTsgLy8gaW5jbHVkZSBpbiB0YXJiYWxsXG4gICAgY29uc3QgZGVwID0gdGhpcy5lc2J1aWxkVmVyc2lvblxuICAgICAgPyBgZXNidWlsZEAke3RoaXMuZXNidWlsZFZlcnNpb259YFxuICAgICAgOiBcImVzYnVpbGRcIjtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KGRlcCwgRGVwZW5kZW5jeVR5cGUuQlVJTEQpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVuZGxlVGFzazogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgd2F0Y2hUYXNrPzogVGFzaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG91dGZpbGU6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxpbmdPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4dGVybmFscz86IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzb3VyY2VtYXA/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgd2F0Y2hUYXNrPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBBZGRCdW5kbGVPcHRpb25zIGV4dGVuZHMgQnVuZGxpbmdPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0YXJnZXQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Project } from
|
|
2
|
-
import { Component } from
|
|
3
|
-
import { NodeProject } from
|
|
1
|
+
import { Project } from "..";
|
|
2
|
+
import { Component } from "../component";
|
|
3
|
+
import { NodeProject } from "../javascript";
|
|
4
4
|
/**
|
|
5
5
|
* @experimental
|
|
6
6
|
*/
|
|
@@ -161,6 +161,7 @@ export declare class Eslint extends Component {
|
|
|
161
161
|
/**
|
|
162
162
|
* (experimental) Adds an eslint plugin.
|
|
163
163
|
*
|
|
164
|
+
* @param plugins The names of plugins to add.
|
|
164
165
|
* @experimental
|
|
165
166
|
*/
|
|
166
167
|
addPlugins(...plugins: string[]): void;
|
package/lib/javascript/eslint.js
CHANGED
|
@@ -22,68 +22,74 @@ class Eslint extends component_1.Component {
|
|
|
22
22
|
this._plugins = new Array();
|
|
23
23
|
this._extends = new Array();
|
|
24
24
|
this.nodeProject = project;
|
|
25
|
-
project.addDevDeps(
|
|
25
|
+
project.addDevDeps("eslint@^8", "@typescript-eslint/eslint-plugin@^5", "@typescript-eslint/parser@^5", "eslint-import-resolver-node", "eslint-import-resolver-typescript", "eslint-plugin-import", "json-schema");
|
|
26
26
|
if (options.aliasMap) {
|
|
27
|
-
project.addDevDeps(
|
|
27
|
+
project.addDevDeps("eslint-import-resolver-alias");
|
|
28
28
|
}
|
|
29
29
|
const devdirs = (_b = options.devdirs) !== null && _b !== void 0 ? _b : [];
|
|
30
30
|
const dirs = [...options.dirs, ...devdirs];
|
|
31
|
-
const fileExtensions = (_c = options.fileExtensions) !== null && _c !== void 0 ? _c : [
|
|
32
|
-
this._allowDevDeps = new Set((devdirs !== null && devdirs !== void 0 ? devdirs : []).map(dir => `**/${dir}/**`));
|
|
31
|
+
const fileExtensions = (_c = options.fileExtensions) !== null && _c !== void 0 ? _c : [".ts"];
|
|
32
|
+
this._allowDevDeps = new Set((devdirs !== null && devdirs !== void 0 ? devdirs : []).map((dir) => `**/${dir}/**`));
|
|
33
33
|
const lintProjenRc = (_d = options.lintProjenRc) !== null && _d !== void 0 ? _d : true;
|
|
34
|
-
const eslint = project.addTask(
|
|
35
|
-
description:
|
|
34
|
+
const eslint = project.addTask("eslint", {
|
|
35
|
+
description: "Runs eslint against the codebase",
|
|
36
36
|
exec: [
|
|
37
|
-
|
|
38
|
-
`--ext ${fileExtensions.join(
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
"eslint",
|
|
38
|
+
`--ext ${fileExtensions.join(",")}`,
|
|
39
|
+
"--fix",
|
|
40
|
+
"--no-error-on-unmatched-pattern",
|
|
41
41
|
...dirs,
|
|
42
|
-
...lintProjenRc ? [common_1.PROJEN_RC] : [],
|
|
43
|
-
].join(
|
|
42
|
+
...(lintProjenRc ? [common_1.PROJEN_RC] : []),
|
|
43
|
+
].join(" "),
|
|
44
44
|
});
|
|
45
45
|
project.testTask.spawn(eslint);
|
|
46
46
|
// exclude some files
|
|
47
|
-
(_e = project.npmignore) === null || _e === void 0 ? void 0 : _e.exclude(
|
|
47
|
+
(_e = project.npmignore) === null || _e === void 0 ? void 0 : _e.exclude("/.eslintrc.json");
|
|
48
48
|
this._formattingRules = {
|
|
49
49
|
// see https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/indent.md
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
indent: ["off"],
|
|
51
|
+
"@typescript-eslint/indent": ["error", 2],
|
|
52
52
|
// Style
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
quotes: ["error", "single", { avoidEscape: true }],
|
|
54
|
+
"comma-dangle": ["error", "always-multiline"],
|
|
55
|
+
"comma-spacing": ["error", { before: false, after: true }],
|
|
56
|
+
"no-multi-spaces": ["error", { ignoreEOLComments: false }],
|
|
57
|
+
"array-bracket-spacing": ["error", "never"],
|
|
58
|
+
"array-bracket-newline": ["error", "consistent"],
|
|
59
|
+
"object-curly-spacing": ["error", "always"],
|
|
60
|
+
"object-curly-newline": ["error", { multiline: true, consistent: true }],
|
|
61
|
+
"object-property-newline": [
|
|
62
|
+
"error",
|
|
63
|
+
{ allowAllPropertiesOnSameLine: true },
|
|
64
|
+
],
|
|
65
|
+
"keyword-spacing": ["error"],
|
|
66
|
+
"brace-style": ["error", "1tbs", { allowSingleLine: true }],
|
|
67
|
+
"space-before-blocks": ["error"],
|
|
68
|
+
curly: ["error", "multi-line", "consistent"],
|
|
69
|
+
"@typescript-eslint/member-delimiter-style": ["error"],
|
|
67
70
|
// Require semicolons
|
|
68
|
-
|
|
71
|
+
semi: ["error", "always"],
|
|
69
72
|
// Max line lengths
|
|
70
|
-
|
|
73
|
+
"max-len": [
|
|
74
|
+
"error",
|
|
75
|
+
{
|
|
71
76
|
code: 150,
|
|
72
77
|
ignoreUrls: true,
|
|
73
78
|
ignoreStrings: true,
|
|
74
79
|
ignoreTemplateLiterals: true,
|
|
75
80
|
ignoreComments: true,
|
|
76
81
|
ignoreRegExpLiterals: true,
|
|
77
|
-
}
|
|
82
|
+
},
|
|
83
|
+
],
|
|
78
84
|
// Don't unnecessarily quote properties
|
|
79
|
-
|
|
85
|
+
"quote-props": ["error", "consistent-as-needed"],
|
|
80
86
|
};
|
|
81
87
|
this.rules = {
|
|
82
88
|
// Require use of the `import { foo } from 'bar';` form instead of `import foo = require('bar');`
|
|
83
|
-
|
|
89
|
+
"@typescript-eslint/no-require-imports": ["error"],
|
|
84
90
|
// Require all imported dependencies are actually declared in package.json
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
"import/no-extraneous-dependencies": [
|
|
92
|
+
"error",
|
|
87
93
|
{
|
|
88
94
|
// Only allow importing devDependencies from "devdirs".
|
|
89
95
|
devDependencies: () => this.renderDevDepsAllowList(),
|
|
@@ -92,72 +98,78 @@ class Eslint extends component_1.Component {
|
|
|
92
98
|
},
|
|
93
99
|
],
|
|
94
100
|
// Require all imported libraries actually resolve (!!required for import/no-extraneous-dependencies to work!!)
|
|
95
|
-
|
|
101
|
+
"import/no-unresolved": ["error"],
|
|
96
102
|
// Require an ordering on all imports
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
"import/order": [
|
|
104
|
+
"warn",
|
|
105
|
+
{
|
|
106
|
+
groups: ["builtin", "external"],
|
|
107
|
+
alphabetize: { order: "asc", caseInsensitive: true },
|
|
108
|
+
},
|
|
109
|
+
],
|
|
101
110
|
// Cannot import from the same module twice
|
|
102
|
-
|
|
111
|
+
"no-duplicate-imports": ["error"],
|
|
103
112
|
// Cannot shadow names
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
"no-shadow": ["off"],
|
|
114
|
+
"@typescript-eslint/no-shadow": ["error"],
|
|
106
115
|
// Required spacing in property declarations (copied from TSLint, defaults are good)
|
|
107
|
-
|
|
116
|
+
"key-spacing": ["error"],
|
|
108
117
|
// No multiple empty lines
|
|
109
|
-
|
|
118
|
+
"no-multiple-empty-lines": ["error"],
|
|
110
119
|
// One of the easiest mistakes to make
|
|
111
|
-
|
|
120
|
+
"@typescript-eslint/no-floating-promises": ["error"],
|
|
112
121
|
// Make sure that inside try/catch blocks, promises are 'return await'ed
|
|
113
122
|
// (must disable the base rule as it can report incorrect errors)
|
|
114
|
-
|
|
115
|
-
|
|
123
|
+
"no-return-await": ["off"],
|
|
124
|
+
"@typescript-eslint/return-await": ["error"],
|
|
116
125
|
// Useless diff results
|
|
117
|
-
|
|
126
|
+
"no-trailing-spaces": ["error"],
|
|
118
127
|
// Must use foo.bar instead of foo['bar'] if possible
|
|
119
|
-
|
|
128
|
+
"dot-notation": ["error"],
|
|
120
129
|
// Are you sure | is not a typo for || ?
|
|
121
|
-
|
|
130
|
+
"no-bitwise": ["error"],
|
|
122
131
|
// Member ordering
|
|
123
|
-
|
|
132
|
+
"@typescript-eslint/member-ordering": [
|
|
133
|
+
"error",
|
|
134
|
+
{
|
|
124
135
|
default: [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
136
|
+
"public-static-field",
|
|
137
|
+
"public-static-method",
|
|
138
|
+
"protected-static-field",
|
|
139
|
+
"protected-static-method",
|
|
140
|
+
"private-static-field",
|
|
141
|
+
"private-static-method",
|
|
142
|
+
"field",
|
|
132
143
|
// Constructors
|
|
133
|
-
|
|
144
|
+
"constructor",
|
|
134
145
|
// Methods
|
|
135
|
-
|
|
146
|
+
"method",
|
|
136
147
|
],
|
|
137
|
-
}
|
|
148
|
+
},
|
|
149
|
+
],
|
|
138
150
|
};
|
|
139
151
|
// Overrides for .projenrc.js
|
|
140
152
|
this.overrides = [
|
|
141
153
|
{
|
|
142
154
|
files: [common_1.PROJEN_RC],
|
|
143
155
|
rules: {
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
"@typescript-eslint/no-require-imports": "off",
|
|
157
|
+
"import/no-extraneous-dependencies": "off",
|
|
146
158
|
},
|
|
147
159
|
},
|
|
148
160
|
];
|
|
149
161
|
this.ignorePatterns = (_f = options.ignorePatterns) !== null && _f !== void 0 ? _f : [
|
|
150
|
-
|
|
162
|
+
"*.js",
|
|
151
163
|
`!${common_1.PROJEN_RC}`,
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
164
|
+
"*.d.ts",
|
|
165
|
+
"node_modules/",
|
|
166
|
+
"*.generated.ts",
|
|
167
|
+
"coverage",
|
|
156
168
|
];
|
|
157
|
-
const tsconfig = (_g = options.tsconfigPath) !== null && _g !== void 0 ? _g :
|
|
158
|
-
this.addPlugins(
|
|
159
|
-
this.addPlugins(
|
|
160
|
-
this.addExtends(
|
|
169
|
+
const tsconfig = (_g = options.tsconfigPath) !== null && _g !== void 0 ? _g : "./tsconfig.json";
|
|
170
|
+
this.addPlugins("@typescript-eslint");
|
|
171
|
+
this.addPlugins("import");
|
|
172
|
+
this.addExtends("plugin:import/typescript");
|
|
161
173
|
this.config = {
|
|
162
174
|
env: {
|
|
163
175
|
jest: true,
|
|
@@ -165,18 +177,18 @@ class Eslint extends component_1.Component {
|
|
|
165
177
|
},
|
|
166
178
|
root: true,
|
|
167
179
|
plugins: () => this._plugins,
|
|
168
|
-
parser:
|
|
180
|
+
parser: "@typescript-eslint/parser",
|
|
169
181
|
parserOptions: {
|
|
170
182
|
ecmaVersion: 2018,
|
|
171
|
-
sourceType:
|
|
183
|
+
sourceType: "module",
|
|
172
184
|
project: tsconfig,
|
|
173
185
|
},
|
|
174
186
|
extends: () => this._extends,
|
|
175
187
|
settings: {
|
|
176
|
-
|
|
177
|
-
|
|
188
|
+
"import/parsers": {
|
|
189
|
+
"@typescript-eslint/parser": [".ts", ".tsx"],
|
|
178
190
|
},
|
|
179
|
-
|
|
191
|
+
"import/resolver": {
|
|
180
192
|
...(options.aliasMap && {
|
|
181
193
|
alias: {
|
|
182
194
|
map: Object.entries(options.aliasMap).map(([k, v]) => [k, v]),
|
|
@@ -194,7 +206,10 @@ class Eslint extends component_1.Component {
|
|
|
194
206
|
rules: () => ({ ...this._formattingRules, ...this.rules }),
|
|
195
207
|
overrides: this.overrides,
|
|
196
208
|
};
|
|
197
|
-
new json_1.JsonFile(project,
|
|
209
|
+
new json_1.JsonFile(project, ".eslintrc.json", {
|
|
210
|
+
obj: this.config,
|
|
211
|
+
marker: false,
|
|
212
|
+
});
|
|
198
213
|
// if the user enabled prettier explicitly _or_ if the project has a
|
|
199
214
|
// `Prettier` component, we shall tweak our configuration accordingly.
|
|
200
215
|
if (options.prettier || prettier_1.Prettier.of(project)) {
|
|
@@ -223,6 +238,7 @@ class Eslint extends component_1.Component {
|
|
|
223
238
|
/**
|
|
224
239
|
* (experimental) Adds an eslint plugin.
|
|
225
240
|
*
|
|
241
|
+
* @param plugins The names of plugins to add.
|
|
226
242
|
* @experimental
|
|
227
243
|
*/
|
|
228
244
|
addPlugins(...plugins) {
|
|
@@ -266,12 +282,12 @@ class Eslint extends component_1.Component {
|
|
|
266
282
|
* Enables prettier for code formatting.
|
|
267
283
|
*/
|
|
268
284
|
enablePrettier() {
|
|
269
|
-
this.nodeProject.addDevDeps(
|
|
270
|
-
this.addPlugins(
|
|
285
|
+
this.nodeProject.addDevDeps("prettier", "eslint-plugin-prettier", "eslint-config-prettier");
|
|
286
|
+
this.addPlugins("prettier");
|
|
271
287
|
this._formattingRules = {
|
|
272
|
-
|
|
288
|
+
"prettier/prettier": ["error"],
|
|
273
289
|
};
|
|
274
|
-
this.addExtends(
|
|
290
|
+
this.addExtends("prettier", "plugin:prettier/recommended");
|
|
275
291
|
}
|
|
276
292
|
renderDevDepsAllowList() {
|
|
277
293
|
return Array.from(this._allowDevDeps);
|
|
@@ -279,5 +295,5 @@ class Eslint extends component_1.Component {
|
|
|
279
295
|
}
|
|
280
296
|
exports.Eslint = Eslint;
|
|
281
297
|
_a = JSII_RTTI_SYMBOL_1;
|
|
282
|
-
Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esc0NBQXNDO0FBQ3RDLDRDQUF5QztBQUV6QyxrQ0FBbUM7QUFDbkMseUNBQXNDOzs7Ozs7QUE0Q3RDLE1BQWEsTUFBTyxTQUFRLHFCQUFTOzs7O0lBMEJuQyxZQUFZLE9BQW9CLEVBQUUsT0FBc0I7O1FBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxBLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBTTlDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxVQUFVLENBQ2hCLFdBQVcsRUFDWCxxQ0FBcUMsRUFDckMsOEJBQThCLEVBQzlCLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFDbkMsc0JBQXNCLEVBQ3RCLGFBQWEsQ0FDZCxDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNwRDtRQUVELE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUV0QyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sY0FBYyxTQUFHLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sWUFBWSxTQUFHLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLElBQUksQ0FBQztRQUVsRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUN2QyxXQUFXLEVBQUUsa0NBQWtDO1lBQy9DLElBQUksRUFBRTtnQkFDSixRQUFRO2dCQUNSLFNBQVMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbkMsT0FBTztnQkFDUCxpQ0FBaUM7Z0JBQ2pDLEdBQUcsSUFBSTtnQkFDUCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDbkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1osQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0IscUJBQXFCO1FBQ3JCLE1BQUEsT0FBTyxDQUFDLFNBQVMsMENBQUUsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1FBRTlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRztZQUN0QixxSEFBcUg7WUFDckgsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pCLDJCQUEyQixFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUV6QyxRQUFRO1lBQ1IsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNwRCxjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7WUFDN0MsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDMUQsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUMxRCx1QkFBdUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7WUFDM0MsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1lBQ2hELHNCQUFzQixFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUMzQyxzQkFBc0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3hFLHlCQUF5QixFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsNEJBQTRCLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDNUUsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDNUIsYUFBYSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMzRCxxQkFBcUIsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQztZQUM5QywyQ0FBMkMsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUV0RCxxQkFBcUI7WUFDckIsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUUzQixtQkFBbUI7WUFDbkIsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFO29CQUNuQixJQUFJLEVBQUUsR0FBRztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsYUFBYSxFQUFFLElBQUk7b0JBQ25CLHNCQUFzQixFQUFFLElBQUk7b0JBQzVCLGNBQWMsRUFBRSxJQUFJO29CQUNwQixvQkFBb0IsRUFBRSxJQUFJO2lCQUMzQixDQUFDO1lBRUYsdUNBQXVDO1lBQ3ZDLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxzQkFBc0IsQ0FBQztTQUNqRCxDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLGlHQUFpRztZQUNqRyx1Q0FBdUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUVsRCwwRUFBMEU7WUFDMUUsbUNBQW1DLEVBQUU7Z0JBQ25DLE9BQU87Z0JBQ1A7b0JBQ0UsdURBQXVEO29CQUN2RCxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO29CQUNwRCxvQkFBb0IsRUFBRSxLQUFLO29CQUMzQixnQkFBZ0IsRUFBRSxJQUFJO2lCQUN2QjthQUNGO1lBRUQsK0dBQStHO1lBQy9HLHNCQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDO1lBRWpDLHFDQUFxQztZQUNyQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUM7b0JBQy9CLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRTtpQkFDckQsQ0FBQztZQUVGLDJDQUEyQztZQUMzQyxzQkFBc0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUVqQyxzQkFBc0I7WUFDdEIsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BCLDhCQUE4QixFQUFFLENBQUMsT0FBTyxDQUFDO1lBRXpDLG9GQUFvRjtZQUNwRixhQUFhLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFFeEIsMEJBQTBCO1lBQzFCLHlCQUF5QixFQUFFLENBQUMsT0FBTyxDQUFDO1lBRXBDLHNDQUFzQztZQUN0Qyx5Q0FBeUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUVwRCx3RUFBd0U7WUFDeEUsaUVBQWlFO1lBQ2pFLGlCQUFpQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzFCLGlDQUFpQyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBRTVDLHVCQUF1QjtZQUN2QixvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUUvQixxREFBcUQ7WUFDckQsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBRXpCLHdDQUF3QztZQUN4QyxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFFdkIsa0JBQWtCO1lBQ2xCLG9DQUFvQyxFQUFFLENBQUMsT0FBTyxFQUFFO29CQUM5QyxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFFdkIsT0FBTzt3QkFFUCxlQUFlO3dCQUNmLGFBQWE7d0JBRWIsVUFBVTt3QkFDVixRQUFRO3FCQUNUO2lCQUNGLENBQUM7U0FDSCxDQUFDO1FBRUYsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZjtnQkFDRSxLQUFLLEVBQUUsQ0FBQyxrQkFBUyxDQUFDO2dCQUNsQixLQUFLLEVBQUU7b0JBQ0wsdUNBQXVDLEVBQUUsS0FBSztvQkFDOUMsbUNBQW1DLEVBQUUsS0FBSztpQkFDM0M7YUFDRjtTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxTQUFHLE9BQU8sQ0FBQyxjQUFjLG1DQUFJO1lBQzlDLE1BQU07WUFDTixJQUFJLGtCQUFTLEVBQUU7WUFDZixRQUFRO1lBQ1IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixVQUFVO1NBQ1gsQ0FBQztRQUVGLE1BQU0sUUFBUSxTQUFHLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLGlCQUFpQixDQUFDO1FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJO2FBQ1g7WUFDRCxJQUFJLEVBQUUsSUFBSTtZQUNWLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUM1QixNQUFNLEVBQUUsMkJBQTJCO1lBQ25DLGFBQWEsRUFBRTtnQkFDYixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzVCLFFBQVEsRUFBRTtnQkFDUixnQkFBZ0IsRUFBRTtvQkFDaEIsMkJBQTJCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO2lCQUM3QztnQkFDRCxpQkFBaUIsRUFBRTtvQkFDakIsR0FBRyxDQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUk7d0JBQ3ZCLEtBQUssRUFBRTs0QkFDTCxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUM3RCxVQUFVLEVBQUUsT0FBTyxDQUFDLGVBQWU7eUJBQ3BDO3FCQUNGLENBQUM7b0JBQ0YsSUFBSSxFQUFFLEVBQUU7b0JBQ1IsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixHQUFHLENBQUUsT0FBTyxDQUFDLGdCQUFnQixLQUFLLEtBQUssSUFBSSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBRTtxQkFDdEU7aUJBQ0Y7YUFDRjtZQUNELGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzFELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO1FBRUYsSUFBSSxlQUFRLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFN0Usb0VBQW9FO1FBQ3BFLHNFQUFzRTtRQUN0RSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksbUJBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQzs7Ozs7O0lBM1BNLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFZLEVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxNQUFNLENBQUM7UUFDcEUsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7Ozs7SUEyUE0sUUFBUSxDQUFDLEtBQThCO1FBQzVDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7Ozs7O0lBR00sVUFBVSxDQUFDLEdBQUcsT0FBaUI7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7Ozs7SUFHTSxXQUFXLENBQUMsUUFBd0I7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7Ozs7O0lBR00sZ0JBQWdCLENBQUMsT0FBZTtRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7O0lBR00sVUFBVSxDQUFDLEdBQUcsVUFBb0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7Ozs7O0lBR00sWUFBWSxDQUFDLE9BQWU7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssY0FBYztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDekIsVUFBVSxFQUNWLHdCQUF3QixFQUN4Qix3QkFBd0IsQ0FDekIsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RCLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDO1NBQy9CLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQXJUSCx3QkFzVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgUFJPSkVOX1JDIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJy4uL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgSnNvbkZpbGUgfSBmcm9tICcuLi9qc29uJztcbmltcG9ydCB7IFByZXR0aWVyIH0gZnJvbSAnLi9wcmV0dGllcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXNsaW50T3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRpcnM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBkZXZkaXJzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZpbGVFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGlnbm9yZVBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsaW50UHJvamVuUmM/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHJldHRpZXI/OiBib29sZWFuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhbGlhc01hcD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFsaWFzRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0c0Fsd2F5c1RyeVR5cGVzPzogYm9vbGVhbjtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgRXNsaW50T3ZlcnJpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmaWxlczogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBydWxlczogeyBbcnVsZTogc3RyaW5nXTogYW55IH07XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBFc2xpbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEVzbGludCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNFc2xpbnQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBFc2xpbnQgPT4gYyBpbnN0YW5jZW9mIEVzbGludDtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNFc2xpbnQpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgcnVsZXM6IHsgW3J1bGU6IHN0cmluZ106IGFueVtdIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJyaWRlczogRXNsaW50T3ZlcnJpZGVbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBhbnk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBpZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBfZm9ybWF0dGluZ1J1bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxvd0RldkRlcHM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbHVnaW5zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5kcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVByb2plY3Q6IE5vZGVQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBFc2xpbnRPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLm5vZGVQcm9qZWN0ID0gcHJvamVjdDtcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgICdlc2xpbnRAXjgnLFxuICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luQF41JyxcbiAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyQF41JyxcbiAgICAgICdlc2xpbnQtaW1wb3J0LXJlc29sdmVyLW5vZGUnLFxuICAgICAgJ2VzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdCcsXG4gICAgICAnZXNsaW50LXBsdWdpbi1pbXBvcnQnLFxuICAgICAgJ2pzb24tc2NoZW1hJyxcbiAgICApO1xuXG4gICAgaWYgKG9wdGlvbnMuYWxpYXNNYXApIHtcbiAgICAgIHByb2plY3QuYWRkRGV2RGVwcygnZXNsaW50LWltcG9ydC1yZXNvbHZlci1hbGlhcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGRldmRpcnMgPSBvcHRpb25zLmRldmRpcnMgPz8gW107XG5cbiAgICBjb25zdCBkaXJzID0gWy4uLm9wdGlvbnMuZGlycywgLi4uZGV2ZGlyc107XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbnMgPSBvcHRpb25zLmZpbGVFeHRlbnNpb25zID8/IFsnLnRzJ107XG5cbiAgICB0aGlzLl9hbGxvd0RldkRlcHMgPSBuZXcgU2V0KChkZXZkaXJzID8/IFtdKS5tYXAoZGlyID0+IGAqKi8ke2Rpcn0vKipgKSk7XG5cbiAgICBjb25zdCBsaW50UHJvamVuUmMgPSBvcHRpb25zLmxpbnRQcm9qZW5SYyA/PyB0cnVlO1xuXG4gICAgY29uc3QgZXNsaW50ID0gcHJvamVjdC5hZGRUYXNrKCdlc2xpbnQnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1J1bnMgZXNsaW50IGFnYWluc3QgdGhlIGNvZGViYXNlJyxcbiAgICAgIGV4ZWM6IFtcbiAgICAgICAgJ2VzbGludCcsXG4gICAgICAgIGAtLWV4dCAke2ZpbGVFeHRlbnNpb25zLmpvaW4oJywnKX1gLFxuICAgICAgICAnLS1maXgnLFxuICAgICAgICAnLS1uby1lcnJvci1vbi11bm1hdGNoZWQtcGF0dGVybicsXG4gICAgICAgIC4uLmRpcnMsXG4gICAgICAgIC4uLmxpbnRQcm9qZW5SYyA/IFtQUk9KRU5fUkNdIDogW10sXG4gICAgICBdLmpvaW4oJyAnKSxcbiAgICB9KTtcblxuICAgIHByb2plY3QudGVzdFRhc2suc3Bhd24oZXNsaW50KTtcblxuICAgIC8vIGV4Y2x1ZGUgc29tZSBmaWxlc1xuICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKCcvLmVzbGludHJjLmpzb24nKTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdSdWxlcyA9IHtcbiAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc2xpbnQvYmxvYi9tYXN0ZXIvcGFja2FnZXMvZXNsaW50LXBsdWdpbi9kb2NzL3J1bGVzL2luZGVudC5tZFxuICAgICAgJ2luZGVudCc6IFsnb2ZmJ10sXG4gICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCc6IFsnZXJyb3InLCAyXSxcblxuICAgICAgLy8gU3R5bGVcbiAgICAgICdxdW90ZXMnOiBbJ2Vycm9yJywgJ3NpbmdsZScsIHsgYXZvaWRFc2NhcGU6IHRydWUgfV0sXG4gICAgICAnY29tbWEtZGFuZ2xlJzogWydlcnJvcicsICdhbHdheXMtbXVsdGlsaW5lJ10sIC8vIGVuc3VyZXMgY2xlYW4gZGlmZnMsIHNlZSBodHRwczovL21lZGl1bS5jb20vQG5pa2dyYWYvd2h5LXlvdS1zaG91bGQtZW5mb3JjZS1kYW5nbGluZy1jb21tYXMtZm9yLW11bHRpbGluZS1zdGF0ZW1lbnRzLWQwMzRjOThlMzZmOFxuICAgICAgJ2NvbW1hLXNwYWNpbmcnOiBbJ2Vycm9yJywgeyBiZWZvcmU6IGZhbHNlLCBhZnRlcjogdHJ1ZSB9XSwgLy8gc3BhY2UgYWZ0ZXIsIG5vIHNwYWNlIGJlZm9yZVxuICAgICAgJ25vLW11bHRpLXNwYWNlcyc6IFsnZXJyb3InLCB7IGlnbm9yZUVPTENvbW1lbnRzOiBmYWxzZSB9XSwgLy8gbm8gbXVsdGkgc3BhY2VzXG4gICAgICAnYXJyYXktYnJhY2tldC1zcGFjaW5nJzogWydlcnJvcicsICduZXZlciddLCAvLyBbMSwgMiwgM11cbiAgICAgICdhcnJheS1icmFja2V0LW5ld2xpbmUnOiBbJ2Vycm9yJywgJ2NvbnNpc3RlbnQnXSwgLy8gZW5mb3JjZSBjb25zaXN0ZW50IGxpbmUgYnJlYWtzIGJldHdlZW4gYnJhY2tldHNcbiAgICAgICdvYmplY3QtY3VybHktc3BhY2luZyc6IFsnZXJyb3InLCAnYWx3YXlzJ10sIC8vIHsga2V5OiAndmFsdWUnIH1cbiAgICAgICdvYmplY3QtY3VybHktbmV3bGluZSc6IFsnZXJyb3InLCB7IG11bHRpbGluZTogdHJ1ZSwgY29uc2lzdGVudDogdHJ1ZSB9XSwgLy8gZW5mb3JjZSBjb25zaXN0ZW50IGxpbmUgYnJlYWtzIGJldHdlZW4gYnJhY2VzXG4gICAgICAnb2JqZWN0LXByb3BlcnR5LW5ld2xpbmUnOiBbJ2Vycm9yJywgeyBhbGxvd0FsbFByb3BlcnRpZXNPblNhbWVMaW5lOiB0cnVlIH1dLCAvLyBlbmZvcmNlIFwic2FtZSBsaW5lXCIgb3IgXCJtdWx0aXBsZSBsaW5lXCIgb24gb2JqZWN0IHByb3BlcnRpZXNcbiAgICAgICdrZXl3b3JkLXNwYWNpbmcnOiBbJ2Vycm9yJ10sIC8vIHJlcXVpcmUgYSBzcGFjZSBiZWZvcmUgJiBhZnRlciBrZXl3b3Jkc1xuICAgICAgJ2JyYWNlLXN0eWxlJzogWydlcnJvcicsICcxdGJzJywgeyBhbGxvd1NpbmdsZUxpbmU6IHRydWUgfV0sIC8vIGVuZm9yY2Ugb25lIHRydWUgYnJhY2Ugc3R5bGVcbiAgICAgICdzcGFjZS1iZWZvcmUtYmxvY2tzJzogWydlcnJvciddLCAvLyByZXF1aXJlIHNwYWNlIGJlZm9yZSBibG9ja3NcbiAgICAgICdjdXJseSc6IFsnZXJyb3InLCAnbXVsdGktbGluZScsICdjb25zaXN0ZW50J10sIC8vIHJlcXVpcmUgY3VybHkgYnJhY2VzIGZvciBtdWx0aWxpbmUgY29udHJvbCBzdGF0ZW1lbnRzXG4gICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1kZWxpbWl0ZXItc3R5bGUnOiBbJ2Vycm9yJ10sXG5cbiAgICAgIC8vIFJlcXVpcmUgc2VtaWNvbG9uc1xuICAgICAgJ3NlbWknOiBbJ2Vycm9yJywgJ2Fsd2F5cyddLFxuXG4gICAgICAvLyBNYXggbGluZSBsZW5ndGhzXG4gICAgICAnbWF4LWxlbic6IFsnZXJyb3InLCB7XG4gICAgICAgIGNvZGU6IDE1MCxcbiAgICAgICAgaWdub3JlVXJsczogdHJ1ZSwgLy8gTW9zdCBjb21tb24gcmVhc29uIHRvIGRpc2FibGUgaXRcbiAgICAgICAgaWdub3JlU3RyaW5nczogdHJ1ZSwgLy8gVGhlc2UgYXJlIG5vdCBmYW50YXN0aWMgYnV0IG5lY2Vzc2FyeSBmb3IgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgaWdub3JlVGVtcGxhdGVMaXRlcmFsczogdHJ1ZSxcbiAgICAgICAgaWdub3JlQ29tbWVudHM6IHRydWUsXG4gICAgICAgIGlnbm9yZVJlZ0V4cExpdGVyYWxzOiB0cnVlLFxuICAgICAgfV0sXG5cbiAgICAgIC8vIERvbid0IHVubmVjZXNzYXJpbHkgcXVvdGUgcHJvcGVydGllc1xuICAgICAgJ3F1b3RlLXByb3BzJzogWydlcnJvcicsICdjb25zaXN0ZW50LWFzLW5lZWRlZCddLFxuICAgIH07XG5cbiAgICB0aGlzLnJ1bGVzID0ge1xuICAgICAgLy8gUmVxdWlyZSB1c2Ugb2YgdGhlIGBpbXBvcnQgeyBmb28gfSBmcm9tICdiYXInO2AgZm9ybSBpbnN0ZWFkIG9mIGBpbXBvcnQgZm9vID0gcmVxdWlyZSgnYmFyJyk7YFxuICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMnOiBbJ2Vycm9yJ10sXG5cbiAgICAgIC8vIFJlcXVpcmUgYWxsIGltcG9ydGVkIGRlcGVuZGVuY2llcyBhcmUgYWN0dWFsbHkgZGVjbGFyZWQgaW4gcGFja2FnZS5qc29uXG4gICAgICAnaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogW1xuICAgICAgICAnZXJyb3InLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gT25seSBhbGxvdyBpbXBvcnRpbmcgZGV2RGVwZW5kZW5jaWVzIGZyb20gXCJkZXZkaXJzXCIuXG4gICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAoKSA9PiB0aGlzLnJlbmRlckRldkRlcHNBbGxvd0xpc3QoKSxcbiAgICAgICAgICBvcHRpb25hbERlcGVuZGVuY2llczogZmFsc2UsIC8vIERpc2FsbG93IGltcG9ydGluZyBvcHRpb25hbCBkZXBlbmRlbmNpZXMgKHRob3NlIHNob3VsZG4ndCBiZSBpbiB1c2UgaW4gdGhlIHByb2plY3QpXG4gICAgICAgICAgcGVlckRlcGVuZGVuY2llczogdHJ1ZSwgLy8gQWxsb3cgaW1wb3J0aW5nIHBlZXIgZGVwZW5kZW5jaWVzICh0aGF0IGFyZW4ndCBhbHNvIGRpcmVjdCBkZXBlbmRlbmNpZXMpXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBSZXF1aXJlIGFsbCBpbXBvcnRlZCBsaWJyYXJpZXMgYWN0dWFsbHkgcmVzb2x2ZSAoISFyZXF1aXJlZCBmb3IgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzIHRvIHdvcmshISlcbiAgICAgICdpbXBvcnQvbm8tdW5yZXNvbHZlZCc6IFsnZXJyb3InXSxcblxuICAgICAgLy8gUmVxdWlyZSBhbiBvcmRlcmluZyBvbiBhbGwgaW1wb3J0c1xuICAgICAgJ2ltcG9ydC9vcmRlcic6IFsnd2FybicsIHtcbiAgICAgICAgZ3JvdXBzOiBbJ2J1aWx0aW4nLCAnZXh0ZXJuYWwnXSxcbiAgICAgICAgYWxwaGFiZXRpemU6IHsgb3JkZXI6ICdhc2MnLCBjYXNlSW5zZW5zaXRpdmU6IHRydWUgfSxcbiAgICAgIH1dLFxuXG4gICAgICAvLyBDYW5ub3QgaW1wb3J0IGZyb20gdGhlIHNhbWUgbW9kdWxlIHR3aWNlXG4gICAgICAnbm8tZHVwbGljYXRlLWltcG9ydHMnOiBbJ2Vycm9yJ10sXG5cbiAgICAgIC8vIENhbm5vdCBzaGFkb3cgbmFtZXNcbiAgICAgICduby1zaGFkb3cnOiBbJ29mZiddLFxuICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3cnOiBbJ2Vycm9yJ10sXG5cbiAgICAgIC8vIFJlcXVpcmVkIHNwYWNpbmcgaW4gcHJvcGVydHkgZGVjbGFyYXRpb25zIChjb3BpZWQgZnJvbSBUU0xpbnQsIGRlZmF1bHRzIGFyZSBnb29kKVxuICAgICAgJ2tleS1zcGFjaW5nJzogWydlcnJvciddLFxuXG4gICAgICAvLyBObyBtdWx0aXBsZSBlbXB0eSBsaW5lc1xuICAgICAgJ25vLW11bHRpcGxlLWVtcHR5LWxpbmVzJzogWydlcnJvciddLFxuXG4gICAgICAvLyBPbmUgb2YgdGhlIGVhc2llc3QgbWlzdGFrZXMgdG8gbWFrZVxuICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlcyc6IFsnZXJyb3InXSxcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgaW5zaWRlIHRyeS9jYXRjaCBibG9ja3MsIHByb21pc2VzIGFyZSAncmV0dXJuIGF3YWl0J2VkXG4gICAgICAvLyAobXVzdCBkaXNhYmxlIHRoZSBiYXNlIHJ1bGUgYXMgaXQgY2FuIHJlcG9ydCBpbmNvcnJlY3QgZXJyb3JzKVxuICAgICAgJ25vLXJldHVybi1hd2FpdCc6IFsnb2ZmJ10sXG4gICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3JldHVybi1hd2FpdCc6IFsnZXJyb3InXSxcblxuICAgICAgLy8gVXNlbGVzcyBkaWZmIHJlc3VsdHNcbiAgICAgICduby10cmFpbGluZy1zcGFjZXMnOiBbJ2Vycm9yJ10sXG5cbiAgICAgIC8vIE11c3QgdXNlIGZvby5iYXIgaW5zdGVhZCBvZiBmb29bJ2JhciddIGlmIHBvc3NpYmxlXG4gICAgICAnZG90LW5vdGF0aW9uJzogWydlcnJvciddLFxuXG4gICAgICAvLyBBcmUgeW91IHN1cmUgfCBpcyBub3QgYSB0eXBvIGZvciB8fCA/XG4gICAgICAnbm8tYml0d2lzZSc6IFsnZXJyb3InXSxcblxuICAgICAgLy8gTWVtYmVyIG9yZGVyaW5nXG4gICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyc6IFsnZXJyb3InLCB7XG4gICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICAncHVibGljLXN0YXRpYy1maWVsZCcsXG4gICAgICAgICAgJ3B1YmxpYy1zdGF0aWMtbWV0aG9kJyxcbiAgICAgICAgICAncHJvdGVjdGVkLXN0YXRpYy1maWVsZCcsXG4gICAgICAgICAgJ3Byb3RlY3RlZC1zdGF0aWMtbWV0aG9kJyxcbiAgICAgICAgICAncHJpdmF0ZS1zdGF0aWMtZmllbGQnLFxuICAgICAgICAgICdwcml2YXRlLXN0YXRpYy1tZXRob2QnLFxuXG4gICAgICAgICAgJ2ZpZWxkJyxcblxuICAgICAgICAgIC8vIENvbnN0cnVjdG9yc1xuICAgICAgICAgICdjb25zdHJ1Y3RvcicsIC8vID0gW1wicHVibGljLWNvbnN0cnVjdG9yXCIsIFwicHJvdGVjdGVkLWNvbnN0cnVjdG9yXCIsIFwicHJpdmF0ZS1jb25zdHJ1Y3RvclwiXVxuXG4gICAgICAgICAgLy8gTWV0aG9kc1xuICAgICAgICAgICdtZXRob2QnLFxuICAgICAgICBdLFxuICAgICAgfV0sXG4gICAgfTtcblxuICAgIC8vIE92ZXJyaWRlcyBmb3IgLnByb2plbnJjLmpzXG4gICAgdGhpcy5vdmVycmlkZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpbGVzOiBbUFJPSkVOX1JDXSxcbiAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyc6ICdvZmYnLFxuICAgICAgICAgICdpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnOiAnb2ZmJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHRoaXMuaWdub3JlUGF0dGVybnMgPSBvcHRpb25zLmlnbm9yZVBhdHRlcm5zID8/IFtcbiAgICAgICcqLmpzJyxcbiAgICAgIGAhJHtQUk9KRU5fUkN9YCxcbiAgICAgICcqLmQudHMnLFxuICAgICAgJ25vZGVfbW9kdWxlcy8nLFxuICAgICAgJyouZ2VuZXJhdGVkLnRzJyxcbiAgICAgICdjb3ZlcmFnZScsXG4gICAgXTtcblxuICAgIGNvbnN0IHRzY29uZmlnID0gb3B0aW9ucy50c2NvbmZpZ1BhdGggPz8gJy4vdHNjb25maWcuanNvbic7XG5cbiAgICB0aGlzLmFkZFBsdWdpbnMoJ0B0eXBlc2NyaXB0LWVzbGludCcpO1xuICAgIHRoaXMuYWRkUGx1Z2lucygnaW1wb3J0Jyk7XG4gICAgdGhpcy5hZGRFeHRlbmRzKCdwbHVnaW46aW1wb3J0L3R5cGVzY3JpcHQnKTtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZW52OiB7XG4gICAgICAgIGplc3Q6IHRydWUsXG4gICAgICAgIG5vZGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgcm9vdDogdHJ1ZSxcbiAgICAgIHBsdWdpbnM6ICgpID0+IHRoaXMuX3BsdWdpbnMsXG4gICAgICBwYXJzZXI6ICdAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyJyxcbiAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgZWNtYVZlcnNpb246IDIwMTgsXG4gICAgICAgIHNvdXJjZVR5cGU6ICdtb2R1bGUnLFxuICAgICAgICBwcm9qZWN0OiB0c2NvbmZpZyxcbiAgICAgIH0sXG4gICAgICBleHRlbmRzOiAoKSA9PiB0aGlzLl9leHRlbmRzLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgJ2ltcG9ydC9wYXJzZXJzJzoge1xuICAgICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyJzogWycudHMnLCAnLnRzeCddLFxuICAgICAgICB9LFxuICAgICAgICAnaW1wb3J0L3Jlc29sdmVyJzoge1xuICAgICAgICAgIC4uLiggb3B0aW9ucy5hbGlhc01hcCAmJiB7XG4gICAgICAgICAgICBhbGlhczoge1xuICAgICAgICAgICAgICBtYXA6IE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuYWxpYXNNYXApLm1hcCgoW2ssIHZdKSA9PiBbaywgdl0pLFxuICAgICAgICAgICAgICBleHRlbnNpb25zOiBvcHRpb25zLmFsaWFzRXh0ZW5zaW9ucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbm9kZToge30sXG4gICAgICAgICAgdHlwZXNjcmlwdDoge1xuICAgICAgICAgICAgcHJvamVjdDogdHNjb25maWcsXG4gICAgICAgICAgICAuLi4oIG9wdGlvbnMudHNBbHdheXNUcnlUeXBlcyAhPT0gZmFsc2UgJiYgeyBhbHdheXNUcnlUeXBlczogdHJ1ZSB9ICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpZ25vcmVQYXR0ZXJuczogdGhpcy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIHJ1bGVzOiAoKSA9PiAoeyAuLi50aGlzLl9mb3JtYXR0aW5nUnVsZXMsIC4uLnRoaXMucnVsZXMgfSksXG4gICAgICBvdmVycmlkZXM6IHRoaXMub3ZlcnJpZGVzLFxuICAgIH07XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgJy5lc2xpbnRyYy5qc29uJywgeyBvYmo6IHRoaXMuY29uZmlnLCBtYXJrZXI6IGZhbHNlIH0pO1xuXG4gICAgLy8gaWYgdGhlIHVzZXIgZW5hYmxlZCBwcmV0dGllciBleHBsaWNpdGx5IF9vcl8gaWYgdGhlIHByb2plY3QgaGFzIGFcbiAgICAvLyBgUHJldHRpZXJgIGNvbXBvbmVudCwgd2Ugc2hhbGwgdHdlYWsgb3VyIGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nbHkuXG4gICAgaWYgKG9wdGlvbnMucHJldHRpZXIgfHwgUHJldHRpZXIub2YocHJvamVjdCkpIHtcbiAgICAgIHRoaXMuZW5hYmxlUHJldHRpZXIoKTtcbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRSdWxlcyhydWxlczogeyBbcnVsZTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhydWxlcykpIHtcbiAgICAgIHRoaXMucnVsZXNba10gPSB2O1xuICAgIH1cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkUGx1Z2lucyguLi5wbHVnaW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3BsdWdpbnMucHVzaCguLi5wbHVnaW5zKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGRPdmVycmlkZShvdmVycmlkZTogRXNsaW50T3ZlcnJpZGUpIHtcbiAgICB0aGlzLm92ZXJyaWRlcy5wdXNoKG92ZXJyaWRlKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkSWdub3JlUGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlnbm9yZVBhdHRlcm5zLnB1c2gocGF0dGVybik7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkRXh0ZW5kcyguLi5leHRlbmRMaXN0OiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2V4dGVuZHMucHVzaCguLi5leHRlbmRMaXN0KTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhbGxvd0RldkRlcHMocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWxsb3dEZXZEZXBzLmFkZChwYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHByZXR0aWVyIGZvciBjb2RlIGZvcm1hdHRpbmcuXG4gICAqL1xuICBwcml2YXRlIGVuYWJsZVByZXR0aWVyKCkge1xuICAgIHRoaXMubm9kZVByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgICdwcmV0dGllcicsXG4gICAgICAnZXNsaW50LXBsdWdpbi1wcmV0dGllcicsXG4gICAgICAnZXNsaW50LWNvbmZpZy1wcmV0dGllcicsXG4gICAgKTtcblxuICAgIHRoaXMuYWRkUGx1Z2lucygncHJldHRpZXInKTtcblxuICAgIHRoaXMuX2Zvcm1hdHRpbmdSdWxlcyA9IHtcbiAgICAgICdwcmV0dGllci9wcmV0dGllcic6IFsnZXJyb3InXSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRFeHRlbmRzKCdwcmV0dGllcicsICdwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRGV2RGVwc0FsbG93TGlzdCgpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9hbGxvd0RldkRlcHMpO1xuICB9XG59XG4iXX0=
|
|
298
|
+
Eslint[_a] = { fqn: "projen.javascript.Eslint", version: "0.49.2" };
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmFzY3JpcHQvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esc0NBQXNDO0FBQ3RDLDRDQUF5QztBQUV6QyxrQ0FBbUM7QUFDbkMseUNBQXNDOzs7Ozs7QUE0Q3RDLE1BQWEsTUFBTyxTQUFRLHFCQUFTOzs7O0lBeUJuQyxZQUFZLE9BQW9CLEVBQUUsT0FBc0I7O1FBQ3RELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxBLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBTTlDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxVQUFVLENBQ2hCLFdBQVcsRUFDWCxxQ0FBcUMsRUFDckMsOEJBQThCLEVBQzlCLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFDbkMsc0JBQXNCLEVBQ3RCLGFBQWEsQ0FDZCxDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNwRDtRQUVELE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUV0QyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sY0FBYyxTQUFHLE9BQU8sQ0FBQyxjQUFjLG1DQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FB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QUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUN6QixVQUFVLEVBQ1Ysd0JBQXdCLEVBQ3hCLHdCQUF3QixDQUN6QixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDL0IsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBblVILHdCQW9VQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFBST0pFTl9SQyB9IGZyb20gXCIuLi9jb21tb25cIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IEpzb25GaWxlIH0gZnJvbSBcIi4uL2pzb25cIjtcbmltcG9ydCB7IFByZXR0aWVyIH0gZnJvbSBcIi4vcHJldHRpZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFc2xpbnRPcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRldmRpcnM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZmlsZUV4dGVuc2lvbnM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaWdub3JlUGF0dGVybnM/OiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxpbnRQcm9qZW5SYz86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwcmV0dGllcj86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFsaWFzTWFwPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYWxpYXNFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRzQWx3YXlzVHJ5VHlwZXM/OiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBFc2xpbnRPdmVycmlkZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJ1bGVzOiB7IFtydWxlOiBzdHJpbmddOiBhbnkgfTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEVzbGludCBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IEVzbGludCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNFc2xpbnQgPSAoYzogQ29tcG9uZW50KTogYyBpcyBFc2xpbnQgPT4gYyBpbnN0YW5jZW9mIEVzbGludDtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNFc2xpbnQpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgcnVsZXM6IHsgW3J1bGU6IHN0cmluZ106IGFueVtdIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJyaWRlczogRXNsaW50T3ZlcnJpZGVbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBhbnk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBpZ25vcmVQYXR0ZXJuczogc3RyaW5nW107XG5cbiAgcHJpdmF0ZSBfZm9ybWF0dGluZ1J1bGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGxvd0RldkRlcHM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9wbHVnaW5zID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5kcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9kZVByb2plY3Q6IE5vZGVQcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBFc2xpbnRPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLm5vZGVQcm9qZWN0ID0gcHJvamVjdDtcblxuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgIFwiZXNsaW50QF44XCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luQF41XCIsXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJAXjVcIixcbiAgICAgIFwiZXNsaW50LWltcG9ydC1yZXNvbHZlci1ub2RlXCIsXG4gICAgICBcImVzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdFwiLFxuICAgICAgXCJlc2xpbnQtcGx1Z2luLWltcG9ydFwiLFxuICAgICAgXCJqc29uLXNjaGVtYVwiXG4gICAgKTtcblxuICAgIGlmIChvcHRpb25zLmFsaWFzTWFwKSB7XG4gICAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJlc2xpbnQtaW1wb3J0LXJlc29sdmVyLWFsaWFzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGRldmRpcnMgPSBvcHRpb25zLmRldmRpcnMgPz8gW107XG5cbiAgICBjb25zdCBkaXJzID0gWy4uLm9wdGlvbnMuZGlycywgLi4uZGV2ZGlyc107XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbnMgPSBvcHRpb25zLmZpbGVFeHRlbnNpb25zID8/IFtcIi50c1wiXTtcblxuICAgIHRoaXMuX2FsbG93RGV2RGVwcyA9IG5ldyBTZXQoKGRldmRpcnMgPz8gW10pLm1hcCgoZGlyKSA9PiBgKiovJHtkaXJ9LyoqYCkpO1xuXG4gICAgY29uc3QgbGludFByb2plblJjID0gb3B0aW9ucy5saW50UHJvamVuUmMgPz8gdHJ1ZTtcblxuICAgIGNvbnN0IGVzbGludCA9IHByb2plY3QuYWRkVGFzayhcImVzbGludFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSdW5zIGVzbGludCBhZ2FpbnN0IHRoZSBjb2RlYmFzZVwiLFxuICAgICAgZXhlYzogW1xuICAgICAgICBcImVzbGludFwiLFxuICAgICAgICBgLS1leHQgJHtmaWxlRXh0ZW5zaW9ucy5qb2luKFwiLFwiKX1gLFxuICAgICAgICBcIi0tZml4XCIsXG4gICAgICAgIFwiLS1uby1lcnJvci1vbi11bm1hdGNoZWQtcGF0dGVyblwiLFxuICAgICAgICAuLi5kaXJzLFxuICAgICAgICAuLi4obGludFByb2plblJjID8gW1BST0pFTl9SQ10gOiBbXSksXG4gICAgICBdLmpvaW4oXCIgXCIpLFxuICAgIH0pO1xuXG4gICAgcHJvamVjdC50ZXN0VGFzay5zcGF3bihlc2xpbnQpO1xuXG4gICAgLy8gZXhjbHVkZSBzb21lIGZpbGVzXG4gICAgcHJvamVjdC5ucG1pZ25vcmU/LmV4Y2x1ZGUoXCIvLmVzbGludHJjLmpzb25cIik7XG5cbiAgICB0aGlzLl9mb3JtYXR0aW5nUnVsZXMgPSB7XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R5cGVzY3JpcHQtZXNsaW50L3R5cGVzY3JpcHQtZXNsaW50L2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2VzbGludC1wbHVnaW4vZG9jcy9ydWxlcy9pbmRlbnQubWRcbiAgICAgIGluZGVudDogW1wib2ZmXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50XCI6IFtcImVycm9yXCIsIDJdLFxuXG4gICAgICAvLyBTdHlsZVxuICAgICAgcXVvdGVzOiBbXCJlcnJvclwiLCBcInNpbmdsZVwiLCB7IGF2b2lkRXNjYXBlOiB0cnVlIH1dLFxuICAgICAgXCJjb21tYS1kYW5nbGVcIjogW1wiZXJyb3JcIiwgXCJhbHdheXMtbXVsdGlsaW5lXCJdLCAvLyBlbnN1cmVzIGNsZWFuIGRpZmZzLCBzZWUgaHR0cHM6Ly9tZWRpdW0uY29tL0BuaWtncmFmL3doeS15b3Utc2hvdWxkLWVuZm9yY2UtZGFuZ2xpbmctY29tbWFzLWZvci1tdWx0aWxpbmUtc3RhdGVtZW50cy1kMDM0Yzk4ZTM2ZjhcbiAgICAgIFwiY29tbWEtc3BhY2luZ1wiOiBbXCJlcnJvclwiLCB7IGJlZm9yZTogZmFsc2UsIGFmdGVyOiB0cnVlIH1dLCAvLyBzcGFjZSBhZnRlciwgbm8gc3BhY2UgYmVmb3JlXG4gICAgICBcIm5vLW11bHRpLXNwYWNlc1wiOiBbXCJlcnJvclwiLCB7IGlnbm9yZUVPTENvbW1lbnRzOiBmYWxzZSB9XSwgLy8gbm8gbXVsdGkgc3BhY2VzXG4gICAgICBcImFycmF5LWJyYWNrZXQtc3BhY2luZ1wiOiBbXCJlcnJvclwiLCBcIm5ldmVyXCJdLCAvLyBbMSwgMiwgM11cbiAgICAgIFwiYXJyYXktYnJhY2tldC1uZXdsaW5lXCI6IFtcImVycm9yXCIsIFwiY29uc2lzdGVudFwiXSwgLy8gZW5mb3JjZSBjb25zaXN0ZW50IGxpbmUgYnJlYWtzIGJldHdlZW4gYnJhY2tldHNcbiAgICAgIFwib2JqZWN0LWN1cmx5LXNwYWNpbmdcIjogW1wiZXJyb3JcIiwgXCJhbHdheXNcIl0sIC8vIHsga2V5OiAndmFsdWUnIH1cbiAgICAgIFwib2JqZWN0LWN1cmx5LW5ld2xpbmVcIjogW1wiZXJyb3JcIiwgeyBtdWx0aWxpbmU6IHRydWUsIGNvbnNpc3RlbnQ6IHRydWUgfV0sIC8vIGVuZm9yY2UgY29uc2lzdGVudCBsaW5lIGJyZWFrcyBiZXR3ZWVuIGJyYWNlc1xuICAgICAgXCJvYmplY3QtcHJvcGVydHktbmV3bGluZVwiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgeyBhbGxvd0FsbFByb3BlcnRpZXNPblNhbWVMaW5lOiB0cnVlIH0sXG4gICAgICBdLCAvLyBlbmZvcmNlIFwic2FtZSBsaW5lXCIgb3IgXCJtdWx0aXBsZSBsaW5lXCIgb24gb2JqZWN0IHByb3BlcnRpZXNcbiAgICAgIFwia2V5d29yZC1zcGFjaW5nXCI6IFtcImVycm9yXCJdLCAvLyByZXF1aXJlIGEgc3BhY2UgYmVmb3JlICYgYWZ0ZXIga2V5d29yZHNcbiAgICAgIFwiYnJhY2Utc3R5bGVcIjogW1wiZXJyb3JcIiwgXCIxdGJzXCIsIHsgYWxsb3dTaW5nbGVMaW5lOiB0cnVlIH1dLCAvLyBlbmZvcmNlIG9uZSB0cnVlIGJyYWNlIHN0eWxlXG4gICAgICBcInNwYWNlLWJlZm9yZS1ibG9ja3NcIjogW1wiZXJyb3JcIl0sIC8vIHJlcXVpcmUgc3BhY2UgYmVmb3JlIGJsb2Nrc1xuICAgICAgY3VybHk6IFtcImVycm9yXCIsIFwibXVsdGktbGluZVwiLCBcImNvbnNpc3RlbnRcIl0sIC8vIHJlcXVpcmUgY3VybHkgYnJhY2VzIGZvciBtdWx0aWxpbmUgY29udHJvbCBzdGF0ZW1lbnRzXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItZGVsaW1pdGVyLXN0eWxlXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBSZXF1aXJlIHNlbWljb2xvbnNcbiAgICAgIHNlbWk6IFtcImVycm9yXCIsIFwiYWx3YXlzXCJdLFxuXG4gICAgICAvLyBNYXggbGluZSBsZW5ndGhzXG4gICAgICBcIm1heC1sZW5cIjogW1xuICAgICAgICBcImVycm9yXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBjb2RlOiAxNTAsXG4gICAgICAgICAgaWdub3JlVXJsczogdHJ1ZSwgLy8gTW9zdCBjb21tb24gcmVhc29uIHRvIGRpc2FibGUgaXRcbiAgICAgICAgICBpZ25vcmVTdHJpbmdzOiB0cnVlLCAvLyBUaGVzZSBhcmUgbm90IGZhbnRhc3RpYyBidXQgbmVjZXNzYXJ5IGZvciBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgIGlnbm9yZVRlbXBsYXRlTGl0ZXJhbHM6IHRydWUsXG4gICAgICAgICAgaWdub3JlQ29tbWVudHM6IHRydWUsXG4gICAgICAgICAgaWdub3JlUmVnRXhwTGl0ZXJhbHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBEb24ndCB1bm5lY2Vzc2FyaWx5IHF1b3RlIHByb3BlcnRpZXNcbiAgICAgIFwicXVvdGUtcHJvcHNcIjogW1wiZXJyb3JcIiwgXCJjb25zaXN0ZW50LWFzLW5lZWRlZFwiXSxcbiAgICB9O1xuXG4gICAgdGhpcy5ydWxlcyA9IHtcbiAgICAgIC8vIFJlcXVpcmUgdXNlIG9mIHRoZSBgaW1wb3J0IHsgZm9vIH0gZnJvbSAnYmFyJztgIGZvcm0gaW5zdGVhZCBvZiBgaW1wb3J0IGZvbyA9IHJlcXVpcmUoJ2JhcicpO2BcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gUmVxdWlyZSBhbGwgaW1wb3J0ZWQgZGVwZW5kZW5jaWVzIGFyZSBhY3R1YWxseSBkZWNsYXJlZCBpbiBwYWNrYWdlLmpzb25cbiAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFtcbiAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICB7XG4gICAgICAgICAgLy8gT25seSBhbGxvdyBpbXBvcnRpbmcgZGV2RGVwZW5kZW5jaWVzIGZyb20gXCJkZXZkaXJzXCIuXG4gICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiAoKSA9PiB0aGlzLnJlbmRlckRldkRlcHNBbGxvd0xpc3QoKSxcbiAgICAgICAgICBvcHRpb25hbERlcGVuZGVuY2llczogZmFsc2UsIC8vIERpc2FsbG93IGltcG9ydGluZyBvcHRpb25hbCBkZXBlbmRlbmNpZXMgKHRob3NlIHNob3VsZG4ndCBiZSBpbiB1c2UgaW4gdGhlIHByb2plY3QpXG4gICAgICAgICAgcGVlckRlcGVuZGVuY2llczogdHJ1ZSwgLy8gQWxsb3cgaW1wb3J0aW5nIHBlZXIgZGVwZW5kZW5jaWVzICh0aGF0IGFyZW4ndCBhbHNvIGRpcmVjdCBkZXBlbmRlbmNpZXMpXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBSZXF1aXJlIGFsbCBpbXBvcnRlZCBsaWJyYXJpZXMgYWN0dWFsbHkgcmVzb2x2ZSAoISFyZXF1aXJlZCBmb3IgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzIHRvIHdvcmshISlcbiAgICAgIFwiaW1wb3J0L25vLXVucmVzb2x2ZWRcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIFJlcXVpcmUgYW4gb3JkZXJpbmcgb24gYWxsIGltcG9ydHNcbiAgICAgIFwiaW1wb3J0L29yZGVyXCI6IFtcbiAgICAgICAgXCJ3YXJuXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBncm91cHM6IFtcImJ1aWx0aW5cIiwgXCJleHRlcm5hbFwiXSxcbiAgICAgICAgICBhbHBoYWJldGl6ZTogeyBvcmRlcjogXCJhc2NcIiwgY2FzZUluc2Vuc2l0aXZlOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuXG4gICAgICAvLyBDYW5ub3QgaW1wb3J0IGZyb20gdGhlIHNhbWUgbW9kdWxlIHR3aWNlXG4gICAgICBcIm5vLWR1cGxpY2F0ZS1pbXBvcnRzXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBDYW5ub3Qgc2hhZG93IG5hbWVzXG4gICAgICBcIm5vLXNoYWRvd1wiOiBbXCJvZmZcIl0sXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIFJlcXVpcmVkIHNwYWNpbmcgaW4gcHJvcGVydHkgZGVjbGFyYXRpb25zIChjb3BpZWQgZnJvbSBUU0xpbnQsIGRlZmF1bHRzIGFyZSBnb29kKVxuICAgICAgXCJrZXktc3BhY2luZ1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gTm8gbXVsdGlwbGUgZW1wdHkgbGluZXNcbiAgICAgIFwibm8tbXVsdGlwbGUtZW1wdHktbGluZXNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE9uZSBvZiB0aGUgZWFzaWVzdCBtaXN0YWtlcyB0byBtYWtlXG4gICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9uby1mbG9hdGluZy1wcm9taXNlc1wiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgaW5zaWRlIHRyeS9jYXRjaCBibG9ja3MsIHByb21pc2VzIGFyZSAncmV0dXJuIGF3YWl0J2VkXG4gICAgICAvLyAobXVzdCBkaXNhYmxlIHRoZSBiYXNlIHJ1bGUgYXMgaXQgY2FuIHJlcG9ydCBpbmNvcnJlY3QgZXJyb3JzKVxuICAgICAgXCJuby1yZXR1cm4tYXdhaXRcIjogW1wib2ZmXCJdLFxuICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvcmV0dXJuLWF3YWl0XCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBVc2VsZXNzIGRpZmYgcmVzdWx0c1xuICAgICAgXCJuby10cmFpbGluZy1zcGFjZXNcIjogW1wiZXJyb3JcIl0sXG5cbiAgICAgIC8vIE11c3QgdXNlIGZvby5iYXIgaW5zdGVhZCBvZiBmb29bJ2JhciddIGlmIHBvc3NpYmxlXG4gICAgICBcImRvdC1ub3RhdGlvblwiOiBbXCJlcnJvclwiXSxcblxuICAgICAgLy8gQXJlIHlvdSBzdXJlIHwgaXMgbm90IGEgdHlwbyBmb3IgfHwgP1xuICAgICAgXCJuby1iaXR3aXNlXCI6IFtcImVycm9yXCJdLFxuXG4gICAgICAvLyBNZW1iZXIgb3JkZXJpbmdcbiAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1wiOiBbXG4gICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAge1xuICAgICAgICAgIGRlZmF1bHQ6IFtcbiAgICAgICAgICAgIFwicHVibGljLXN0YXRpYy1maWVsZFwiLFxuICAgICAgICAgICAgXCJwdWJsaWMtc3RhdGljLW1ldGhvZFwiLFxuICAgICAgICAgICAgXCJwcm90ZWN0ZWQtc3RhdGljLWZpZWxkXCIsXG4gICAgICAgICAgICBcInByb3RlY3RlZC1zdGF0aWMtbWV0aG9kXCIsXG4gICAgICAgICAgICBcInByaXZhdGUtc3RhdGljLWZpZWxkXCIsXG4gICAgICAgICAgICBcInByaXZhdGUtc3RhdGljLW1ldGhvZFwiLFxuXG4gICAgICAgICAgICBcImZpZWxkXCIsXG5cbiAgICAgICAgICAgIC8vIENvbnN0cnVjdG9yc1xuICAgICAgICAgICAgXCJjb25zdHJ1Y3RvclwiLCAvLyA9IFtcInB1YmxpYy1jb25zdHJ1Y3RvclwiLCBcInByb3RlY3RlZC1jb25zdHJ1Y3RvclwiLCBcInByaXZhdGUtY29uc3RydWN0b3JcIl1cblxuICAgICAgICAgICAgLy8gTWV0aG9kc1xuICAgICAgICAgICAgXCJtZXRob2RcIixcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgLy8gT3ZlcnJpZGVzIGZvciAucHJvamVucmMuanNcbiAgICB0aGlzLm92ZXJyaWRlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmlsZXM6IFtQUk9KRU5fUkNdLFxuICAgICAgICBydWxlczoge1xuICAgICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1wiOiBcIm9mZlwiLFxuICAgICAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFwib2ZmXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICB0aGlzLmlnbm9yZVBhdHRlcm5zID0gb3B0aW9ucy5pZ25vcmVQYXR0ZXJucyA/PyBbXG4gICAgICBcIiouanNcIixcbiAgICAgIGAhJHtQUk9KRU5fUkN9YCxcbiAgICAgIFwiKi5kLnRzXCIsXG4gICAgICBcIm5vZGVfbW9kdWxlcy9cIixcbiAgICAgIFwiKi5nZW5lcmF0ZWQudHNcIixcbiAgICAgIFwiY292ZXJhZ2VcIixcbiAgICBdO1xuXG4gICAgY29uc3QgdHNjb25maWcgPSBvcHRpb25zLnRzY29uZmlnUGF0aCA/PyBcIi4vdHNjb25maWcuanNvblwiO1xuXG4gICAgdGhpcy5hZGRQbHVnaW5zKFwiQHR5cGVzY3JpcHQtZXNsaW50XCIpO1xuICAgIHRoaXMuYWRkUGx1Z2lucyhcImltcG9ydFwiKTtcbiAgICB0aGlzLmFkZEV4dGVuZHMoXCJwbHVnaW46aW1wb3J0L3R5cGVzY3JpcHRcIik7XG5cbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGVudjoge1xuICAgICAgICBqZXN0OiB0cnVlLFxuICAgICAgICBub2RlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJvb3Q6IHRydWUsXG4gICAgICBwbHVnaW5zOiAoKSA9PiB0aGlzLl9wbHVnaW5zLFxuICAgICAgcGFyc2VyOiBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIixcbiAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgZWNtYVZlcnNpb246IDIwMTgsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgICAgIHByb2plY3Q6IHRzY29uZmlnLFxuICAgICAgfSxcbiAgICAgIGV4dGVuZHM6ICgpID0+IHRoaXMuX2V4dGVuZHMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBcImltcG9ydC9wYXJzZXJzXCI6IHtcbiAgICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJcIjogW1wiLnRzXCIsIFwiLnRzeFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgXCJpbXBvcnQvcmVzb2x2ZXJcIjoge1xuICAgICAgICAgIC4uLihvcHRpb25zLmFsaWFzTWFwICYmIHtcbiAgICAgICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgICAgIG1hcDogT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hbGlhc01hcCkubWFwKChbaywgdl0pID0+IFtrLCB2XSksXG4gICAgICAgICAgICAgIGV4dGVuc2lvbnM6IG9wdGlvbnMuYWxpYXNFeHRlbnNpb25zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBub2RlOiB7fSxcbiAgICAgICAgICB0eXBlc2NyaXB0OiB7XG4gICAgICAgICAgICBwcm9qZWN0OiB0c2NvbmZpZyxcbiAgICAgICAgICAgIC4uLihvcHRpb25zLnRzQWx3YXlzVHJ5VHlwZXMgIT09IGZhbHNlICYmIHsgYWx3YXlzVHJ5VHlwZXM6IHRydWUgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBpZ25vcmVQYXR0ZXJuczogdGhpcy5pZ25vcmVQYXR0ZXJucyxcbiAgICAgIHJ1bGVzOiAoKSA9PiAoeyAuLi50aGlzLl9mb3JtYXR0aW5nUnVsZXMsIC4uLnRoaXMucnVsZXMgfSksXG4gICAgICBvdmVycmlkZXM6IHRoaXMub3ZlcnJpZGVzLFxuICAgIH07XG5cbiAgICBuZXcgSnNvbkZpbGUocHJvamVjdCwgXCIuZXNsaW50cmMuanNvblwiLCB7XG4gICAgICBvYmo6IHRoaXMuY29uZmlnLFxuICAgICAgbWFya2VyOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIGlmIHRoZSB1c2VyIGVuYWJsZWQgcHJldHRpZXIgZXhwbGljaXRseSBfb3JfIGlmIHRoZSBwcm9qZWN0IGhhcyBhXG4gICAgLy8gYFByZXR0aWVyYCBjb21wb25lbnQsIHdlIHNoYWxsIHR3ZWFrIG91ciBjb25maWd1cmF0aW9uIGFjY29yZGluZ2x5LlxuICAgIGlmIChvcHRpb25zLnByZXR0aWVyIHx8IFByZXR0aWVyLm9mKHByb2plY3QpKSB7XG4gICAgICB0aGlzLmVuYWJsZVByZXR0aWVyKCk7XG4gICAgfVxuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkUnVsZXMocnVsZXM6IHsgW3J1bGU6IHN0cmluZ106IGFueSB9KSB7XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMocnVsZXMpKSB7XG4gICAgICB0aGlzLnJ1bGVzW2tdID0gdjtcbiAgICB9XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZFBsdWdpbnMoLi4ucGx1Z2luczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9wbHVnaW5zLnB1c2goLi4ucGx1Z2lucyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkT3ZlcnJpZGUob3ZlcnJpZGU6IEVzbGludE92ZXJyaWRlKSB7XG4gICAgdGhpcy5vdmVycmlkZXMucHVzaChvdmVycmlkZSk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZElnbm9yZVBhdHRlcm4ocGF0dGVybjogc3RyaW5nKSB7XG4gICAgdGhpcy5pZ25vcmVQYXR0ZXJucy5wdXNoKHBhdHRlcm4pO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGFkZEV4dGVuZHMoLi4uZXh0ZW5kTGlzdDogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9leHRlbmRzLnB1c2goLi4uZXh0ZW5kTGlzdCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWxsb3dEZXZEZXBzKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMuX2FsbG93RGV2RGVwcy5hZGQocGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlcyBwcmV0dGllciBmb3IgY29kZSBmb3JtYXR0aW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBlbmFibGVQcmV0dGllcigpIHtcbiAgICB0aGlzLm5vZGVQcm9qZWN0LmFkZERldkRlcHMoXG4gICAgICBcInByZXR0aWVyXCIsXG4gICAgICBcImVzbGludC1wbHVnaW4tcHJldHRpZXJcIixcbiAgICAgIFwiZXNsaW50LWNvbmZpZy1wcmV0dGllclwiXG4gICAgKTtcblxuICAgIHRoaXMuYWRkUGx1Z2lucyhcInByZXR0aWVyXCIpO1xuXG4gICAgdGhpcy5fZm9ybWF0dGluZ1J1bGVzID0ge1xuICAgICAgXCJwcmV0dGllci9wcmV0dGllclwiOiBbXCJlcnJvclwiXSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRFeHRlbmRzKFwicHJldHRpZXJcIiwgXCJwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWRcIik7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRldkRlcHNBbGxvd0xpc3QoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fYWxsb3dEZXZEZXBzKTtcbiAgfVxufVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
1
|
+
export * from "./bundler";
|
|
2
|
+
export * from "./eslint";
|
|
3
|
+
export * from "./jest";
|
|
4
|
+
export * from "./node-package";
|
|
5
|
+
export * from "./node-project";
|
|
6
|
+
export * from "./npm-config";
|
|
7
|
+
export * from "./prettier";
|
|
8
|
+
export * from "./projenrc";
|
|
9
|
+
export * from "./typescript-config";
|
|
10
|
+
export * from "./upgrade-dependencies";
|
package/lib/javascript/index.js
CHANGED
|
@@ -20,4 +20,4 @@ __exportStar(require("./prettier"), exports);
|
|
|
20
20
|
__exportStar(require("./projenrc"), exports);
|
|
21
21
|
__exportStar(require("./typescript-config"), exports);
|
|
22
22
|
__exportStar(require("./upgrade-dependencies"), exports);
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLHlDQUF1QjtBQUN2QixpREFBK0I7QUFDL0IsaURBQStCO0FBQy9CLCtDQUE2QjtBQUM3Qiw2Q0FBMkI7QUFDM0IsNkNBQTJCO0FBQzNCLHNEQUFvQztBQUNwQyx5REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lc2xpbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2plc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtcGFja2FnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9kZS1wcm9qZWN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ucG0tY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcmV0dGllclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvamVucmNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzY3JpcHQtY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91cGdyYWRlLWRlcGVuZGVuY2llc1wiO1xuIl19
|