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/python/projenrc.d.ts
CHANGED
|
@@ -1,42 +1,31 @@
|
|
|
1
1
|
import { Component } from "../component";
|
|
2
2
|
import { Project } from "../project";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* @experimental
|
|
4
|
+
* Options for `Projenrc`.
|
|
7
5
|
*/
|
|
8
6
|
export interface ProjenrcOptions {
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* The name of the projenrc file.
|
|
12
9
|
* @default ".projenrc.py"
|
|
13
|
-
* @experimental
|
|
14
10
|
*/
|
|
15
11
|
readonly filename?: string;
|
|
16
12
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
13
|
+
* The projen version to use
|
|
19
14
|
* @default - current version
|
|
20
|
-
* @experimental
|
|
21
15
|
*/
|
|
22
16
|
readonly projenVersion?: string;
|
|
23
17
|
}
|
|
24
18
|
/**
|
|
25
|
-
*
|
|
19
|
+
* Allows writing projenrc files in python.
|
|
26
20
|
*
|
|
27
21
|
* This will install `projen` as a Python dependency and will add a
|
|
28
22
|
* `synth` task which will run `.projenrc.py`.
|
|
29
|
-
*
|
|
30
|
-
* @experimental
|
|
31
23
|
*/
|
|
32
24
|
export declare class Projenrc extends Component {
|
|
33
25
|
/**
|
|
34
26
|
* The name of the projenrc file.
|
|
35
27
|
*/
|
|
36
28
|
private readonly rcfile;
|
|
37
|
-
/**
|
|
38
|
-
* @experimental
|
|
39
|
-
*/
|
|
40
29
|
constructor(project: Project, options?: ProjenrcOptions);
|
|
41
30
|
private generateProjenrc;
|
|
42
31
|
}
|
package/lib/python/projenrc.js
CHANGED
|
@@ -11,17 +11,12 @@ const component_1 = require("../component");
|
|
|
11
11
|
const dependencies_1 = require("../dependencies");
|
|
12
12
|
const inventory_1 = require("../inventory");
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Allows writing projenrc files in python.
|
|
15
15
|
*
|
|
16
16
|
* This will install `projen` as a Python dependency and will add a
|
|
17
17
|
* `synth` task which will run `.projenrc.py`.
|
|
18
|
-
*
|
|
19
|
-
* @experimental
|
|
20
18
|
*/
|
|
21
19
|
class Projenrc extends component_1.Component {
|
|
22
|
-
/**
|
|
23
|
-
* @experimental
|
|
24
|
-
*/
|
|
25
20
|
constructor(project, options = {}) {
|
|
26
21
|
var _b, _c, _d;
|
|
27
22
|
super(project);
|
|
@@ -79,7 +74,7 @@ class Projenrc extends component_1.Component {
|
|
|
79
74
|
}
|
|
80
75
|
exports.Projenrc = Projenrc;
|
|
81
76
|
_a = JSII_RTTI_SYMBOL_1;
|
|
82
|
-
Projenrc[_a] = { fqn: "projen.python.Projenrc", version: "0.52.
|
|
77
|
+
Projenrc[_a] = { fqn: "projen.python.Projenrc", version: "0.52.25" };
|
|
83
78
|
function renderPythonOptions(indent, optionFqns, initOptions) {
|
|
84
79
|
const imports = new Set();
|
|
85
80
|
if (!initOptions || Object.keys(initOptions).length === 0) {
|
|
@@ -135,4 +130,4 @@ function toPythonImport(fqn) {
|
|
|
135
130
|
return `from ${parts.slice(0, -1).join(".")} import ${parts[parts.length - 1]}`;
|
|
136
131
|
}
|
|
137
132
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHl0aG9uL3Byb2plbnJjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQXFDO0FBQ3JDLCtCQUE2QjtBQUM3Qix1Q0FBaUU7QUFDakUsc0NBQTJDO0FBQzNDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUFDakQsNENBQWdEOzs7Ozs7Ozs7QUFhaEQsTUFBYSxRQUFTLFNBQVEscUJBQVM7Ozs7SUFNckMsWUFBWSxPQUFnQixFQUFFLFVBQTJCLEVBQUU7O1FBQ3pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sYUFBYSxTQUFHLE9BQU8sQ0FBQyxhQUFhLG1DQUFJLHVCQUFjLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU0sU0FBRyxPQUFPLENBQUMsUUFBUSxtQ0FBSSxjQUFjLENBQUM7UUFFakQsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3hCLFVBQVUsYUFBYSxFQUFFLEVBQ3pCLDZCQUFjLENBQUMsTUFBTSxDQUN0QixDQUFDO1FBRUYsbUdBQW1HO1FBQ25HLE1BQUEsT0FBTyxDQUFDLFdBQVcsMENBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1FBRWpELGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0JBQWdCOztRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBQ0QsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUM5QixNQUFNLFlBQVksR0FBRyw0QkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sY0FBYyxxQkFB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LENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUMzRTthQUFNO1lBQ0wsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDL0M7S0FDRjtTQUFNLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0tBQy9DO0FBQ0gsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLEdBQVc7SUFDakMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sVUFBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUM3QjtTQUFNO1FBQ0wsT0FBTyxRQUFRLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUN6QyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3hCLEVBQUUsQ0FBQztLQUNKO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgc25ha2UgfSBmcm9tIFwiY2FzZVwiO1xuaW1wb3J0IHsgZXhpc3RzU3luYywgbWtkaXJwU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgUFJPSkVOX1ZFUlNJT04gfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCIuLi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB7IHJlYWRKc2lpTWFuaWZlc3QgfSBmcm9tIFwiLi4vaW52ZW50b3J5XCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5yY09wdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcHJvamVuVmVyc2lvbj86IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIFByb2plbnJjIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZW5yYyBmaWxlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByY2ZpbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQcm9qZW5yY09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3QgcHJvamVuVmVyc2lvbiA9IG9wdGlvbnMucHJvamVuVmVyc2lvbiA/PyBQUk9KRU5fVkVSU0lPTjtcbiAgICB0aGlzLnJjZmlsZSA9IG9wdGlvbnMuZmlsZW5hbWUgPz8gXCIucHJvamVucmMucHlcIjtcblxuICAgIHByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KFxuICAgICAgYHByb2plbkAke3Byb2plblZlcnNpb259YCxcbiAgICAgIERlcGVuZGVuY3lUeXBlLkRFVkVOVlxuICAgICk7XG5cbiAgICAvLyBzZXQgdXAgdGhlIFwiZGVmYXVsdFwiIHRhc2sgd2hpY2ggaXMgdGhlIHRhc2sgZXhlY3V0ZWQgd2hlbiBgcHJvamVuYCBpcyBleGVjdXRlZCBmb3IgdGhpcyBwcm9qZWN0LlxuICAgIHByb2plY3QuZGVmYXVsdFRhc2s/LmV4ZWMoXCJweXRob24gLnByb2plbnJjLnB5XCIpO1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhIG5ldyBwcm9qZWN0LCBnZW5lcmF0ZSBhIHNrZWxldG9uIGZvciBwcm9qZW5yYy5weVxuICAgIHRoaXMuZ2VuZXJhdGVQcm9qZW5yYygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVByb2plbnJjKCkge1xuICAgIGNvbnN0IGJvb3RzdHJhcCA9IHRoaXMucHJvamVjdC5pbml0UHJvamVjdDtcbiAgICBpZiAoIWJvb3RzdHJhcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBqc2lpRnFuID0gYm9vdHN0cmFwLmZxbjtcbiAgICBjb25zdCBqc2lpTWFuaWZlc3QgPSByZWFkSnNpaU1hbmlmZXN0KGpzaWlGcW4pO1xuICAgIGNvbnN0IGpzaWlUeXBlID0ganNpaU1hbmlmZXN0LnR5cGVzW2pzaWlGcW5dO1xuICAgIGNvbnN0IG9wdGlvbnNUeXBlRnFuID0ganNpaVR5cGUuaW5pdGlhbGl6ZXI/LnBhcmFtZXRlcnM/LlswXS50eXBlPy5mcW47XG4gICAgaWYgKCFvcHRpb25zVHlwZUZxbikge1xuICAgICAgdGhpcy5wcm9qZWN0LmxvZ2dlci53YXJuKFxuICAgICAgICBcImNhbm5vdCBkZXRlcm1pbmUganNpaSB0eXBlIGZvciBwcm9qZWN0IG9wdGlvbnNcIlxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBweXRob25GaWxlID0gam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLnJjZmlsZSk7XG5cbiAgICAvLyBza2lwIGlmIGZpbGUgZXhpc3RzXG4gICAgaWYgKGV4aXN0c1N5bmMocHl0aG9uRmlsZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBsZXQgaW5kZW50ID0gMDtcbiAgICBjb25zdCBlbWl0ID0gKGxpbmU6IHN0cmluZyA9IFwiXCIpID0+XG4gICAgICBsaW5lcy5wdXNoKFwiIFwiLnJlcGVhdChpbmRlbnQgKiA0KSArIGxpbmUpO1xuICAgIC8vIGNvbnN0IG9wZW5CbG9jayA9IChsaW5lOiBzdHJpbmcgPSAnJykgPT4geyBlbWl0KGxpbmUgKyAnIHsnKTsgaW5kZW50Kys7IH07XG4gICAgLy8gY29uc3QgY2xvc2VCbG9jayA9ICgpID0+IHsgaW5kZW50LS07IGVtaXQoJ30nKTsgfTtcblxuICAgIGNvbnN0IG9wdGlvbkZxbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBib290c3RyYXAudHlwZS5vcHRpb25zKSB7XG4gICAgICBpZiAob3B0aW9uLmZxbikge1xuICAgICAgICBvcHRpb25GcW5zW29wdGlvbi5uYW1lXSA9IG9wdGlvbi5mcW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyByZW5kZXJlZE9wdGlvbnMsIGltcG9ydHMgfSA9IHJlbmRlclB5dGhvbk9wdGlvbnMoXG4gICAgICBpbmRlbnQsXG4gICAgICBvcHRpb25GcW5zLFxuICAgICAgYm9vdHN0cmFwLmFyZ3NcbiAgICApO1xuXG4gICAgZW1pdCh0b1B5dGhvbkltcG9ydChqc2lpRnFuKSk7XG4gICAgZm9yIChjb25zdCBmcW4gb2YgaW1wb3J0cykge1xuICAgICAgZW1pdCh0b1B5dGhvbkltcG9ydChmcW4pKTtcbiAgICB9XG4gICAgZW1pdCgpO1xuICAgIGVtaXQoYHByb2plY3QgPSAke2pzaWlUeXBlLm5hbWV9KCR7cmVuZGVyZWRPcHRpb25zfSlgKTtcbiAgICBlbWl0KCk7XG4gICAgZW1pdChcInByb2plY3Quc3ludGgoKVwiKTtcblxuICAgIG1rZGlycFN5bmMoZGlybmFtZShweXRob25GaWxlKSk7XG4gICAgd3JpdGVGaWxlU3luYyhweXRob25GaWxlLCBsaW5lcy5qb2luKFwiXFxuXCIpKTtcblxuICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcbiAgICAgIGBQcm9qZWN0IGRlZmluaXRpb24gZmlsZSB3YXMgY3JlYXRlZCBhdCAke3B5dGhvbkZpbGV9YFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyUHl0aG9uT3B0aW9ucyhcbiAgaW5kZW50OiBudW1iZXIsXG4gIG9wdGlvbkZxbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIGluaXRPcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PlxuKSB7XG4gIGNvbnN0IGltcG9ydHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgaWYgKCFpbml0T3B0aW9ucyB8fCBPYmplY3Qua2V5cyhpbml0T3B0aW9ucykubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gbm8gb3B0aW9uc1xuICAgIHJldHVybiB7IHJlbmRlcmVkT3B0aW9uczogXCJcIiwgaW1wb3J0cyB9O1xuICB9XG5cbiAgY29uc3QgbGluZXMgPSBbXCJcIl07XG5cbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGluaXRPcHRpb25zKSkge1xuICAgIGNvbnN0IHsgcHl0aG9uVmFsdWUsIGltcG9ydE5hbWUgfSA9IHRvUHl0aG9uVmFsdWUodmFsdWUsIG5hbWUsIG9wdGlvbkZxbnMpO1xuICAgIGlmIChpbXBvcnROYW1lKSBpbXBvcnRzLmFkZChpbXBvcnROYW1lKTtcbiAgICBsaW5lcy5wdXNoKGAke3RvUHl0aG9uUHJvcGVydHkobmFtZSl9PSR7cHl0aG9uVmFsdWV9LGApO1xuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRPcHRpb25zID0gbGluZXNcbiAgICAuam9pbihgXFxuJHtcIiBcIi5yZXBlYXQoKGluZGVudCArIDEpICogNCl9YClcbiAgICAuY29uY2F0KFwiXFxuXCIpO1xuICByZXR1cm4geyByZW5kZXJlZE9wdGlvbnMsIGltcG9ydHMgfTtcbn1cblxuZnVuY3Rpb24gdG9QeXRob25Qcm9wZXJ0eShwcm9wOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHNuYWtlKHByb3ApO1xufVxuXG5mdW5jdGlvbiB0b1B5dGhvblZhbHVlKFxuICB2YWx1ZTogYW55LFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbkZxbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbikge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgIHJldHVybiB7IHB5dGhvblZhbHVlOiB2YWx1ZSA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiIH07XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgcmV0dXJuIHsgcHl0aG9uVmFsdWU6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSB9O1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGlmIChvcHRpb25GcW5zW25hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gb3B0aW9uRnFuc1tuYW1lXS5zcGxpdChcIi5cIik7XG4gICAgICBjb25zdCBiYXNlID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBjaG9pY2UgPSBTdHJpbmcodmFsdWUpLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgvLS9nLCBcIl9cIik7XG4gICAgICByZXR1cm4geyBweXRob25WYWx1ZTogYCR7YmFzZX0uJHtjaG9pY2V9YCwgaW1wb3J0TmFtZTogb3B0aW9uRnFuc1tuYW1lXSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBweXRob25WYWx1ZTogSlNPTi5zdHJpbmdpZnkodmFsdWUpIH07XG4gICAgfVxuICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4geyBweXRob25WYWx1ZTogXCJOb25lXCIgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBweXRob25WYWx1ZTogSlNPTi5zdHJpbmdpZnkodmFsdWUpIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9QeXRob25JbXBvcnQoZnFuOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSBmcW4uc3BsaXQoXCIuXCIpO1xuICBpZiAocGFydHMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGBpbXBvcnQgJHtwYXJ0c1swXX1gO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgZnJvbSAke3BhcnRzLnNsaWNlKDAsIC0xKS5qb2luKFwiLlwiKX0gaW1wb3J0ICR7XG4gICAgICBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXVxuICAgIH1gO1xuICB9XG59XG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHl0aG9uL3Byb2plbnJjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQXFDO0FBQ3JDLCtCQUE2QjtBQUM3Qix1Q0FBaUU7QUFDakUsc0NBQTJDO0FBQzNDLDRDQUF5QztBQUN6QyxrREFBaUQ7QUFDakQsNENBQWdEO0FBb0JoRDs7Ozs7R0FLRztBQUNILE1BQWEsUUFBUyxTQUFRLHFCQUFTO0lBTXJDLFlBQVksT0FBZ0IsRUFBRSxVQUEyQixFQUFFOztRQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixNQUFNLGFBQWEsU0FBRyxPQUFPLENBQUMsYUFBYSxtQ0FBSSx1QkFBYyxDQUFDO1FBQzlELElBQUksQ0FBQyxNQUFNLFNBQUcsT0FBTyxDQUFDLFFBQVEsbUNBQUksY0FBYyxDQUFDO1FBRWpELE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUN4QixVQUFVLGFBQWEsRUFBRSxFQUN6Qiw2QkFBYyxDQUFDLE1BQU0sQ0FDdEIsQ0FBQztRQUVGLG1HQUFtRztRQUNuRyxNQUFBLE9BQU8sQ0FBQyxXQUFXLDBDQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtRQUVqRCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjs7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU87U0FDUjtRQUNELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsNEJBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxNQUFNLGNBQWMs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TUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDM0U7YUFBTTtZQUNMLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQy9DO0tBQ0Y7U0FBTSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtRQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ2hDO1NBQU07UUFDTCxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztLQUMvQztBQUNILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxHQUFXO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN0QixPQUFPLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDN0I7U0FBTTtRQUNMLE9BQU8sUUFBUSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FDekMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4QixFQUFFLENBQUM7S0FDSjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHNuYWtlIH0gZnJvbSBcImNhc2VcIjtcbmltcG9ydCB7IGV4aXN0c1N5bmMsIG1rZGlycFN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IFBST0pFTl9WRVJTSU9OIH0gZnJvbSBcIi4uL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgeyByZWFkSnNpaU1hbmlmZXN0IH0gZnJvbSBcIi4uL2ludmVudG9yeVwiO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFByb2plbnJjYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5yY09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plbnJjIGZpbGUuXG4gICAqIEBkZWZhdWx0IFwiLnByb2plbnJjLnB5XCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvamVuIHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IC0gY3VycmVudCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBwcm9qZW5WZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFsbG93cyB3cml0aW5nIHByb2plbnJjIGZpbGVzIGluIHB5dGhvbi5cbiAqXG4gKiBUaGlzIHdpbGwgaW5zdGFsbCBgcHJvamVuYCBhcyBhIFB5dGhvbiBkZXBlbmRlbmN5IGFuZCB3aWxsIGFkZCBhXG4gKiBgc3ludGhgIHRhc2sgd2hpY2ggd2lsbCBydW4gYC5wcm9qZW5yYy5weWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5yYyBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvamVucmMgZmlsZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmNmaWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogUHJvamVucmNPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IHByb2plblZlcnNpb24gPSBvcHRpb25zLnByb2plblZlcnNpb24gPz8gUFJPSkVOX1ZFUlNJT047XG4gICAgdGhpcy5yY2ZpbGUgPSBvcHRpb25zLmZpbGVuYW1lID8/IFwiLnByb2plbnJjLnB5XCI7XG5cbiAgICBwcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShcbiAgICAgIGBwcm9qZW5AJHtwcm9qZW5WZXJzaW9ufWAsXG4gICAgICBEZXBlbmRlbmN5VHlwZS5ERVZFTlZcbiAgICApO1xuXG4gICAgLy8gc2V0IHVwIHRoZSBcImRlZmF1bHRcIiB0YXNrIHdoaWNoIGlzIHRoZSB0YXNrIGV4ZWN1dGVkIHdoZW4gYHByb2plbmAgaXMgZXhlY3V0ZWQgZm9yIHRoaXMgcHJvamVjdC5cbiAgICBwcm9qZWN0LmRlZmF1bHRUYXNrPy5leGVjKFwicHl0aG9uIC5wcm9qZW5yYy5weVwiKTtcblxuICAgIC8vIGlmIHRoaXMgaXMgYSBuZXcgcHJvamVjdCwgZ2VuZXJhdGUgYSBza2VsZXRvbiBmb3IgcHJvamVucmMucHlcbiAgICB0aGlzLmdlbmVyYXRlUHJvamVucmMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9qZW5yYygpIHtcbiAgICBjb25zdCBib290c3RyYXAgPSB0aGlzLnByb2plY3QuaW5pdFByb2plY3Q7XG4gICAgaWYgKCFib290c3RyYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QganNpaUZxbiA9IGJvb3RzdHJhcC5mcW47XG4gICAgY29uc3QganNpaU1hbmlmZXN0ID0gcmVhZEpzaWlNYW5pZmVzdChqc2lpRnFuKTtcbiAgICBjb25zdCBqc2lpVHlwZSA9IGpzaWlNYW5pZmVzdC50eXBlc1tqc2lpRnFuXTtcbiAgICBjb25zdCBvcHRpb25zVHlwZUZxbiA9IGpzaWlUeXBlLmluaXRpYWxpemVyPy5wYXJhbWV0ZXJzPy5bMF0udHlwZT8uZnFuO1xuICAgIGlmICghb3B0aW9uc1R5cGVGcW4pIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIud2FybihcbiAgICAgICAgXCJjYW5ub3QgZGV0ZXJtaW5lIGpzaWkgdHlwZSBmb3IgcHJvamVjdCBvcHRpb25zXCJcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHl0aG9uRmlsZSA9IGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5yY2ZpbGUpO1xuXG4gICAgLy8gc2tpcCBpZiBmaWxlIGV4aXN0c1xuICAgIGlmIChleGlzdHNTeW5jKHB5dGhvbkZpbGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgbGV0IGluZGVudCA9IDA7XG4gICAgY29uc3QgZW1pdCA9IChsaW5lOiBzdHJpbmcgPSBcIlwiKSA9PlxuICAgICAgbGluZXMucHVzaChcIiBcIi5yZXBlYXQoaW5kZW50ICogNCkgKyBsaW5lKTtcbiAgICAvLyBjb25zdCBvcGVuQmxvY2sgPSAobGluZTogc3RyaW5nID0gJycpID0+IHsgZW1pdChsaW5lICsgJyB7Jyk7IGluZGVudCsrOyB9O1xuICAgIC8vIGNvbnN0IGNsb3NlQmxvY2sgPSAoKSA9PiB7IGluZGVudC0tOyBlbWl0KCd9Jyk7IH07XG5cbiAgICBjb25zdCBvcHRpb25GcW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgYm9vdHN0cmFwLnR5cGUub3B0aW9ucykge1xuICAgICAgaWYgKG9wdGlvbi5mcW4pIHtcbiAgICAgICAgb3B0aW9uRnFuc1tvcHRpb24ubmFtZV0gPSBvcHRpb24uZnFuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgcmVuZGVyZWRPcHRpb25zLCBpbXBvcnRzIH0gPSByZW5kZXJQeXRob25PcHRpb25zKFxuICAgICAgaW5kZW50LFxuICAgICAgb3B0aW9uRnFucyxcbiAgICAgIGJvb3RzdHJhcC5hcmdzXG4gICAgKTtcblxuICAgIGVtaXQodG9QeXRob25JbXBvcnQoanNpaUZxbikpO1xuICAgIGZvciAoY29uc3QgZnFuIG9mIGltcG9ydHMpIHtcbiAgICAgIGVtaXQodG9QeXRob25JbXBvcnQoZnFuKSk7XG4gICAgfVxuICAgIGVtaXQoKTtcbiAgICBlbWl0KGBwcm9qZWN0ID0gJHtqc2lpVHlwZS5uYW1lfSgke3JlbmRlcmVkT3B0aW9uc30pYCk7XG4gICAgZW1pdCgpO1xuICAgIGVtaXQoXCJwcm9qZWN0LnN5bnRoKClcIik7XG5cbiAgICBta2RpcnBTeW5jKGRpcm5hbWUocHl0aG9uRmlsZSkpO1xuICAgIHdyaXRlRmlsZVN5bmMocHl0aG9uRmlsZSwgbGluZXMuam9pbihcIlxcblwiKSk7XG5cbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXG4gICAgICBgUHJvamVjdCBkZWZpbml0aW9uIGZpbGUgd2FzIGNyZWF0ZWQgYXQgJHtweXRob25GaWxlfWBcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlclB5dGhvbk9wdGlvbnMoXG4gIGluZGVudDogbnVtYmVyLFxuICBvcHRpb25GcW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBpbml0T3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT5cbikge1xuICBjb25zdCBpbXBvcnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGlmICghaW5pdE9wdGlvbnMgfHwgT2JqZWN0LmtleXMoaW5pdE9wdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vIG5vIG9wdGlvbnNcbiAgICByZXR1cm4geyByZW5kZXJlZE9wdGlvbnM6IFwiXCIsIGltcG9ydHMgfTtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gW1wiXCJdO1xuXG4gIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpbml0T3B0aW9ucykpIHtcbiAgICBjb25zdCB7IHB5dGhvblZhbHVlLCBpbXBvcnROYW1lIH0gPSB0b1B5dGhvblZhbHVlKHZhbHVlLCBuYW1lLCBvcHRpb25GcW5zKTtcbiAgICBpZiAoaW1wb3J0TmFtZSkgaW1wb3J0cy5hZGQoaW1wb3J0TmFtZSk7XG4gICAgbGluZXMucHVzaChgJHt0b1B5dGhvblByb3BlcnR5KG5hbWUpfT0ke3B5dGhvblZhbHVlfSxgKTtcbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVkT3B0aW9ucyA9IGxpbmVzXG4gICAgLmpvaW4oYFxcbiR7XCIgXCIucmVwZWF0KChpbmRlbnQgKyAxKSAqIDQpfWApXG4gICAgLmNvbmNhdChcIlxcblwiKTtcbiAgcmV0dXJuIHsgcmVuZGVyZWRPcHRpb25zLCBpbXBvcnRzIH07XG59XG5cbmZ1bmN0aW9uIHRvUHl0aG9uUHJvcGVydHkocHJvcDogc3RyaW5nKSB7XG4gIHJldHVybiBzbmFrZShwcm9wKTtcbn1cblxuZnVuY3Rpb24gdG9QeXRob25WYWx1ZShcbiAgdmFsdWU6IGFueSxcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25GcW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4pIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICByZXR1cm4geyBweXRob25WYWx1ZTogdmFsdWUgPyBcIlRydWVcIiA6IFwiRmFsc2VcIiB9O1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB7IHB5dGhvblZhbHVlOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgfTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAob3B0aW9uRnFuc1tuYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IG9wdGlvbkZxbnNbbmFtZV0uc3BsaXQoXCIuXCIpO1xuICAgICAgY29uc3QgYmFzZSA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgICAgY29uc3QgY2hvaWNlID0gU3RyaW5nKHZhbHVlKS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoLy0vZywgXCJfXCIpO1xuICAgICAgcmV0dXJuIHsgcHl0aG9uVmFsdWU6IGAke2Jhc2V9LiR7Y2hvaWNlfWAsIGltcG9ydE5hbWU6IG9wdGlvbkZxbnNbbmFtZV0gfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgcHl0aG9uVmFsdWU6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSB9O1xuICAgIH1cbiAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHsgcHl0aG9uVmFsdWU6IFwiTm9uZVwiIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgcHl0aG9uVmFsdWU6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvUHl0aG9uSW1wb3J0KGZxbjogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnRzID0gZnFuLnNwbGl0KFwiLlwiKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBgaW1wb3J0ICR7cGFydHNbMF19YDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYGZyb20gJHtwYXJ0cy5zbGljZSgwLCAtMSkuam9pbihcIi5cIil9IGltcG9ydCAke1xuICAgICAgcGFydHNbcGFydHMubGVuZ3RoIC0gMV1cbiAgICB9YDtcbiAgfVxufVxuIl19
|
package/lib/python/pytest.d.ts
CHANGED
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
import { Component } from "../component";
|
|
2
2
|
import { PythonProject } from "./python-project";
|
|
3
|
-
/**
|
|
4
|
-
* @experimental
|
|
5
|
-
*/
|
|
6
3
|
export interface PytestOptions {
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
5
|
+
* Pytest version
|
|
9
6
|
*
|
|
10
7
|
* @default "6.2.1"
|
|
11
|
-
* @experimental
|
|
12
8
|
*/
|
|
13
9
|
readonly version?: string;
|
|
14
10
|
/**
|
|
15
|
-
*
|
|
11
|
+
* Directory with tests
|
|
16
12
|
*
|
|
17
13
|
* @default 'tests'
|
|
18
|
-
* @experimental
|
|
19
14
|
*/
|
|
20
15
|
readonly testdir?: string;
|
|
21
16
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @experimental
|
|
17
|
+
* Stop the testing process after the first N failures
|
|
25
18
|
*/
|
|
26
19
|
readonly maxFailures?: number;
|
|
27
20
|
}
|
|
28
|
-
/**
|
|
29
|
-
* @experimental
|
|
30
|
-
*/
|
|
31
21
|
export declare class Pytest extends Component {
|
|
32
|
-
/**
|
|
33
|
-
* @experimental
|
|
34
|
-
*/
|
|
35
22
|
constructor(project: PythonProject, options?: PytestOptions);
|
|
36
23
|
}
|
package/lib/python/pytest.js
CHANGED
|
@@ -5,13 +5,7 @@ exports.Pytest = void 0;
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const component_1 = require("../component");
|
|
7
7
|
const sample_file_1 = require("../sample-file");
|
|
8
|
-
/**
|
|
9
|
-
* @experimental
|
|
10
|
-
*/
|
|
11
8
|
class Pytest extends component_1.Component {
|
|
12
|
-
/**
|
|
13
|
-
* @experimental
|
|
14
|
-
*/
|
|
15
9
|
constructor(project, options = {}) {
|
|
16
10
|
var _b;
|
|
17
11
|
super(project);
|
|
@@ -48,5 +42,5 @@ class Pytest extends component_1.Component {
|
|
|
48
42
|
}
|
|
49
43
|
exports.Pytest = Pytest;
|
|
50
44
|
_a = JSII_RTTI_SYMBOL_1;
|
|
51
|
-
Pytest[_a] = { fqn: "projen.python.Pytest", version: "0.52.
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
Pytest[_a] = { fqn: "projen.python.Pytest", version: "0.52.25" };
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B5dGhvbi9weXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBeUM7QUFDekMsZ0RBQTJDO0FBd0IzQyxNQUFhLE1BQU8sU0FBUSxxQkFBUztJQUNuQyxZQUFZLE9BQXNCLEVBQUUsVUFBeUIsRUFBRTs7UUFDN0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxPQUFPLFNBQUcsT0FBTyxDQUFDLE9BQU8sbUNBQUksT0FBTyxDQUFDO1FBRTNDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ25CO1lBQ0UsUUFBUTtZQUNSLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNyRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO1FBRUYsSUFBSSx1QkFBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7WUFDOUIsS0FBSyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixpQkFBaUIsRUFBRTtvQkFDakIsZUFBZTtvQkFDZixFQUFFO29CQUNGLFFBQVEsT0FBTyxDQUFDLFVBQVUsdUJBQXVCO29CQUNqRCxFQUFFO29CQUNGLDJCQUEyQjtvQkFDM0IsMkJBQTJCO29CQUMzQixPQUFPO29CQUNQLDRDQUE0QztvQkFDNUMsMENBQTBDO29CQUMxQywwREFBMEQ7b0JBQzFELFFBQVE7b0JBQ1IsR0FBRztvQkFDSCxpQ0FBaUM7b0JBQ2pDLDhDQUE4QztvQkFDOUMsb0NBQW9DO29CQUNwQyxFQUFFO2lCQUNILENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNiO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0Q0gsd0JBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSBcIi4uL3NhbXBsZS1maWxlXCI7XG5pbXBvcnQgeyBQeXRob25Qcm9qZWN0IH0gZnJvbSBcIi4vcHl0aG9uLXByb2plY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQeXRlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFB5dGVzdCB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiNi4yLjFcIlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogRGlyZWN0b3J5IHdpdGggdGVzdHNcbiAgICpcbiAgICogQGRlZmF1bHQgJ3Rlc3RzJ1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcCB0aGUgdGVzdGluZyBwcm9jZXNzIGFmdGVyIHRoZSBmaXJzdCBOIGZhaWx1cmVzXG4gICAqL1xuICByZWFkb25seSBtYXhGYWlsdXJlcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFB5dGVzdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFB5dGhvblByb2plY3QsIG9wdGlvbnM6IFB5dGVzdE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IG9wdGlvbnMudmVyc2lvbiA/PyBcIjYuMi4xXCI7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcGVuZGVuY3koYHB5dGVzdEAke3ZlcnNpb259YCk7XG5cbiAgICBwcm9qZWN0LnRlc3RUYXNrLmV4ZWMoXG4gICAgICBbXG4gICAgICAgIFwicHl0ZXN0XCIsXG4gICAgICAgIC4uLihvcHRpb25zLm1heEZhaWx1cmVzID8gW2AtLW1heGZhaWw9JHtvcHRpb25zLm1heEZhaWx1cmVzfWBdIDogW10pLFxuICAgICAgXS5qb2luKFwiIFwiKVxuICAgICk7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHByb2plY3QsIFwidGVzdHNcIiwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJfX2luaXRfXy5weVwiOiBcIlwiLFxuICAgICAgICBcInRlc3RfZXhhbXBsZS5weVwiOiBbXG4gICAgICAgICAgXCJpbXBvcnQgcHl0ZXN0XCIsXG4gICAgICAgICAgXCJcIixcbiAgICAgICAgICBgZnJvbSAke3Byb2plY3QubW9kdWxlTmFtZX0uZXhhbXBsZSBpbXBvcnQgaGVsbG9gLFxuICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgXCJAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoXCIsXG4gICAgICAgICAgJyAgICAoXCJuYW1lXCIsIFwiZXhwZWN0ZWRcIiksJyxcbiAgICAgICAgICBcIiAgICBbXCIsXG4gICAgICAgICAgJyAgICAgICAgKFwiQS4gTXVzaW5nXCIsIFwiSGVsbG8gQS4gTXVzaW5nIVwiKSwnLFxuICAgICAgICAgICcgICAgICAgIChcInRyYXZlbGVyXCIsIFwiSGVsbG8gdHJhdmVsZXIhXCIpLCcsXG4gICAgICAgICAgJyAgICAgICAgKFwicHJvamVuIGRldmVsb3BlclwiLCBcIkhlbGxvIHByb2plbiBkZXZlbG9wZXIhXCIpLCcsXG4gICAgICAgICAgXCIgICAgXSxcIixcbiAgICAgICAgICBcIilcIixcbiAgICAgICAgICBcImRlZiB0ZXN0X2hlbGxvKG5hbWUsIGV4cGVjdGVkKTpcIixcbiAgICAgICAgICAnICAgIFwiXCJcIkV4YW1wbGUgdGVzdCB3aXRoIHBhcmFtZXRyaXphdGlvbi5cIlwiXCInLFxuICAgICAgICAgIFwiICAgIGFzc2VydCBoZWxsbyhuYW1lKSA9PSBleHBlY3RlZFwiLFxuICAgICAgICAgIFwiXCIsXG4gICAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,44 +1,30 @@
|
|
|
1
1
|
import { Dependency } from "../dependencies";
|
|
2
2
|
import { Task } from "../task";
|
|
3
|
-
/**
|
|
4
|
-
* @experimental
|
|
5
|
-
*/
|
|
6
3
|
export interface IPythonDeps {
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @experimental
|
|
5
|
+
* A task that installs and updates dependencies.
|
|
11
6
|
*/
|
|
12
7
|
readonly installTask: Task;
|
|
13
8
|
/**
|
|
14
|
-
*
|
|
9
|
+
* Adds a runtime dependency.
|
|
15
10
|
*
|
|
16
|
-
* @param spec Format `<module>@<semver
|
|
17
|
-
* @experimental
|
|
11
|
+
* @param spec Format `<module>@<semver>`
|
|
18
12
|
*/
|
|
19
13
|
addDependency(spec: string): void;
|
|
20
14
|
/**
|
|
21
|
-
*
|
|
15
|
+
* Adds a dev dependency.
|
|
22
16
|
*
|
|
23
|
-
* @param spec Format `<module>@<semver
|
|
24
|
-
* @experimental
|
|
17
|
+
* @param spec Format `<module>@<semver>`
|
|
25
18
|
*/
|
|
26
19
|
addDevDependency(spec: string): void;
|
|
27
20
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @experimental
|
|
21
|
+
* Installs dependencies (called during post-synthesis).
|
|
31
22
|
*/
|
|
32
23
|
installDependencies(): void;
|
|
33
24
|
}
|
|
34
|
-
/**
|
|
35
|
-
* @experimental
|
|
36
|
-
*/
|
|
37
25
|
export interface IPackageProvider {
|
|
38
26
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* @experimental
|
|
27
|
+
* An array of packages (may be dynamically generated).
|
|
42
28
|
*/
|
|
43
29
|
readonly packages: Dependency[];
|
|
44
30
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHl0aG9uL3B5dGhvbi1kZXBzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXBlbmRlbmN5IH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVB5dGhvbkRlcHMge1xuICAvKipcbiAgICogQSB0YXNrIHRoYXQgaW5zdGFsbHMgYW5kIHVwZGF0ZXMgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFsbFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBydW50aW1lIGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIEZvcm1hdCBgPG1vZHVsZT5APHNlbXZlcj5gXG4gICAqL1xuICBhZGREZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZXYgZGVwZW5kZW5jeS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgRm9ybWF0IGA8bW9kdWxlPkA8c2VtdmVyPmBcbiAgICovXG4gIGFkZERldkRlcGVuZGVuY3koc3BlYzogc3RyaW5nKTogdm9pZDtcblxuICAvKipcbiAgICogSW5zdGFsbHMgZGVwZW5kZW5jaWVzIChjYWxsZWQgZHVyaW5nIHBvc3Qtc3ludGhlc2lzKS5cbiAgICovXG4gIGluc3RhbGxEZXBlbmRlbmNpZXMoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFja2FnZVByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHBhY2thZ2VzIChtYXkgYmUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VzOiBEZXBlbmRlbmN5W107XG59XG4iXX0=
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @experimental
|
|
3
|
-
*/
|
|
4
1
|
export interface IPythonEnv {
|
|
5
2
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @experimental
|
|
3
|
+
* Initializes the virtual environment if it doesn't exist (called during post-synthesis).
|
|
9
4
|
*/
|
|
10
5
|
setupEnvironment(): void;
|
|
11
6
|
}
|
package/lib/python/python-env.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLWVudi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9weXRob24vcHl0aG9uLWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUHl0aG9uRW52IHtcbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50IGlmIGl0IGRvZXNuJ3QgZXhpc3QgKGNhbGxlZCBkdXJpbmcgcG9zdC1zeW50aGVzaXMpLlxuICAgKi9cbiAgc2V0dXBFbnZpcm9ubWVudCgpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,80 +1,58 @@
|
|
|
1
1
|
import { Task } from "../task";
|
|
2
2
|
import { PoetryPyprojectOptionsWithoutDeps } from "./poetry";
|
|
3
|
-
/**
|
|
4
|
-
* @experimental
|
|
5
|
-
*/
|
|
6
3
|
export interface IPythonPackaging {
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @experimental
|
|
5
|
+
* A task that uploads the package to a package repository.
|
|
11
6
|
*/
|
|
12
7
|
readonly publishTask: Task;
|
|
13
8
|
}
|
|
14
|
-
/**
|
|
15
|
-
* @experimental
|
|
16
|
-
*/
|
|
17
9
|
export interface PythonPackagingOptions {
|
|
18
10
|
/**
|
|
19
|
-
*
|
|
11
|
+
* Author's name
|
|
20
12
|
*
|
|
21
13
|
* @default $GIT_USER_NAME
|
|
22
|
-
* @experimental
|
|
23
14
|
*/
|
|
24
15
|
readonly authorName: string;
|
|
25
16
|
/**
|
|
26
|
-
*
|
|
17
|
+
* Author's e-mail
|
|
27
18
|
*
|
|
28
19
|
* @default $GIT_USER_EMAIL
|
|
29
|
-
* @experimental
|
|
30
20
|
*/
|
|
31
21
|
readonly authorEmail: string;
|
|
32
22
|
/**
|
|
33
|
-
*
|
|
23
|
+
* Version of the package.
|
|
34
24
|
*
|
|
35
25
|
* @default "0.1.0"
|
|
36
|
-
* @
|
|
37
|
-
* @featured true
|
|
26
|
+
* @featured
|
|
38
27
|
*/
|
|
39
28
|
readonly version: string;
|
|
40
29
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* @experimental
|
|
44
|
-
* @featured true
|
|
30
|
+
* A short description of the package.
|
|
31
|
+
* @featured
|
|
45
32
|
*/
|
|
46
33
|
readonly description?: string;
|
|
47
34
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* @experimental
|
|
35
|
+
* License of this package as an SPDX identifier.
|
|
51
36
|
*/
|
|
52
37
|
readonly license?: string;
|
|
53
38
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* @experimental
|
|
39
|
+
* A URL to the website of the project.
|
|
57
40
|
*/
|
|
58
41
|
readonly homepage?: string;
|
|
59
42
|
/**
|
|
60
|
-
*
|
|
43
|
+
* A list of PyPI trove classifiers that describe the project.
|
|
61
44
|
*
|
|
62
45
|
* @see https://pypi.org/classifiers/
|
|
63
|
-
* @experimental
|
|
64
46
|
*/
|
|
65
47
|
readonly classifiers?: string[];
|
|
66
48
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* @experimental
|
|
49
|
+
* Additional fields to pass in the setup() function if using setuptools
|
|
70
50
|
*/
|
|
71
51
|
readonly setupConfig?: {
|
|
72
52
|
[key: string]: any;
|
|
73
53
|
};
|
|
74
54
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* @experimental
|
|
55
|
+
* Additional options to set for poetry if using poetry
|
|
78
56
|
*/
|
|
79
57
|
readonly poetryOptions?: PoetryPyprojectOptionsWithoutDeps;
|
|
80
58
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl0aG9uLXBhY2thZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9weXRob24vcHl0aG9uLXBhY2thZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFzayB9IGZyb20gXCIuLi90YXNrXCI7XG5pbXBvcnQgeyBQb2V0cnlQeXByb2plY3RPcHRpb25zV2l0aG91dERlcHMgfSBmcm9tIFwiLi9wb2V0cnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUHl0aG9uUGFja2FnaW5nIHtcbiAgLyoqXG4gICAqIEEgdGFzayB0aGF0IHVwbG9hZHMgdGhlIHBhY2thZ2UgdG8gYSBwYWNrYWdlIHJlcG9zaXRvcnkuXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVGFzazogVGFzaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQeXRob25QYWNrYWdpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIEF1dGhvcidzIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgJEdJVF9VU0VSX05BTUVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQXV0aG9yJ3MgZS1tYWlsXG4gICAqXG4gICAqIEBkZWZhdWx0ICRHSVRfVVNFUl9FTUFJTFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yRW1haWw6IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIwLjEuMFwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaWNlbnNlIG9mIHRoaXMgcGFja2FnZSBhcyBhbiBTUERYIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIFVSTCB0byB0aGUgd2Vic2l0ZSBvZiB0aGUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGhvbWVwYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgUHlQSSB0cm92ZSBjbGFzc2lmaWVycyB0aGF0IGRlc2NyaWJlIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcHlwaS5vcmcvY2xhc3NpZmllcnMvXG4gICAqL1xuICByZWFkb25seSBjbGFzc2lmaWVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGZpZWxkcyB0byBwYXNzIGluIHRoZSBzZXR1cCgpIGZ1bmN0aW9uIGlmIHVzaW5nIHNldHVwdG9vbHNcbiAgICovXG4gIHJlYWRvbmx5IHNldHVwQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBvcHRpb25zIHRvIHNldCBmb3IgcG9ldHJ5IGlmIHVzaW5nIHBvZXRyeVxuICAgKi9cbiAgcmVhZG9ubHkgcG9ldHJ5T3B0aW9ucz86IFBvZXRyeVB5cHJvamVjdE9wdGlvbnNXaXRob3V0RGVwcztcbn1cbiJdfQ==
|
|
@@ -6,171 +6,135 @@ import { IPythonEnv } from "./python-env";
|
|
|
6
6
|
import { IPythonPackaging, PythonPackagingOptions } from "./python-packaging";
|
|
7
7
|
import { VenvOptions } from "./venv";
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @experimental
|
|
9
|
+
* Options for `PythonProject`.
|
|
12
10
|
*/
|
|
13
11
|
export interface PythonProjectOptions extends GitHubProjectOptions, PythonPackagingOptions {
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
13
|
+
* Name of the python package as used in imports and filenames.
|
|
16
14
|
*
|
|
17
15
|
* Must only consist of alphanumeric characters and underscores.
|
|
18
16
|
*
|
|
19
17
|
* @default $PYTHON_MODULE_NAME
|
|
20
|
-
* @experimental
|
|
21
18
|
*/
|
|
22
19
|
readonly moduleName: string;
|
|
23
20
|
/**
|
|
24
|
-
*
|
|
21
|
+
* List of runtime dependencies for this project.
|
|
25
22
|
*
|
|
26
23
|
* Dependencies use the format: `<module>@<semver>`
|
|
27
24
|
*
|
|
28
25
|
* Additional dependencies can be added via `project.addDependency()`.
|
|
29
26
|
*
|
|
30
27
|
* @default []
|
|
31
|
-
* @
|
|
32
|
-
* @featured true
|
|
28
|
+
* @featured
|
|
33
29
|
*/
|
|
34
30
|
readonly deps?: string[];
|
|
35
31
|
/**
|
|
36
|
-
*
|
|
32
|
+
* List of dev dependencies for this project.
|
|
37
33
|
*
|
|
38
34
|
* Dependencies use the format: `<module>@<semver>`
|
|
39
35
|
*
|
|
40
36
|
* Additional dependencies can be added via `project.addDevDependency()`.
|
|
41
37
|
*
|
|
42
38
|
* @default []
|
|
43
|
-
* @
|
|
44
|
-
* @featured true
|
|
39
|
+
* @featured
|
|
45
40
|
*/
|
|
46
41
|
readonly devDeps?: string[];
|
|
47
42
|
/**
|
|
48
|
-
*
|
|
43
|
+
* Use pip with a requirements.txt file to track project dependencies.
|
|
49
44
|
*
|
|
50
45
|
* @default true
|
|
51
|
-
* @
|
|
52
|
-
* @featured true
|
|
46
|
+
* @featured
|
|
53
47
|
*/
|
|
54
48
|
readonly pip?: boolean;
|
|
55
49
|
/**
|
|
56
|
-
*
|
|
50
|
+
* Use venv to manage a virtual environment for installing dependencies inside.
|
|
57
51
|
*
|
|
58
52
|
* @default true
|
|
59
|
-
* @
|
|
60
|
-
* @featured true
|
|
53
|
+
* @featured
|
|
61
54
|
*/
|
|
62
55
|
readonly venv?: boolean;
|
|
63
56
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
57
|
+
* Venv options
|
|
66
58
|
* @default - defaults
|
|
67
|
-
* @experimental
|
|
68
59
|
*/
|
|
69
60
|
readonly venvOptions?: VenvOptions;
|
|
70
61
|
/**
|
|
71
|
-
*
|
|
62
|
+
* Use setuptools with a setup.py script for packaging and publishing.
|
|
72
63
|
*
|
|
73
64
|
* @default - true if the project type is library
|
|
74
|
-
* @
|
|
75
|
-
* @featured true
|
|
65
|
+
* @featured
|
|
76
66
|
*/
|
|
77
67
|
readonly setuptools?: boolean;
|
|
78
68
|
/**
|
|
79
|
-
*
|
|
69
|
+
* Use poetry to manage your project dependencies, virtual environment, and
|
|
70
|
+
* (optional) packaging/publishing.
|
|
80
71
|
*
|
|
81
72
|
* @default false
|
|
82
|
-
* @
|
|
83
|
-
* @featured true
|
|
73
|
+
* @featured
|
|
84
74
|
*/
|
|
85
75
|
readonly poetry?: boolean;
|
|
86
76
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
77
|
+
* Include pytest tests.
|
|
89
78
|
* @default true
|
|
90
|
-
* @
|
|
91
|
-
* @featured true
|
|
79
|
+
* @featured
|
|
92
80
|
*/
|
|
93
81
|
readonly pytest?: boolean;
|
|
94
82
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
83
|
+
* pytest options
|
|
97
84
|
* @default - defaults
|
|
98
|
-
* @experimental
|
|
99
85
|
*/
|
|
100
86
|
readonly pytestOptions?: PytestOptions;
|
|
101
87
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
88
|
+
* Include sample code and test if the relevant directories don't exist.
|
|
104
89
|
* @default true
|
|
105
|
-
* @experimental
|
|
106
90
|
*/
|
|
107
91
|
readonly sample?: boolean;
|
|
108
92
|
/**
|
|
109
|
-
*
|
|
93
|
+
* Use projenrc in python.
|
|
110
94
|
*
|
|
111
95
|
* This will install `projen` as a python dependency and will add a `synth`
|
|
112
96
|
* task which will run `.projenrc.py`.
|
|
113
97
|
*
|
|
114
98
|
* @default true
|
|
115
|
-
* @experimental
|
|
116
99
|
*/
|
|
117
100
|
readonly projenrcPython?: boolean;
|
|
118
101
|
/**
|
|
119
|
-
*
|
|
120
|
-
*
|
|
102
|
+
* Options related to projenrc in python.
|
|
121
103
|
* @default - default options
|
|
122
|
-
* @experimental
|
|
123
104
|
*/
|
|
124
105
|
readonly projenrcPythonOptions?: ProjenrcOptions;
|
|
125
106
|
}
|
|
126
107
|
/**
|
|
127
|
-
*
|
|
108
|
+
* Python project.
|
|
128
109
|
*
|
|
129
|
-
* @experimental
|
|
130
110
|
* @pjid python
|
|
131
111
|
*/
|
|
132
112
|
export declare class PythonProject extends GitHubProject {
|
|
133
113
|
/**
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
* @experimental
|
|
114
|
+
* Python module name (the project name, with any hyphens or periods replaced
|
|
115
|
+
* with underscores).
|
|
137
116
|
*/
|
|
138
117
|
readonly moduleName: string;
|
|
139
118
|
/**
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* @experimental
|
|
119
|
+
* Version of the package for distribution (should follow semver).
|
|
143
120
|
*/
|
|
144
121
|
readonly version: string;
|
|
145
122
|
/**
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* @experimental
|
|
123
|
+
* API for managing dependencies.
|
|
149
124
|
*/
|
|
150
125
|
readonly depsManager: IPythonDeps;
|
|
151
126
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
* @experimental
|
|
127
|
+
* API for mangaging the Python runtime environment.
|
|
155
128
|
*/
|
|
156
129
|
readonly envManager: IPythonEnv;
|
|
157
130
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
* Only applies when the `projectType` is LIB.
|
|
161
|
-
*
|
|
162
|
-
* @experimental
|
|
131
|
+
* API for managing packaging the project as a library. Only applies when the `projectType` is LIB.
|
|
163
132
|
*/
|
|
164
133
|
readonly packagingManager?: IPythonPackaging;
|
|
165
134
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* @experimental
|
|
135
|
+
* Pytest component.
|
|
169
136
|
*/
|
|
170
137
|
readonly pytest?: Pytest;
|
|
171
|
-
/**
|
|
172
|
-
* @experimental
|
|
173
|
-
*/
|
|
174
138
|
constructor(options: PythonProjectOptions);
|
|
175
139
|
/**
|
|
176
140
|
* Adds default gitignore options for a Python project based on
|
|
@@ -178,25 +142,16 @@ export declare class PythonProject extends GitHubProject {
|
|
|
178
142
|
*/
|
|
179
143
|
private addDefaultGitIgnore;
|
|
180
144
|
/**
|
|
181
|
-
*
|
|
145
|
+
* Adds a runtime dependency.
|
|
182
146
|
*
|
|
183
|
-
* @param spec Format `<module>@<semver
|
|
184
|
-
* @experimental
|
|
147
|
+
* @param spec Format `<module>@<semver>`
|
|
185
148
|
*/
|
|
186
149
|
addDependency(spec: string): void;
|
|
187
150
|
/**
|
|
188
|
-
*
|
|
151
|
+
* Adds a dev dependency.
|
|
189
152
|
*
|
|
190
|
-
* @param spec Format `<module>@<semver
|
|
191
|
-
* @experimental
|
|
153
|
+
* @param spec Format `<module>@<semver>`
|
|
192
154
|
*/
|
|
193
155
|
addDevDependency(spec: string): void;
|
|
194
|
-
/**
|
|
195
|
-
* (experimental) Called after all components are synthesized.
|
|
196
|
-
*
|
|
197
|
-
* Order is *not* guaranteed.
|
|
198
|
-
*
|
|
199
|
-
* @experimental
|
|
200
|
-
*/
|
|
201
156
|
postSynthesize(): void;
|
|
202
157
|
}
|