projen 0.52.21 → 0.52.25
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 +139 -107
- package/changelog.md +3 -3
- package/docs/api/API.md +42 -39
- package/lib/awscdk/auto-discover.d.ts +14 -46
- package/lib/awscdk/auto-discover.js +8 -22
- package/lib/awscdk/awscdk-app-java.d.ts +10 -32
- package/lib/awscdk/awscdk-app-java.js +5 -9
- package/lib/awscdk/awscdk-app-ts.d.ts +15 -35
- package/lib/awscdk/awscdk-app-ts.js +6 -14
- package/lib/awscdk/awscdk-construct.d.ts +14 -28
- package/lib/awscdk/awscdk-construct.js +8 -16
- package/lib/awscdk/awscdk-deps-java.d.ts +1 -8
- package/lib/awscdk/awscdk-deps-java.js +3 -10
- package/lib/awscdk/awscdk-deps-js.d.ts +1 -8
- package/lib/awscdk/awscdk-deps-js.js +3 -10
- package/lib/awscdk/awscdk-deps.d.ts +28 -67
- package/lib/awscdk/awscdk-deps.js +5 -12
- package/lib/awscdk/cdk-config.d.ts +19 -51
- package/lib/awscdk/cdk-config.js +13 -11
- package/lib/awscdk/cdk-tasks.d.ts +7 -24
- package/lib/awscdk/cdk-tasks.js +3 -8
- package/lib/awscdk/integration-test.d.ts +7 -29
- package/lib/awscdk/integration-test.js +3 -8
- package/lib/awscdk/lambda-function.d.ts +22 -50
- package/lib/awscdk/lambda-function.js +11 -24
- package/lib/build/build-workflow.d.ts +33 -78
- package/lib/build/build-workflow.js +15 -25
- package/lib/cdk/auto-discover-base.d.ts +11 -34
- package/lib/cdk/auto-discover-base.js +5 -15
- package/lib/cdk/construct-lib.d.ts +8 -22
- package/lib/cdk/construct-lib.js +3 -8
- package/lib/cdk/integration-test-base.d.ts +12 -38
- package/lib/cdk/integration-test-base.js +2 -8
- package/lib/cdk/jsii-docgen.d.ts +6 -12
- package/lib/cdk/jsii-docgen.js +6 -8
- package/lib/cdk/jsii-project.d.ts +16 -95
- package/lib/cdk/jsii-project.js +3 -10
- package/lib/cdk8s/auto-discover.d.ts +6 -23
- package/lib/cdk8s/auto-discover.js +6 -15
- package/lib/cdk8s/cdk8s-app-ts.d.ts +21 -43
- package/lib/cdk8s/cdk8s-app-ts.js +4 -7
- package/lib/cdk8s/cdk8s-construct.d.ts +12 -27
- package/lib/cdk8s/cdk8s-construct.js +3 -7
- package/lib/cdk8s/integration-test.d.ts +2 -9
- package/lib/cdk8s/integration-test.js +3 -8
- package/lib/cdktf/cdktf-construct.d.ts +3 -12
- package/lib/cdktf/cdktf-construct.js +3 -7
- package/lib/component.d.ts +4 -17
- package/lib/component.js +6 -19
- package/lib/dependencies.d.ts +44 -77
- package/lib/dependencies.js +50 -38
- package/lib/dev-env.d.ts +26 -53
- package/lib/dev-env.js +9 -19
- package/lib/docker-compose.d.ts +83 -209
- package/lib/docker-compose.js +38 -61
- package/lib/file.d.ts +24 -71
- package/lib/file.js +4 -16
- package/lib/gitattributes.d.ts +3 -14
- package/lib/gitattributes.js +5 -16
- package/lib/github/auto-approve.d.ts +7 -23
- package/lib/github/auto-approve.js +3 -8
- package/lib/github/auto-merge.d.ts +7 -29
- package/lib/github/auto-merge.js +7 -16
- package/lib/github/dependabot.d.ts +54 -147
- package/lib/github/dependabot.js +81 -22
- package/lib/github/github-project.d.ts +26 -70
- package/lib/github/github-project.js +5 -10
- package/lib/github/github.d.ts +19 -58
- package/lib/github/github.js +9 -30
- package/lib/github/mergify.d.ts +9 -54
- package/lib/github/mergify.js +2 -14
- package/lib/github/pr-template.d.ts +3 -13
- package/lib/github/pr-template.js +3 -8
- package/lib/github/pull-request-lint.d.ts +8 -28
- package/lib/github/pull-request-lint.js +3 -9
- package/lib/github/stale.d.ts +17 -47
- package/lib/github/stale.js +6 -10
- package/lib/github/task-workflow.d.ts +21 -63
- package/lib/github/task-workflow.js +3 -8
- package/lib/github/workflows-model.d.ts +199 -582
- package/lib/github/workflows-model.js +5 -4
- package/lib/github/workflows.d.ts +14 -41
- package/lib/github/workflows.js +8 -16
- package/lib/gitlab/configuration-model.d.ts +145 -947
- package/lib/gitlab/configuration-model.js +11 -28
- package/lib/gitlab/configuration.d.ts +31 -121
- package/lib/gitlab/configuration.js +14 -49
- package/lib/gitlab/gitlab-configuration.d.ts +2 -13
- package/lib/gitlab/gitlab-configuration.js +4 -15
- package/lib/gitlab/nested-configuration.d.ts +1 -9
- package/lib/gitlab/nested-configuration.js +3 -8
- package/lib/gitpod.d.ts +71 -167
- package/lib/gitpod.js +75 -42
- package/lib/ignore-file.d.ts +4 -23
- package/lib/ignore-file.js +6 -25
- package/lib/ini.d.ts +2 -14
- package/lib/ini.js +3 -13
- package/lib/java/java-project.d.ts +29 -70
- package/lib/java/java-project.js +10 -17
- package/lib/java/junit.d.ts +5 -17
- package/lib/java/junit.js +3 -8
- package/lib/java/maven-compile.d.ts +4 -13
- package/lib/java/maven-compile.js +3 -8
- package/lib/java/maven-packaging.d.ts +6 -21
- package/lib/java/maven-packaging.js +3 -8
- package/lib/java/maven-sample.d.ts +2 -12
- package/lib/java/maven-sample.js +3 -8
- package/lib/java/pom.d.ts +38 -100
- package/lib/java/pom.js +13 -25
- package/lib/java/projenrc.d.ts +7 -22
- package/lib/java/projenrc.js +3 -8
- package/lib/javascript/bundler.d.ts +30 -72
- package/lib/javascript/bundler.js +13 -21
- package/lib/javascript/eslint.d.ts +27 -84
- package/lib/javascript/eslint.js +11 -30
- package/lib/javascript/jest.d.ts +91 -344
- package/lib/javascript/jest.js +6 -23
- package/lib/javascript/node-package.d.ts +111 -259
- package/lib/javascript/node-package.js +64 -81
- package/lib/javascript/node-project.d.ts +112 -220
- package/lib/javascript/node-project.js +54 -73
- package/lib/javascript/npm-config.d.ts +9 -19
- package/lib/javascript/npm-config.js +9 -16
- package/lib/javascript/prettier.d.ts +65 -196
- package/lib/javascript/prettier.js +70 -46
- package/lib/javascript/projenrc.d.ts +2 -12
- package/lib/javascript/projenrc.js +3 -8
- package/lib/javascript/typescript-config.d.ts +62 -158
- package/lib/javascript/typescript-config.js +31 -18
- package/lib/javascript/upgrade-dependencies.d.ts +35 -94
- package/lib/javascript/upgrade-dependencies.js +21 -51
- package/lib/json.d.ts +3 -17
- package/lib/json.js +3 -13
- package/lib/license.d.ts +3 -20
- package/lib/license.js +2 -13
- package/lib/logger.d.ts +18 -62
- package/lib/logger.js +17 -37
- package/lib/makefile.d.ts +14 -45
- package/lib/makefile.js +7 -25
- package/lib/object-file.d.ts +19 -39
- package/lib/object-file.js +17 -28
- package/lib/option-hints.d.ts +4 -13
- package/lib/option-hints.js +11 -5
- package/lib/project-build.d.ts +7 -26
- package/lib/project-build.js +3 -8
- package/lib/project.d.ts +64 -186
- package/lib/project.js +43 -91
- package/lib/projects.d.ts +11 -32
- package/lib/projects.js +4 -8
- package/lib/projenrc-json.d.ts +2 -12
- package/lib/projenrc-json.js +3 -8
- package/lib/python/pip.d.ts +7 -23
- package/lib/python/pip.js +8 -17
- package/lib/python/poetry.d.ts +36 -121
- package/lib/python/poetry.js +12 -26
- package/lib/python/projenrc.d.ts +4 -15
- package/lib/python/projenrc.js +3 -8
- package/lib/python/pytest.d.ts +3 -16
- package/lib/python/pytest.js +2 -8
- package/lib/python/python-deps.d.ts +7 -21
- package/lib/python/python-deps.js +1 -1
- package/lib/python/python-env.d.ts +1 -6
- package/lib/python/python-env.js +1 -1
- package/lib/python/python-packaging.d.ts +12 -34
- package/lib/python/python-packaging.js +1 -1
- package/lib/python/python-project.d.ts +34 -79
- package/lib/python/python-project.js +7 -20
- package/lib/python/python-sample.d.ts +2 -9
- package/lib/python/python-sample.js +3 -8
- package/lib/python/requirements-file.d.ts +4 -19
- package/lib/python/requirements-file.js +5 -15
- package/lib/python/setuppy.d.ts +11 -39
- package/lib/python/setuppy.js +3 -13
- package/lib/python/setuptools.d.ts +2 -14
- package/lib/python/setuptools.js +3 -8
- package/lib/python/venv.d.ts +4 -14
- package/lib/python/venv.js +4 -11
- package/lib/readme.d.ts +7 -16
- package/lib/readme.js +5 -7
- package/lib/release/publisher.d.ts +103 -206
- package/lib/release/publisher.js +47 -59
- package/lib/release/release-trigger.d.ts +16 -48
- package/lib/release/release-trigger.js +8 -18
- package/lib/release/release.d.ts +50 -110
- package/lib/release/release.js +9 -24
- package/lib/run-task.js +1820 -0
- package/lib/sample-file.d.ts +14 -47
- package/lib/sample-file.js +9 -30
- package/lib/semver.d.ts +4 -21
- package/lib/semver.js +6 -20
- package/lib/source-code.d.ts +7 -23
- package/lib/source-code.js +7 -19
- package/lib/task-model.d.ts +21 -61
- package/lib/task-model.js +1 -1
- package/lib/task-runtime.d.ts +7 -24
- package/lib/task-runtime.js +7 -20
- package/lib/task.d.ts +29 -73
- package/lib/task.js +28 -61
- package/lib/tasks.d.ts +12 -34
- package/lib/tasks.js +14 -36
- package/lib/testing.d.ts +6 -10
- package/lib/testing.js +8 -12
- package/lib/textfile.d.ts +9 -24
- package/lib/textfile.js +9 -19
- package/lib/toml.d.ts +2 -14
- package/lib/toml.js +3 -13
- package/lib/typescript/projenrc.d.ts +4 -14
- package/lib/typescript/projenrc.js +3 -8
- package/lib/typescript/typescript-typedoc.d.ts +1 -6
- package/lib/typescript/typescript-typedoc.js +3 -8
- package/lib/typescript/typescript.d.ts +24 -82
- package/lib/typescript/typescript.js +6 -15
- package/lib/version.d.ts +9 -38
- package/lib/version.js +2 -11
- package/lib/vscode/devcontainer.d.ts +10 -30
- package/lib/vscode/devcontainer.js +10 -26
- package/lib/vscode/launch-config.d.ts +18 -97
- package/lib/vscode/launch-config.js +9 -15
- package/lib/vscode/vscode.d.ts +0 -9
- package/lib/vscode/vscode.js +2 -11
- package/lib/web/next.d.ts +19 -60
- package/lib/web/next.js +6 -20
- package/lib/web/postcss.d.ts +3 -24
- package/lib/web/postcss.js +3 -8
- package/lib/web/react.d.ts +13 -60
- package/lib/web/react.js +7 -32
- package/lib/web/tailwind.d.ts +1 -15
- package/lib/web/tailwind.js +3 -7
- package/lib/xmlfile.d.ts +2 -14
- package/lib/xmlfile.js +3 -13
- package/lib/yaml.d.ts +4 -19
- package/lib/yaml.js +3 -13
- package/package.json +5 -5
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/lib/license.d.ts
CHANGED
|
@@ -1,48 +1,31 @@
|
|
|
1
1
|
import { FileBase, IResolver } from "./file";
|
|
2
2
|
import { Project } from "./project";
|
|
3
|
-
/**
|
|
4
|
-
* @experimental
|
|
5
|
-
*/
|
|
6
3
|
export interface LicenseOptions {
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
5
|
+
* License type (SPDX).
|
|
9
6
|
*
|
|
10
7
|
* @see https://github.com/projen/projen/tree/main/license-text for list of supported licenses
|
|
11
|
-
* @experimental
|
|
12
8
|
*/
|
|
13
9
|
readonly spdx: string;
|
|
14
10
|
/**
|
|
15
|
-
*
|
|
11
|
+
* Copyright owner.
|
|
16
12
|
*
|
|
17
13
|
* If the license text has $copyright_owner, this option must be specified.
|
|
18
14
|
*
|
|
19
15
|
* @default -
|
|
20
|
-
* @experimental
|
|
21
16
|
*/
|
|
22
17
|
readonly copyrightOwner?: string;
|
|
23
18
|
/**
|
|
24
|
-
*
|
|
19
|
+
* Period of license (e.g. "1998-2023")
|
|
25
20
|
*
|
|
26
21
|
* The string `$copyright_period` will be substituted with this string.
|
|
27
22
|
*
|
|
28
23
|
* @default - current year (e.g. "2020")
|
|
29
|
-
* @experimental
|
|
30
24
|
*/
|
|
31
25
|
readonly copyrightPeriod?: string;
|
|
32
26
|
}
|
|
33
|
-
/**
|
|
34
|
-
* @experimental
|
|
35
|
-
*/
|
|
36
27
|
export declare class License extends FileBase {
|
|
37
28
|
private readonly text;
|
|
38
|
-
/**
|
|
39
|
-
* @experimental
|
|
40
|
-
*/
|
|
41
29
|
constructor(project: Project, options: LicenseOptions);
|
|
42
|
-
/**
|
|
43
|
-
* (experimental) Implemented by derived classes and returns the contents of the file to emit.
|
|
44
|
-
*
|
|
45
|
-
* @experimental
|
|
46
|
-
*/
|
|
47
30
|
protected synthesizeContent(_: IResolver): string | undefined;
|
|
48
31
|
}
|
package/lib/license.js
CHANGED
|
@@ -5,13 +5,7 @@ exports.License = void 0;
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const fs = require("fs-extra");
|
|
7
7
|
const file_1 = require("./file");
|
|
8
|
-
/**
|
|
9
|
-
* @experimental
|
|
10
|
-
*/
|
|
11
8
|
class License extends file_1.FileBase {
|
|
12
|
-
/**
|
|
13
|
-
* @experimental
|
|
14
|
-
*/
|
|
15
9
|
constructor(project, options) {
|
|
16
10
|
var _b;
|
|
17
11
|
super(project, "LICENSE", { marker: false });
|
|
@@ -33,16 +27,11 @@ class License extends file_1.FileBase {
|
|
|
33
27
|
}
|
|
34
28
|
this.text = text;
|
|
35
29
|
}
|
|
36
|
-
/**
|
|
37
|
-
* (experimental) Implemented by derived classes and returns the contents of the file to emit.
|
|
38
|
-
*
|
|
39
|
-
* @experimental
|
|
40
|
-
*/
|
|
41
30
|
synthesizeContent(_) {
|
|
42
31
|
return this.text;
|
|
43
32
|
}
|
|
44
33
|
}
|
|
45
34
|
exports.License = License;
|
|
46
35
|
_a = JSII_RTTI_SYMBOL_1;
|
|
47
|
-
License[_a] = { fqn: "projen.License", version: "0.52.
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
License[_a] = { fqn: "projen.License", version: "0.52.25" };
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWNlbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLGlDQUE2QztBQThCN0MsTUFBYSxPQUFRLFNBQVEsZUFBUTtJQUduQyxZQUFZLE9BQWdCLEVBQUUsT0FBdUI7O1FBQ25ELEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFN0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUUxQixNQUFNLFFBQVEsR0FBRyxHQUFHLFNBQVMsb0JBQW9CLElBQUksTUFBTSxDQUFDO1FBQzVELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxNQUFNLEtBQUssU0FDVCxPQUFPLENBQUMsZUFBZSxtQ0FBSSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFFckMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsb0ZBQW9GO1FBQ3BGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFPLElBQUksb0RBQW9ELENBQ2hFLENBQUM7YUFDSDtZQUVELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7O0FBckNILDBCQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciB9IGZyb20gXCIuL2ZpbGVcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZU9wdGlvbnMge1xuICAvKipcbiAgICogTGljZW5zZSB0eXBlIChTUERYKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvamVuL3Byb2plbi90cmVlL21haW4vbGljZW5zZS10ZXh0IGZvciBsaXN0IG9mIHN1cHBvcnRlZCBsaWNlbnNlc1xuICAgKi9cbiAgcmVhZG9ubHkgc3BkeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb3B5cmlnaHQgb3duZXIuXG4gICAqXG4gICAqIElmIHRoZSBsaWNlbnNlIHRleHQgaGFzICRjb3B5cmlnaHRfb3duZXIsIHRoaXMgb3B0aW9uIG11c3QgYmUgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRPd25lcj86IHN0cmluZztcblxuICAvKipcbiAgICogUGVyaW9kIG9mIGxpY2Vuc2UgKGUuZy4gXCIxOTk4LTIwMjNcIilcbiAgICpcbiAgICogVGhlIHN0cmluZyBgJGNvcHlyaWdodF9wZXJpb2RgIHdpbGwgYmUgc3Vic3RpdHV0ZWQgd2l0aCB0aGlzIHN0cmluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHllYXIgKGUuZy4gXCIyMDIwXCIpXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRQZXJpb2Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBMaWNlbnNlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMaWNlbnNlT3B0aW9ucykge1xuICAgIHN1cGVyKHByb2plY3QsIFwiTElDRU5TRVwiLCB7IG1hcmtlcjogZmFsc2UgfSk7XG5cbiAgICBjb25zdCBzcGR4ID0gb3B0aW9ucy5zcGR4O1xuXG4gICAgY29uc3QgdGV4dEZpbGUgPSBgJHtfX2Rpcm5hbWV9Ly4uL2xpY2Vuc2UtdGV4dC8ke3NwZHh9LnR4dGA7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHRleHRGaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBsaWNlbnNlICR7c3BkeH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCB5ZWFycyA9XG4gICAgICBvcHRpb25zLmNvcHlyaWdodFBlcmlvZCA/PyBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBvd25lciA9IG9wdGlvbnMuY29weXJpZ2h0T3duZXI7XG5cbiAgICBsZXQgdGV4dCA9IGZzLnJlYWRGaWxlU3luYyh0ZXh0RmlsZSwgXCJ1dGYtOFwiKTtcblxuICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoXCIkY29weXJpZ2h0X3BlcmlvZFwiLCB5ZWFycyk7XG5cbiAgICAvLyBpZiB0aGUgbGljZW5zZSB0ZXh0IGluY2x1ZGVzICRjb3B5cmlnaHRfb3duZXIsIHRoZW4gYGNvcHlyaWdodE93bmVyYCBpcyByZXF1aXJlZC5cbiAgICBpZiAodGV4dC5pbmRleE9mKFwiJGNvcHlyaWdodF9vd25lclwiKSAhPT0gLTEpIHtcbiAgICAgIGlmICghb3duZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgJHtzcGR4fSBsaWNlbnNlIHJlcXVpcmVzIFwiY29weXJpZ2h0T3duZXJcIiB0byBiZSBzcGVjaWZpZWRgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoXCIkY29weXJpZ2h0X293bmVyXCIsIG93bmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLnRleHQgPSB0ZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudGV4dDtcbiAgfVxufVxuIl19
|
package/lib/logger.d.ts
CHANGED
|
@@ -1,117 +1,73 @@
|
|
|
1
1
|
import { Component } from "./component";
|
|
2
2
|
import { Project } from "./project";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @experimental
|
|
4
|
+
* Options for logging utilities.
|
|
7
5
|
*/
|
|
8
6
|
export interface LoggerOptions {
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* The levels available (in increasing verbosity) are
|
|
8
|
+
* The logging verbosity. The levels available (in increasing verbosity) are
|
|
13
9
|
* OFF, ERROR, WARN, INFO, DEBUG, and VERBOSE.
|
|
14
10
|
*
|
|
15
11
|
* @default LogLevel.INFO
|
|
16
|
-
* @experimental
|
|
17
12
|
*/
|
|
18
13
|
readonly level?: LogLevel;
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
15
|
+
* Include a prefix for all logging messages with the project name.
|
|
21
16
|
*
|
|
22
17
|
* @default false
|
|
23
|
-
* @experimental
|
|
24
18
|
*/
|
|
25
19
|
readonly usePrefix?: boolean;
|
|
26
20
|
}
|
|
27
21
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @experimental
|
|
22
|
+
* Project-level logging utilities.
|
|
31
23
|
*/
|
|
32
24
|
export declare class Logger extends Component {
|
|
33
25
|
private readonly level;
|
|
34
26
|
private readonly usePrefix;
|
|
35
|
-
/**
|
|
36
|
-
* @experimental
|
|
37
|
-
*/
|
|
38
27
|
constructor(project: Project, options?: LoggerOptions);
|
|
39
28
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* The message will be
|
|
29
|
+
* Log a message to stderr with a given logging level. The message will be
|
|
43
30
|
* printed as long as `logger.level` is set to the message's severity or higher.
|
|
44
31
|
*
|
|
45
|
-
* @param level Logging verbosity
|
|
46
|
-
* @param text strings or objects to print
|
|
47
|
-
* @experimental
|
|
32
|
+
* @param level Logging verbosity
|
|
33
|
+
* @param text strings or objects to print
|
|
48
34
|
*/
|
|
49
35
|
log(level: LogLevel, ...text: any[]): void;
|
|
50
36
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @param text strings or objects to print.
|
|
54
|
-
* @experimental
|
|
37
|
+
* Log a message to stderr with VERBOSE severity
|
|
38
|
+
* @param text strings or objects to print
|
|
55
39
|
*/
|
|
56
40
|
verbose(...text: any[]): void;
|
|
57
41
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* @param text strings or objects to print.
|
|
61
|
-
* @experimental
|
|
42
|
+
* Log a message to stderr with DEBUG severity
|
|
43
|
+
* @param text strings or objects to print
|
|
62
44
|
*/
|
|
63
45
|
debug(...text: any[]): void;
|
|
64
46
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* @param text strings or objects to print.
|
|
68
|
-
* @experimental
|
|
47
|
+
* Log a message to stderr with INFO severity
|
|
48
|
+
* @param text strings or objects to print
|
|
69
49
|
*/
|
|
70
50
|
info(...text: any[]): void;
|
|
71
51
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* @param text strings or objects to print.
|
|
75
|
-
* @experimental
|
|
52
|
+
* Log a message to stderr with WARN severity
|
|
53
|
+
* @param text strings or objects to print
|
|
76
54
|
*/
|
|
77
55
|
warn(...text: any[]): void;
|
|
78
56
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* @param text strings or objects to print.
|
|
82
|
-
* @experimental
|
|
57
|
+
* Log a message to stderr with ERROR severity
|
|
58
|
+
* @param text strings or objects to print
|
|
83
59
|
*/
|
|
84
60
|
error(...text: any[]): void;
|
|
85
61
|
private colorForLogLevel;
|
|
86
62
|
}
|
|
87
63
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* @experimental
|
|
64
|
+
* Logging verbosity.
|
|
91
65
|
*/
|
|
92
66
|
export declare enum LogLevel {
|
|
93
|
-
/**
|
|
94
|
-
* @experimental
|
|
95
|
-
*/
|
|
96
67
|
OFF = "00.off",
|
|
97
|
-
/**
|
|
98
|
-
* @experimental
|
|
99
|
-
*/
|
|
100
68
|
ERROR = "10.error",
|
|
101
|
-
/**
|
|
102
|
-
* @experimental
|
|
103
|
-
*/
|
|
104
69
|
WARN = "20.warn",
|
|
105
|
-
/**
|
|
106
|
-
* @experimental
|
|
107
|
-
*/
|
|
108
70
|
INFO = "30.info",
|
|
109
|
-
/**
|
|
110
|
-
* @experimental
|
|
111
|
-
*/
|
|
112
71
|
DEBUG = "40.debug",
|
|
113
|
-
/**
|
|
114
|
-
* @experimental
|
|
115
|
-
*/
|
|
116
72
|
VERBOSE = "50.verbose"
|
|
117
73
|
}
|
package/lib/logger.js
CHANGED
|
@@ -9,14 +9,9 @@ const component_1 = require("./component");
|
|
|
9
9
|
const logging_1 = require("./logging");
|
|
10
10
|
const util_1 = require("./util");
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @experimental
|
|
12
|
+
* Project-level logging utilities.
|
|
15
13
|
*/
|
|
16
14
|
class Logger extends component_1.Component {
|
|
17
|
-
/**
|
|
18
|
-
* @experimental
|
|
19
|
-
*/
|
|
20
15
|
constructor(project, options = {}) {
|
|
21
16
|
var _b, _c;
|
|
22
17
|
super(project);
|
|
@@ -26,14 +21,11 @@ class Logger extends component_1.Component {
|
|
|
26
21
|
this.usePrefix = (_c = options.usePrefix) !== null && _c !== void 0 ? _c : false;
|
|
27
22
|
}
|
|
28
23
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* The message will be
|
|
24
|
+
* Log a message to stderr with a given logging level. The message will be
|
|
32
25
|
* printed as long as `logger.level` is set to the message's severity or higher.
|
|
33
26
|
*
|
|
34
|
-
* @param level Logging verbosity
|
|
35
|
-
* @param text strings or objects to print
|
|
36
|
-
* @experimental
|
|
27
|
+
* @param level Logging verbosity
|
|
28
|
+
* @param text strings or objects to print
|
|
37
29
|
*/
|
|
38
30
|
log(level, ...text) {
|
|
39
31
|
if (level === LogLevel.OFF) {
|
|
@@ -51,46 +43,36 @@ class Logger extends component_1.Component {
|
|
|
51
43
|
}
|
|
52
44
|
}
|
|
53
45
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @param text strings or objects to print.
|
|
57
|
-
* @experimental
|
|
46
|
+
* Log a message to stderr with VERBOSE severity
|
|
47
|
+
* @param text strings or objects to print
|
|
58
48
|
*/
|
|
59
49
|
verbose(...text) {
|
|
60
50
|
this.log(LogLevel.VERBOSE, ...text);
|
|
61
51
|
}
|
|
62
52
|
/**
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* @param text strings or objects to print.
|
|
66
|
-
* @experimental
|
|
53
|
+
* Log a message to stderr with DEBUG severity
|
|
54
|
+
* @param text strings or objects to print
|
|
67
55
|
*/
|
|
68
56
|
debug(...text) {
|
|
69
57
|
this.log(LogLevel.DEBUG, ...text);
|
|
70
58
|
}
|
|
71
59
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* @param text strings or objects to print.
|
|
75
|
-
* @experimental
|
|
60
|
+
* Log a message to stderr with INFO severity
|
|
61
|
+
* @param text strings or objects to print
|
|
76
62
|
*/
|
|
77
63
|
info(...text) {
|
|
78
64
|
this.log(LogLevel.INFO, ...text);
|
|
79
65
|
}
|
|
80
66
|
/**
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* @param text strings or objects to print.
|
|
84
|
-
* @experimental
|
|
67
|
+
* Log a message to stderr with WARN severity
|
|
68
|
+
* @param text strings or objects to print
|
|
85
69
|
*/
|
|
86
70
|
warn(...text) {
|
|
87
71
|
this.log(LogLevel.WARN, ...text);
|
|
88
72
|
}
|
|
89
73
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* @param text strings or objects to print.
|
|
93
|
-
* @experimental
|
|
74
|
+
* Log a message to stderr with ERROR severity
|
|
75
|
+
* @param text strings or objects to print
|
|
94
76
|
*/
|
|
95
77
|
error(...text) {
|
|
96
78
|
this.log(LogLevel.ERROR, ...text);
|
|
@@ -114,11 +96,9 @@ class Logger extends component_1.Component {
|
|
|
114
96
|
}
|
|
115
97
|
exports.Logger = Logger;
|
|
116
98
|
_a = JSII_RTTI_SYMBOL_1;
|
|
117
|
-
Logger[_a] = { fqn: "projen.Logger", version: "0.52.
|
|
99
|
+
Logger[_a] = { fqn: "projen.Logger", version: "0.52.25" };
|
|
118
100
|
/**
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* @experimental
|
|
101
|
+
* Logging verbosity.
|
|
122
102
|
*/
|
|
123
103
|
var LogLevel;
|
|
124
104
|
(function (LogLevel) {
|
|
@@ -129,4 +109,4 @@ var LogLevel;
|
|
|
129
109
|
LogLevel["DEBUG"] = "40.debug";
|
|
130
110
|
LogLevel["VERBOSE"] = "50.verbose";
|
|
131
111
|
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtCQUErQjtBQUMvQixxQ0FBdUM7QUFDdkMsMkNBQXdDO0FBQ3hDLHVDQUFpQztBQUVqQyxpQ0FBa0M7QUFzQmxDOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEscUJBQVM7SUFJbkMsWUFBWSxPQUFnQixFQUFFLFVBQXlCLEVBQUU7O1FBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLHNEQUFzRDtRQUN0RCxNQUFNLFlBQVksR0FBRyxvQkFBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRWhFLElBQUksQ0FBQyxLQUFLLFNBQUcsT0FBTyxDQUFDLEtBQUssbUNBQUksWUFBWSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLFNBQUcsT0FBTyxDQUFDLFNBQVMsbUNBQUksS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxHQUFHLENBQUMsS0FBZSxFQUFFLEdBQUcsSUFBVztRQUN4QyxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFMUIsaUVBQWlFO1FBQ2pFLElBQUksZUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDM0I7UUFFRCxJQUFJLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFJLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ3RDLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ25CLEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSyxRQUFRLENBQUMsS0FBSztnQkFDakIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ25CLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNyQjtnQkFDRSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDdEI7SUFDSCxDQUFDOztBQS9GSCx3QkFnR0M7OztBQUVEOztHQUVHO0FBQ0gsSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2xCLDBCQUFjLENBQUE7SUFDZCw4QkFBa0IsQ0FBQTtJQUNsQiw0QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBZ0IsQ0FBQTtJQUNoQiw4QkFBa0IsQ0FBQTtJQUNsQixrQ0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IElTX1RFU1RfUlVOIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IElDT04gfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHsgaXNUcnV0aHkgfSBmcm9tIFwiLi91dGlsXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgbG9nZ2luZyB1dGlsaXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyB2ZXJib3NpdHkuIFRoZSBsZXZlbHMgYXZhaWxhYmxlIChpbiBpbmNyZWFzaW5nIHZlcmJvc2l0eSkgYXJlXG4gICAqIE9GRiwgRVJST1IsIFdBUk4sIElORk8sIERFQlVHLCBhbmQgVkVSQk9TRS5cbiAgICpcbiAgICogQGRlZmF1bHQgTG9nTGV2ZWwuSU5GT1xuICAgKi9cbiAgcmVhZG9ubHkgbGV2ZWw/OiBMb2dMZXZlbDtcblxuICAvKipcbiAgICogSW5jbHVkZSBhIHByZWZpeCBmb3IgYWxsIGxvZ2dpbmcgbWVzc2FnZXMgd2l0aCB0aGUgcHJvamVjdCBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUHJlZml4PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9qZWN0LWxldmVsIGxvZ2dpbmcgdXRpbGl0aWVzLlxuICovXG5leHBvcnQgY2xhc3MgTG9nZ2VyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsZXZlbDogTG9nTGV2ZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlUHJlZml4OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IExvZ2dlck9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgLy8gaWYgd2UgYXJlIHJ1bm5pbmcgaW5zaWRlIGEgdGVzdCwgZGVmYXVsdCB0byBubyBsb2dzXG4gICAgY29uc3QgZGVmYXVsdExldmVsID0gSVNfVEVTVF9SVU4gPyBMb2dMZXZlbC5PRkYgOiBMb2dMZXZlbC5JTkZPO1xuXG4gICAgdGhpcy5sZXZlbCA9IG9wdGlvbnMubGV2ZWwgPz8gZGVmYXVsdExldmVsO1xuICAgIHRoaXMudXNlUHJlZml4ID0gb3B0aW9ucy51c2VQcmVmaXggPz8gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTG9nIGEgbWVzc2FnZSB0byBzdGRlcnIgd2l0aCBhIGdpdmVuIGxvZ2dpbmcgbGV2ZWwuIFRoZSBtZXNzYWdlIHdpbGwgYmVcbiAgICogcHJpbnRlZCBhcyBsb25nIGFzIGBsb2dnZXIubGV2ZWxgIGlzIHNldCB0byB0aGUgbWVzc2FnZSdzIHNldmVyaXR5IG9yIGhpZ2hlci5cbiAgICpcbiAgICogQHBhcmFtIGxldmVsIExvZ2dpbmcgdmVyYm9zaXR5XG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ3Mgb3Igb2JqZWN0cyB0byBwcmludFxuICAgKi9cbiAgcHVibGljIGxvZyhsZXZlbDogTG9nTGV2ZWwsIC4uLnRleHQ6IGFueVtdKSB7XG4gICAgaWYgKGxldmVsID09PSBMb2dMZXZlbC5PRkYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBsb2cgYSBtZXNzYWdlIHdpdGggbGV2ZWwgTG9nTGV2ZWwuT0ZGXCIpO1xuICAgIH1cblxuICAgIGxldCBtYXhMZXZlbCA9IHRoaXMubGV2ZWw7XG5cbiAgICAvLyBsb2dnaW5nIGxldmVsIGNhbiBiZSBvdmVycmlkZGVuIHRocm91Z2ggdGhlIC0tZGVidWcgQ0xJIG9wdGlvblxuICAgIGlmIChpc1RydXRoeShwcm9jZXNzLmVudi5ERUJVRykgJiYgbWF4TGV2ZWwgPCBMb2dMZXZlbC5ERUJVRykge1xuICAgICAgbWF4TGV2ZWwgPSBMb2dMZXZlbC5ERUJVRztcbiAgICB9XG5cbiAgICBpZiAobGV2ZWwgPD0gbWF4TGV2ZWwpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gdGhpcy5jb2xvckZvckxvZ0xldmVsKGxldmVsKTtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMudXNlUHJlZml4ID8gYFske3RoaXMucHJvamVjdC5uYW1lfV0gYCA6IFwiXCI7XG4gICAgICBjb25zb2xlLmVycm9yKGAke0lDT059ICR7cHJlZml4fSR7Y29sb3IoLi4udGV4dCl9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdpdGggVkVSQk9TRSBzZXZlcml0eVxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmdzIG9yIG9iamVjdHMgdG8gcHJpbnRcbiAgICovXG4gIHB1YmxpYyB2ZXJib3NlKC4uLnRleHQ6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuVkVSQk9TRSwgLi4udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogTG9nIGEgbWVzc2FnZSB0byBzdGRlcnIgd2l0aCBERUJVRyBzZXZlcml0eVxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmdzIG9yIG9iamVjdHMgdG8gcHJpbnRcbiAgICovXG4gIHB1YmxpYyBkZWJ1ZyguLi50ZXh0OiBhbnlbXSkge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkRFQlVHLCAuLi50ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2cgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aXRoIElORk8gc2V2ZXJpdHlcbiAgICogQHBhcmFtIHRleHQgc3RyaW5ncyBvciBvYmplY3RzIHRvIHByaW50XG4gICAqL1xuICBwdWJsaWMgaW5mbyguLi50ZXh0OiBhbnlbXSkge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLklORk8sIC4uLnRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdpdGggV0FSTiBzZXZlcml0eVxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmdzIG9yIG9iamVjdHMgdG8gcHJpbnRcbiAgICovXG4gIHB1YmxpYyB3YXJuKC4uLnRleHQ6IGFueVtdKSB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuV0FSTiwgLi4udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogTG9nIGEgbWVzc2FnZSB0byBzdGRlcnIgd2l0aCBFUlJPUiBzZXZlcml0eVxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmdzIG9yIG9iamVjdHMgdG8gcHJpbnRcbiAgICovXG4gIHB1YmxpYyBlcnJvciguLi50ZXh0OiBhbnlbXSkge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLkVSUk9SLCAuLi50ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgY29sb3JGb3JMb2dMZXZlbChsZXZlbDogTG9nTGV2ZWwpOiBjaGFsay5DaGFsa0Z1bmN0aW9uIHtcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlIExvZ0xldmVsLkVSUk9SOlxuICAgICAgICByZXR1cm4gY2hhbGsucmVkO1xuICAgICAgY2FzZSBMb2dMZXZlbC5XQVJOOlxuICAgICAgICByZXR1cm4gY2hhbGsueWVsbG93O1xuICAgICAgY2FzZSBMb2dMZXZlbC5JTkZPOlxuICAgICAgICByZXR1cm4gY2hhbGsuY3lhbjtcbiAgICAgIGNhc2UgTG9nTGV2ZWwuREVCVUc6XG4gICAgICAgIHJldHVybiBjaGFsay5ncmF5O1xuICAgICAgY2FzZSBMb2dMZXZlbC5WRVJCT1NFOlxuICAgICAgICByZXR1cm4gY2hhbGsud2hpdGU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gY2hhbGsud2hpdGU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTG9nZ2luZyB2ZXJib3NpdHkuXG4gKi9cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgT0ZGID0gXCIwMC5vZmZcIixcbiAgRVJST1IgPSBcIjEwLmVycm9yXCIsXG4gIFdBUk4gPSBcIjIwLndhcm5cIixcbiAgSU5GTyA9IFwiMzAuaW5mb1wiLFxuICBERUJVRyA9IFwiNDAuZGVidWdcIixcbiAgVkVSQk9TRSA9IFwiNTAudmVyYm9zZVwiLFxufVxuIl19
|
package/lib/makefile.d.ts
CHANGED
|
@@ -1,108 +1,77 @@
|
|
|
1
1
|
import { FileBase, FileBaseOptions, IResolver } from "./file";
|
|
2
2
|
import { Project } from "./project";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @experimental
|
|
4
|
+
* A Make rule.
|
|
7
5
|
*/
|
|
8
6
|
export interface Rule {
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
8
|
+
* Files to be created or updated by this rule.
|
|
11
9
|
*
|
|
12
10
|
* If the rule is phony then instead this represents the command's name(s).
|
|
13
|
-
*
|
|
14
|
-
* @experimental
|
|
15
11
|
*/
|
|
16
12
|
readonly targets: string[];
|
|
17
13
|
/**
|
|
18
|
-
*
|
|
14
|
+
* Files that are used as inputs to create a target.
|
|
19
15
|
*
|
|
20
16
|
* @default []
|
|
21
|
-
* @experimental
|
|
22
17
|
*/
|
|
23
18
|
readonly prerequisites?: string[];
|
|
24
19
|
/**
|
|
25
|
-
*
|
|
20
|
+
* Commands that are run (using prerequisites as inputs) to create a target.
|
|
26
21
|
*
|
|
27
22
|
* @default []
|
|
28
|
-
* @experimental
|
|
29
23
|
*/
|
|
30
24
|
readonly recipe?: string[];
|
|
31
25
|
/**
|
|
32
|
-
*
|
|
26
|
+
* Marks whether the target is phony.
|
|
33
27
|
*
|
|
34
28
|
* @default false
|
|
35
|
-
* @experimental
|
|
36
29
|
*/
|
|
37
30
|
readonly phony?: boolean;
|
|
38
31
|
}
|
|
39
32
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* @experimental
|
|
33
|
+
* Options for Makefiles.
|
|
43
34
|
*/
|
|
44
35
|
export interface MakefileOptions extends FileBaseOptions {
|
|
45
36
|
/**
|
|
46
|
-
*
|
|
37
|
+
* List of targets to build when Make is invoked without specifying any targets.
|
|
47
38
|
*
|
|
48
39
|
* @default []
|
|
49
|
-
* @experimental
|
|
50
40
|
*/
|
|
51
41
|
readonly all?: string[];
|
|
52
42
|
/**
|
|
53
|
-
*
|
|
43
|
+
* Rules to include in the Makefile.
|
|
54
44
|
*
|
|
55
45
|
* @default []
|
|
56
|
-
* @experimental
|
|
57
46
|
*/
|
|
58
47
|
readonly rules?: Rule[];
|
|
59
48
|
}
|
|
60
49
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @experimental
|
|
50
|
+
* Minimal Makefile.
|
|
64
51
|
*/
|
|
65
52
|
export declare class Makefile extends FileBase {
|
|
66
53
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* @experimental
|
|
54
|
+
* List of rule definitions.
|
|
70
55
|
*/
|
|
71
56
|
readonly rules: Rule[];
|
|
72
57
|
private readonly all;
|
|
73
|
-
/**
|
|
74
|
-
* @experimental
|
|
75
|
-
*/
|
|
76
58
|
constructor(project: Project, filePath: string, options?: MakefileOptions);
|
|
77
59
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* @experimental
|
|
60
|
+
* Add a target to all
|
|
81
61
|
*/
|
|
82
62
|
addAll(target: string): Makefile;
|
|
83
63
|
/**
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* @experimental
|
|
64
|
+
* Add multiple targets to all
|
|
87
65
|
*/
|
|
88
66
|
addAlls(...targets: string[]): Makefile;
|
|
89
67
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* @experimental
|
|
68
|
+
* Add a rule to the Makefile.
|
|
93
69
|
*/
|
|
94
70
|
addRule(rule: Rule): Makefile;
|
|
95
71
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* @experimental
|
|
72
|
+
* Add multiple rules to the Makefile.
|
|
99
73
|
*/
|
|
100
74
|
addRules(...rules: Rule[]): Makefile;
|
|
101
75
|
private validateRule;
|
|
102
|
-
/**
|
|
103
|
-
* (experimental) Implemented by derived classes and returns the contents of the file to emit.
|
|
104
|
-
*
|
|
105
|
-
* @experimental
|
|
106
|
-
*/
|
|
107
76
|
protected synthesizeContent(resolver: IResolver): string | undefined;
|
|
108
77
|
}
|
package/lib/makefile.js
CHANGED
|
@@ -5,14 +5,9 @@ exports.Makefile = void 0;
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const file_1 = require("./file");
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @experimental
|
|
8
|
+
* Minimal Makefile.
|
|
11
9
|
*/
|
|
12
10
|
class Makefile extends file_1.FileBase {
|
|
13
|
-
/**
|
|
14
|
-
* @experimental
|
|
15
|
-
*/
|
|
16
11
|
constructor(project, filePath, options = {}) {
|
|
17
12
|
super(project, filePath, options);
|
|
18
13
|
const all = options.all ? options.all : [];
|
|
@@ -26,27 +21,21 @@ class Makefile extends file_1.FileBase {
|
|
|
26
21
|
this.rules = [this.all, ...rules];
|
|
27
22
|
}
|
|
28
23
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* @experimental
|
|
24
|
+
* Add a target to all
|
|
32
25
|
*/
|
|
33
26
|
addAll(target) {
|
|
34
27
|
this.all.prerequisites.push(target);
|
|
35
28
|
return this;
|
|
36
29
|
}
|
|
37
30
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* @experimental
|
|
31
|
+
* Add multiple targets to all
|
|
41
32
|
*/
|
|
42
33
|
addAlls(...targets) {
|
|
43
34
|
targets.forEach((e) => this.addAll(e));
|
|
44
35
|
return this;
|
|
45
36
|
}
|
|
46
37
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* @experimental
|
|
38
|
+
* Add a rule to the Makefile.
|
|
50
39
|
*/
|
|
51
40
|
addRule(rule) {
|
|
52
41
|
this.validateRule(rule);
|
|
@@ -54,9 +43,7 @@ class Makefile extends file_1.FileBase {
|
|
|
54
43
|
return this;
|
|
55
44
|
}
|
|
56
45
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* @experimental
|
|
46
|
+
* Add multiple rules to the Makefile.
|
|
60
47
|
*/
|
|
61
48
|
addRules(...rules) {
|
|
62
49
|
rules.forEach((e) => this.addRule(e));
|
|
@@ -67,11 +54,6 @@ class Makefile extends file_1.FileBase {
|
|
|
67
54
|
throw new Error('"targets" cannot be undefined or empty for items in "rules"');
|
|
68
55
|
}
|
|
69
56
|
}
|
|
70
|
-
/**
|
|
71
|
-
* (experimental) Implemented by derived classes and returns the contents of the file to emit.
|
|
72
|
-
*
|
|
73
|
-
* @experimental
|
|
74
|
-
*/
|
|
75
57
|
synthesizeContent(resolver) {
|
|
76
58
|
const rules = resolver.resolve(this.rules);
|
|
77
59
|
const lines = [
|
|
@@ -92,5 +74,5 @@ class Makefile extends file_1.FileBase {
|
|
|
92
74
|
}
|
|
93
75
|
exports.Makefile = Makefile;
|
|
94
76
|
_a = JSII_RTTI_SYMBOL_1;
|
|
95
|
-
Makefile[_a] = { fqn: "projen.Makefile", version: "0.52.
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
Makefile[_a] = { fqn: "projen.Makefile", version: "0.52.25" };
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEQ7QUEyRDlEOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsZUFBUTtJQVFwQyxZQUNFLE9BQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFVBQTJCLEVBQUU7UUFFN0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLEdBQUcsR0FBRztZQUNULE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixhQUFhLEVBQUUsR0FBRztZQUNsQixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxHQUFHLE9BQWlCO1FBQ2pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxJQUFVO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBRyxLQUFhO1FBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBVTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7U0FDSDtJQUNILENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxRQUFtQjtRQUM3QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxNQUFNLEtBQUssR0FBRztZQUNaLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFO2dCQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM3QyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRTlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRXZELE9BQU87b0JBQ0wsR0FBRyxLQUFLO29CQUNSLEdBQUcsT0FBTyxLQUFLLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRTtvQkFDckMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2lCQUNyQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQztTQUNILENBQUM7UUFFRixPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7O0FBM0ZILDRCQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbGVCYXNlLCBGaWxlQmFzZU9wdGlvbnMsIElSZXNvbHZlciB9IGZyb20gXCIuL2ZpbGVcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogQSBNYWtlIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZSB7XG4gIC8qKlxuICAgKiBGaWxlcyB0byBiZSBjcmVhdGVkIG9yIHVwZGF0ZWQgYnkgdGhpcyBydWxlLlxuICAgKlxuICAgKiBJZiB0aGUgcnVsZSBpcyBwaG9ueSB0aGVuIGluc3RlYWQgdGhpcyByZXByZXNlbnRzIHRoZSBjb21tYW5kJ3MgbmFtZShzKS5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBGaWxlcyB0aGF0IGFyZSB1c2VkIGFzIGlucHV0cyB0byBjcmVhdGUgYSB0YXJnZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBwcmVyZXF1aXNpdGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbW1hbmRzIHRoYXQgYXJlIHJ1biAodXNpbmcgcHJlcmVxdWlzaXRlcyBhcyBpbnB1dHMpIHRvIGNyZWF0ZSBhIHRhcmdldC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHJlY2lwZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXJrcyB3aGV0aGVyIHRoZSB0YXJnZXQgaXMgcGhvbnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwaG9ueT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBBbGxSdWxlIGV4dGVuZHMgUnVsZSB7XG4gIHJlYWRvbmx5IHByZXJlcXVpc2l0ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIE1ha2VmaWxlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYWtlZmlsZU9wdGlvbnMgZXh0ZW5kcyBGaWxlQmFzZU9wdGlvbnMge1xuICAvKipcbiAgICogTGlzdCBvZiB0YXJnZXRzIHRvIGJ1aWxkIHdoZW4gTWFrZSBpcyBpbnZva2VkIHdpdGhvdXQgc3BlY2lmeWluZyBhbnkgdGFyZ2V0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGFsbD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSdWxlcyB0byBpbmNsdWRlIGluIHRoZSBNYWtlZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogUnVsZVtdO1xufVxuXG4vKipcbiAqIE1pbmltYWwgTWFrZWZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYWtlZmlsZSBleHRlbmRzIEZpbGVCYXNlIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcnVsZSBkZWZpbml0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBydWxlczogUnVsZVtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsOiBBbGxSdWxlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IFByb2plY3QsXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zOiBNYWtlZmlsZU9wdGlvbnMgPSB7fVxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCBhbGwgPSBvcHRpb25zLmFsbCA/IG9wdGlvbnMuYWxsIDogW107XG4gICAgY29uc3QgcnVsZXMgPSBvcHRpb25zLnJ1bGVzID8gb3B0aW9ucy5ydWxlcyA6IFtdO1xuXG4gICAgcnVsZXMuZm9yRWFjaCgoZSkgPT4gdGhpcy52YWxpZGF0ZVJ1bGUoZSkpO1xuXG4gICAgdGhpcy5hbGwgPSB7XG4gICAgICB0YXJnZXRzOiBbXCJhbGxcIl0sXG4gICAgICBwcmVyZXF1aXNpdGVzOiBhbGwsXG4gICAgICBwaG9ueTogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMucnVsZXMgPSBbdGhpcy5hbGwsIC4uLnJ1bGVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0YXJnZXQgdG8gYWxsXG4gICAqL1xuICBwdWJsaWMgYWRkQWxsKHRhcmdldDogc3RyaW5nKTogTWFrZWZpbGUge1xuICAgIHRoaXMuYWxsLnByZXJlcXVpc2l0ZXMucHVzaCh0YXJnZXQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtdWx0aXBsZSB0YXJnZXRzIHRvIGFsbFxuICAgKi9cbiAgcHVibGljIGFkZEFsbHMoLi4udGFyZ2V0czogc3RyaW5nW10pOiBNYWtlZmlsZSB7XG4gICAgdGFyZ2V0cy5mb3JFYWNoKChlKSA9PiB0aGlzLmFkZEFsbChlKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcnVsZSB0byB0aGUgTWFrZWZpbGUuXG4gICAqL1xuICBwdWJsaWMgYWRkUnVsZShydWxlOiBSdWxlKTogTWFrZWZpbGUge1xuICAgIHRoaXMudmFsaWRhdGVSdWxlKHJ1bGUpO1xuICAgIHRoaXMucnVsZXMucHVzaChydWxlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbXVsdGlwbGUgcnVsZXMgdG8gdGhlIE1ha2VmaWxlLlxuICAgKi9cbiAgcHVibGljIGFkZFJ1bGVzKC4uLnJ1bGVzOiBSdWxlW10pOiBNYWtlZmlsZSB7XG4gICAgcnVsZXMuZm9yRWFjaCgoZSkgPT4gdGhpcy5hZGRSdWxlKGUpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVSdWxlKHJ1bGU6IFJ1bGUpIHtcbiAgICBpZiAoIXJ1bGUudGFyZ2V0cyB8fCAhcnVsZS50YXJnZXRzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnXCJ0YXJnZXRzXCIgY2Fubm90IGJlIHVuZGVmaW5lZCBvciBlbXB0eSBmb3IgaXRlbXMgaW4gXCJydWxlc1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQocmVzb2x2ZXI6IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcnVsZXMgPSByZXNvbHZlci5yZXNvbHZlKHRoaXMucnVsZXMpO1xuXG4gICAgY29uc3QgbGluZXMgPSBbXG4gICAgICAuLi5ydWxlcy5tYXAoKHJ1bGU6IFJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IHJ1bGUudGFyZ2V0cy5qb2luKFwiIFwiKTtcbiAgICAgICAgY29uc3QgcHJlcmVxdWlzaXRlcyA9IChcbiAgICAgICAgICBydWxlLnByZXJlcXVpc2l0ZXMgPyBydWxlLnByZXJlcXVpc2l0ZXMgOiBbXVxuICAgICAgICApLmpvaW4oXCIgXCIpO1xuICAgICAgICBjb25zdCByZWNpcGUgPSBydWxlLnJlY2lwZSA/IHJ1bGUucmVjaXBlIDogW107XG5cbiAgICAgICAgY29uc3QgcGhvbnkgPSBydWxlLnBob255ID8gW2AuUEhPTlk6ICR7dGFyZ2V0c31gXSA6IFtdO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4ucGhvbnksXG4gICAgICAgICAgYCR7dGFyZ2V0c306ICR7cHJlcmVxdWlzaXRlc31gLnRyaW0oKSxcbiAgICAgICAgICAuLi5yZWNpcGUubWFwKChzdGVwKSA9PiBgXFx0JHtzdGVwfWApLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGAke2xpbmVzLmpvaW4oXCJcXG5cXG5cIil9XFxuYDtcbiAgfVxufVxuIl19
|