projen 0.98.22 → 0.98.24
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 +6552 -893
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +5 -5
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +2 -2
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.js +4 -4
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.js +1 -1
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +1 -1
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.js +1 -1
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +1 -1
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/component.js +1 -1
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/pull-request-backport.js +1 -1
- package/lib/github/pull-request-lint.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow-job.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +1 -1
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/biome/biome.js +1 -1
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.js +1 -1
- package/lib/javascript/jest.js +4 -4
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-package.js +1 -1
- package/lib/javascript/node-project.js +1 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +2 -2
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.js +1 -1
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +2 -2
- package/lib/projenrc.js +1 -1
- package/lib/python/index.d.ts +4 -0
- package/lib/python/index.js +6 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.d.ts +4 -3
- package/lib/python/poetry.js +11 -18
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.d.ts +13 -0
- package/lib/python/pyproject-toml-file.js +29 -0
- package/lib/python/pyproject-toml.d.ts +418 -0
- package/lib/python/pyproject-toml.js +187 -0
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-packaging.d.ts +5 -0
- package/lib/python/python-packaging.js +1 -1
- package/lib/python/python-project.d.ts +10 -1
- package/lib/python/python-project.js +62 -8
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/uv-config.d.ts +1804 -0
- package/lib/python/uv-config.js +344 -0
- package/lib/python/uv.d.ts +53 -0
- package/lib/python/uv.js +138 -0
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/renovatebot.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-runtime.js +1 -1
- package/lib/task.js +1 -1
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.d.ts +2 -2
- package/lib/toml.js +4 -4
- package/lib/typescript/projenrc-ts.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +6 -6
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +5 -1
package/lib/python/poetry.js
CHANGED
|
@@ -9,6 +9,7 @@ const dependencies_1 = require("../dependencies");
|
|
|
9
9
|
const task_runtime_1 = require("../task-runtime");
|
|
10
10
|
const toml_1 = require("../toml");
|
|
11
11
|
const util_1 = require("../util");
|
|
12
|
+
const pyproject_toml_file_1 = require("./pyproject-toml-file");
|
|
12
13
|
/**
|
|
13
14
|
* Manage project dependencies, virtual environments, and packaging through the
|
|
14
15
|
* poetry CLI tool.
|
|
@@ -185,24 +186,20 @@ class Poetry extends component_1.Component {
|
|
|
185
186
|
}
|
|
186
187
|
exports.Poetry = Poetry;
|
|
187
188
|
_a = JSII_RTTI_SYMBOL_1;
|
|
188
|
-
Poetry[_a] = { fqn: "projen.python.Poetry", version: "0.98.
|
|
189
|
+
Poetry[_a] = { fqn: "projen.python.Poetry", version: "0.98.24" };
|
|
189
190
|
/**
|
|
190
191
|
* Represents configuration of a pyproject.toml file for a Poetry project.
|
|
191
192
|
*
|
|
192
193
|
* @see https://python-poetry.org/docs/pyproject/
|
|
193
194
|
*/
|
|
194
195
|
class PoetryPyproject extends component_1.Component {
|
|
195
|
-
constructor(
|
|
196
|
-
super(
|
|
197
|
-
const {
|
|
198
|
-
|
|
199
|
-
separator: "-",
|
|
200
|
-
});
|
|
201
|
-
const tomlStructure = {
|
|
196
|
+
constructor(scope, options) {
|
|
197
|
+
super(scope);
|
|
198
|
+
const { devDependencies, ...poetryConfig } = options;
|
|
199
|
+
this.file = new pyproject_toml_file_1.PyprojectTomlFile(scope, {
|
|
202
200
|
tool: {
|
|
203
201
|
poetry: {
|
|
204
|
-
...
|
|
205
|
-
dependencies: dependencies,
|
|
202
|
+
...(0, util_1.decamelizeKeysRecursively)(poetryConfig, { separator: "-" }),
|
|
206
203
|
group: {
|
|
207
204
|
dev: {
|
|
208
205
|
dependencies: devDependencies,
|
|
@@ -210,18 +207,14 @@ class PoetryPyproject extends component_1.Component {
|
|
|
210
207
|
},
|
|
211
208
|
},
|
|
212
209
|
},
|
|
213
|
-
|
|
210
|
+
buildSystem: {
|
|
214
211
|
requires: ["poetry-core"],
|
|
215
|
-
|
|
212
|
+
buildBackend: "poetry.core.masonry.api",
|
|
216
213
|
},
|
|
217
|
-
};
|
|
218
|
-
this.file = new toml_1.TomlFile(project, "pyproject.toml", {
|
|
219
|
-
omitEmpty: false,
|
|
220
|
-
obj: tomlStructure,
|
|
221
214
|
});
|
|
222
215
|
}
|
|
223
216
|
}
|
|
224
217
|
exports.PoetryPyproject = PoetryPyproject;
|
|
225
218
|
_b = JSII_RTTI_SYMBOL_1;
|
|
226
|
-
PoetryPyproject[_b] = { fqn: "projen.python.PoetryPyproject", version: "0.98.
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B5dGhvbi9wb2V0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvQ0FBb0M7QUFLcEMsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQUdqRCxrREFBOEM7QUFDOUMsa0NBQW1DO0FBQ25DLGtDQUEyRTtBQU0zRTs7O0dBR0c7QUFDSCxNQUFhLE1BQ1gsU0FBUSxxQkFBUztJQWtDakIsWUFBWSxPQUFnQixFQUFFLE9BQXNCO1FBQ2xELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUM7UUFFakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUM1QyxXQUFXLEVBQUUsMENBQTBDO1lBQ3ZELElBQUksRUFBRSxlQUFlO1NBQ3RCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDakQsV0FBVyxFQUFFLDJDQUEyQztZQUN4RCxJQUFJLEVBQUUsdUNBQXVDO1NBQzlDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FDL0IsYUFBYTtRQUNiLDREQUE0RDtRQUM1RCx3REFBd0QsQ0FDekQsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FDL0IsTUFBTSxFQUNOLHlDQUF5QyxDQUMxQyxDQUFDO1FBRUYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUNyRCxXQUFXLEVBQUUsbURBQW1EO1lBQ2hFLElBQUksRUFBRSw0QkFBNEI7U0FDbkMs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WUFBWSxPQUFnQixFQUFFLE9BQStCO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ25FLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxnQ0FBeUIsRUFBQyxZQUFZLEVBQUU7WUFDakUsU0FBUyxFQUFFLEdBQUc7U0FDZixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBUTtZQUN6QixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFO29CQUNOLEdBQUcsa0JBQWtCO29CQUNyQixZQUFZLEVBQUUsWUFBWTtvQkFDMUIsS0FBSyxFQUFFO3dCQUNMLEdBQUcsRUFBRTs0QkFDSCxZQUFZLEVBQUUsZUFBZTt5QkFDOUI7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3pCLGVBQWUsRUFBRSx5QkFBeUI7YUFDM0M7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGVBQVEsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUU7WUFDbEQsU0FBUyxFQUFFLEtBQUs7WUFDaEIsR0FBRyxFQUFFLGFBQWE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFqQ0gsMENBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVE9NTCBmcm9tIFwiQGlhcm5hL3RvbWxcIjtcbmltcG9ydCB7IElQeXRob25EZXBzIH0gZnJvbSBcIi4vcHl0aG9uLWRlcHNcIjtcbmltcG9ydCB7IElQeXRob25FbnYgfSBmcm9tIFwiLi9weXRob24tZW52XCI7XG5pbXBvcnQgeyBJUHl0aG9uUGFja2FnaW5nLCBQeXRob25QYWNrYWdpbmdPcHRpb25zIH0gZnJvbSBcIi4vcHl0aG9uLXBhY2thZ2luZ1wiO1xuaW1wb3J0IHsgUHl0aG9uRXhlY3V0YWJsZU9wdGlvbnMgfSBmcm9tIFwiLi9weXRob24tcHJvamVjdFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza1wiO1xuaW1wb3J0IHsgVGFza1J1bnRpbWUgfSBmcm9tIFwiLi4vdGFzay1ydW50aW1lXCI7XG5pbXBvcnQgeyBUb21sRmlsZSB9IGZyb20gXCIuLi90b21sXCI7XG5pbXBvcnQgeyBkZWNhbWVsaXplS2V5c1JlY3Vyc2l2ZWx5LCBleGVjLCBleGVjT3JVbmRlZmluZWQgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvZXRyeU9wdGlvbnNcbiAgZXh0ZW5kcyBQeXRob25QYWNrYWdpbmdPcHRpb25zLFxuICAgIFB5dGhvbkV4ZWN1dGFibGVPcHRpb25zIHt9XG5cbi8qKlxuICogTWFuYWdlIHByb2plY3QgZGVwZW5kZW5jaWVzLCB2aXJ0dWFsIGVudmlyb25tZW50cywgYW5kIHBhY2thZ2luZyB0aHJvdWdoIHRoZVxuICogcG9ldHJ5IENMSSB0b29sLlxuICovXG5leHBvcnQgY2xhc3MgUG9ldHJ5XG4gIGV4dGVuZHMgQ29tcG9uZW50XG4gIGltcGxlbWVudHMgSVB5dGhvbkRlcHMsIElQeXRob25FbnYsIElQeXRob25QYWNrYWdpbmdcbntcbiAgLyoqXG4gICAqIFRhc2sgZm9yIHVwZGF0aW5nIHRoZSBsb2NrZmlsZSBhbmQgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YWxsVGFzazogVGFzaztcblxuICAvKipcbiAgICogVGFzayBmb3IgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMgYWNjb3JkaW5nIHRvIHRoZSBleGlzdGluZyBsb2NrZmlsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YWxsQ2lUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUYXNrIGZvciBwdWJsaXNoaW5nIHRoZSBwYWNrYWdlIHRvIGEgcGFja2FnZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUYXNrIGZvciBwdWJsaXNoaW5nIHRoZSBwYWNrYWdlIHRvIHRoZSBUZXN0IFB5UEkgcmVwb3NpdG9yeSBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwdWJsaXNoVGVzdFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIFB5dGhvbiBleGVjdXRhYmxlIHRvIHVzZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHl0aG9uRXhlYzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBgcHlwcm9qZWN0LnRvbWxgIGZpbGUgZm9yIGEgUG9ldHJ5IHByb2plY3QuXG4gICAqIFRoaXMgaW5jbHVkZXMgcGFja2FnZSBtZXRhZGF0YSwgZGVwZW5kZW5jaWVzLCBhbmQgUG9ldHJ5LXNwZWNpZmljIHNldHRpbmdzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBweVByb2plY3Q6IFBvZXRyeVB5cHJvamVjdDtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQb2V0cnlPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy5weXRob25FeGVjID0gb3B0aW9ucy5weXRob25FeGVjID8/IFwicHl0aG9uXCI7XG5cbiAgICB0aGlzLmluc3RhbGxUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiaW5zdGFsbFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJJbnN0YWxsIGRlcGVuZGVuY2llcyBhbmQgdXBkYXRlIGxvY2tmaWxlXCIsXG4gICAgICBleGVjOiBcInBvZXRyeSB1cGRhdGVcIixcbiAgICB9KTtcblxuICAgIHRoaXMuaW5zdGFsbENpVGFzayA9IHByb2plY3QuYWRkVGFzayhcImluc3RhbGw6Y2lcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiSW5zdGFsbCBkZXBlbmRlbmNpZXMgd2l0aCBmcm96ZW4gbG9ja2ZpbGVcIixcbiAgICAgIGV4ZWM6IFwicG9ldHJ5IGNoZWNrIC0tbG9jayAmJiBwb2V0cnkgaW5zdGFsbFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFkZEVudmlyb25tZW50KFxuICAgICAgXCJWSVJUVUFMX0VOVlwiLFxuICAgICAgLy8gQ3JlYXRlIC52ZW52IG9uIHRoZSBmaXJzdCBydW4gaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0XG4gICAgICBcIiQocG9ldHJ5IGVudiBpbmZvIC1wIHx8IHBvZXRyeSBydW4gcG9ldHJ5IGVudiBpbmZvIC1wKVwiXG4gICAgKTtcbiAgICB0aGlzLnByb2plY3QudGFza3MuYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIlBBVEhcIixcbiAgICAgIFwiJChlY2hvICQocG9ldHJ5IGVudiBpbmZvIC1wKS9iaW46JFBBVEgpXCJcbiAgICApO1xuXG4gICAgcHJvamVjdC5wYWNrYWdlVGFzay5leGVjKFwicG9ldHJ5IGJ1aWxkXCIpO1xuXG4gICAgdGhpcy5wdWJsaXNoVGVzdFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJwdWJsaXNoOnRlc3RcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiVXBsb2FkcyB0aGUgcGFja2FnZSBhZ2FpbnN0IGEgdGVzdCBQeVBJIGVuZHBvaW50LlwiLFxuICAgICAgZXhlYzogXCJwb2V0cnkgcHVibGlzaCAtciB0ZXN0cHlwaVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wdWJsaXNoVGFzayA9IHByb2plY3QuYWRkVGFzayhcInB1Ymxpc2hcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiVXBsb2FkcyB0aGUgcGFja2FnZSB0byBQeVBJLlwiLFxuICAgICAgZXhlYzogXCJwb2V0cnkgcHVibGlzaFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5weVByb2plY3QgPSBuZXcgUG9ldHJ5UHlwcm9qZWN0KHByb2plY3QsIHtcbiAgICAgIG5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbixcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uID8/IFwiXCIsXG4gICAgICBsaWNlbnNlOiBvcHRpb25zLmxpY2Vuc2UsXG4gICAgICBhdXRob3JzOiBbYCR7b3B0aW9ucy5hdXRob3JOYW1lfSA8JHtvcHRpb25zLmF1dGhvckVtYWlsfT5gXSxcbiAgICAgIGhvbWVwYWdlOiBvcHRpb25zLmhvbWVwYWdlLFxuICAgICAgY2xhc3NpZmllcnM6IG9wdGlvbnMuY2xhc3NpZmllcnMsXG4gICAgICAuLi5vcHRpb25zLnBvZXRyeU9wdGlvbnMsXG4gICAgICBkZXBlbmRlbmNpZXM6ICgpID0+IHRoaXMuc3ludGhEZXBlbmRlbmNpZXMoKSxcbiAgICAgIGRldkRlcGVuZGVuY2llczogKCkgPT4gdGhpcy5zeW50aERldkRlcGVuZGVuY2llcygpLFxuICAgIH0pO1xuXG4gICAgbmV3IFRvbWxGaWxlKHByb2plY3QsIFwicG9ldHJ5LnRvbWxcIiwge1xuICAgICAgY29tbWl0dGVkOiBmYWxzZSxcbiAgICAgIG9iajoge1xuICAgICAgICByZXBvc2l0b3JpZXM6IHtcbiAgICAgICAgICB0ZXN0cHlwaToge1xuICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vdGVzdC5weXBpLm9yZy9sZWdhY3kvXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN5bnRoRGVwZW5kZW5jaWVzKCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY2llczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGxldCBweXRob25EZWZpbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBwa2cgb2YgdGhpcy5wcm9qZWN0LmRlcHMuYWxsKSB7XG4gICAgICBpZiAocGtnLm5hbWUgPT09IFwicHl0aG9uXCIpIHtcbiAgICAgICAgcHl0aG9uRGVmaW5lZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAocGtnLnR5cGUgPT09IERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpIHtcbiAgICAgICAgZGVwZW5kZW5jaWVzW3BrZy5uYW1lXSA9IHBrZy52ZXJzaW9uID8/IFwiKlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXB5dGhvbkRlZmluZWQpIHtcbiAgICAgIC8vIFB5dGhvbiB2ZXJzaW9uIG11c3QgYmUgZGVmaW5lZCBmb3IgcG9ldHJ5IHByb2plY3RzLiBEZWZhdWx0IHRvIF4zLjguXG4gICAgICBkZXBlbmRlbmNpZXMucHl0aG9uID0gXCJeMy44XCI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBlcm1pdERlcHNXaXRoVG9tbElubGluZVRhYmxlcyhkZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW50aERldkRlcGVuZGVuY2llcygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBrZyBvZiB0aGlzLnByb2plY3QuZGVwcy5hbGwpIHtcbiAgICAgIGlmIChbRGVwZW5kZW5jeVR5cGUuREVWRU5WLCBEZXBlbmRlbmN5VHlwZS5URVNUXS5pbmNsdWRlcyhwa2cudHlwZSkpIHtcbiAgICAgICAgZGVwZW5kZW5jaWVzW3BrZy5uYW1lXSA9IHBrZy52ZXJzaW9uID8/IFwiKlwiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wZXJtaXREZXBzV2l0aFRvbWxJbmxpbmVUYWJsZXMoZGVwZW5kZW5jaWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgZGVwZW5kZW5jeSB2YWx1ZXMgdGhhdCBtYXkgaW5jbHVkZSBUT01MIGlubGluZSB0YWJsZXMsIGNvbnZlcnRpbmcgdGhlbSBpbnRvIEphdmFTY3JpcHQgb2JqZWN0cy5cbiAgICogSWYgYSBkZXBlbmRlbmN5IHZhbHVlIGNhbm5vdCBiZSBwYXJzZWQgYXMgYSBUT01MIGlubGluZSB0YWJsZSAoaW5kaWNhdGluZyBpdCBpcyBhIHBsYWluIFNlbVZlciBzdHJpbmcpLFxuICAgKiBpdCBpcyBsZWZ0IHVuY2hhbmdlZC4gVGhpcyBhbGxvd3MgdG8gc3VwcG9ydCB0aGUgZnVsbCByYW5nZSBvZiBQb2V0cnkncyBkZXBlbmRlbmN5IHNwZWNpZmljYXRpb24uXG4gICAqIEBzZWUgaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzL2RlcGVuZGVuY3ktc3BlY2lmaWNhdGlvbi9cbiAgICogQHNlZSBodHRwczovL3RvbWwuaW8vZW4vdjEuMC4wI2lubGluZS10YWJsZVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBHaXZlbiBhIGBkZXBlbmRlbmNpZXNgIG9iamVjdCBsaWtlIHRoaXM6XG4gICAqIGNvbnN0IGRlcGVuZGVuY2llcyA9IHtcbiAgICogICBcIm15cGFja2FnZVwiOiBcInsgdmVyc2lvbiA9ICcxLjIuMycsIGV4dHJhcyA9IFsnZXh0cmExJywgJ2V4dHJhMiddIH1cIixcbiAgICogICBcImFub3RoZXJwYWNrYWdlXCI6IFwiXjIuMy40XCJcbiAgICogfTtcbiAgICogLy8gQWZ0ZXIgcGFyc2luZywgdGhlIHJlc3VsdGluZyBvYmplY3Qgd291bGQgYmU6XG4gICAqIHtcbiAgICogICBcIm15cGFja2FnZVwiOiB7XG4gICAqICAgICB2ZXJzaW9uOiBcIjEuMi4zXCIsXG4gICAqICAgICBleHRyYXM6IFtcImV4dHJhMVwiLCBcImV4dHJhMlwiXVxuICAgKiAgIH0sXG4gICAqICAgXCJhbm90aGVycGFja2FnZVwiOiBcIl4yLjMuNFwiXG4gICAqIH1cbiAgICogLy8gTm90ZTogVGhlIHZhbHVlIG9mIGBhbm90aGVycGFja2FnZWAgcmVtYWlucyB1bmNoYW5nZWQgYXMgaXQgaXMgYSBwbGFpbiBTZW1WZXIgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gZGVwZW5kZW5jaWVzIEFuIG9iamVjdCB3aGVyZSBlYWNoIGtleSBpcyBhIGRlcGVuZGVuY3kgbmFtZSBhbmQgZWFjaCB2YWx1ZSBpcyBhIHN0cmluZyB0aGF0IG1pZ2h0IGJlXG4gICAqIGVpdGhlciBhIFNlbVZlciBzdHJpbmcgb3IgYSBUT01MIGlubGluZSB0YWJsZSBzdHJpbmcuXG4gICAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aGVyZSBlYWNoIGtleSBpcyBhIGRlcGVuZGVuY3kgbmFtZSBhbmQgZWFjaCB2YWx1ZSBpcyBlaXRoZXIgdGhlIG9yaWdpbmFsIFNlbVZlciBzdHJpbmdcbiAgICogb3IgdGhlIHBhcnNlZCBKYXZhU2NyaXB0IG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgVE9NTCBpbmxpbmUgdGFibGUuXG4gICAqL1xuICBwcml2YXRlIHBlcm1pdERlcHNXaXRoVG9tbElubGluZVRhYmxlcyhkZXBlbmRlbmNpZXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH0pIHtcbiAgICBjb25zdCBwYXJzZVRvbWxJbmxpbmVUYWJsZSA9IChkZXBlbmRlbmN5VmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gQXR0ZW1wdCBwYXJzaW5nIHRoZSBgZGVwZW5kZW5jeVZhbHVlYCBhcyBhIFRPTUwgaW5saW5lIHRhYmxlXG4gICAgICAgIHJldHVybiBUT01MLnBhcnNlKGBkZXBlbmRlbmN5S2V5ID0gJHtkZXBlbmRlbmN5VmFsdWV9YCkuZGVwZW5kZW5jeUtleTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJZiBwYXJzaW5nIGZhaWxzLCB0cmVhdCB0aGUgYGRlcGVuZGVuY3lWYWx1ZWAgYXMgYSBwbGFpbiBTZW1WZXIgc3RyaW5nXG4gICAgICAgIHJldHVybiBkZXBlbmRlbmN5VmFsdWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhkZXBlbmRlbmNpZXMpLm1hcCgoW2RlcGVuZGVuY3lLZXksIGRlcGVuZGVuY3lWYWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIFtkZXBlbmRlbmN5S2V5LCBwYXJzZVRvbWxJbmxpbmVUYWJsZShkZXBlbmRlbmN5VmFsdWUpXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcnVudGltZSBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBGb3JtYXQgYDxtb2R1bGU+QDxzZW12ZXI+YFxuICAgKi9cbiAgcHVibGljIGFkZERlcGVuZGVuY3koc3BlYzogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShzcGVjLCBEZXBlbmRlbmN5VHlwZS5SVU5USU1FKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZGV2IGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIEZvcm1hdCBgPG1vZHVsZT5APHNlbXZlcj5gXG4gICAqL1xuICBwdWJsaWMgYWRkRGV2RGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLkRFVkVOVik7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgaWYgaXQgZG9lc24ndCBleGlzdCAoY2FsbGVkIGR1cmluZyBwb3N0LXN5bnRoZXNpcykuXG4gICAqL1xuICBwdWJsaWMgc2V0dXBFbnZpcm9ubWVudCgpIHtcbiAgICBjb25zdCByZXN1bHQgPSBleGVjT3JVbmRlZmluZWQoXCJ3aGljaCBwb2V0cnlcIiwge1xuICAgICAgY3dkOiB0aGlzLnByb2plY3Qub3V0ZGlyLFxuICAgIH0pO1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXG4gICAgICAgIFwiVW5hYmxlIHRvIHNldHVwIGFuIGVudmlyb25tZW50IHNpbmNlIHBvZXRyeSBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBwb2V0cnkgKGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvZG9jcy8pIG9yIHVzZSBhIGRpZmZlcmVudCBjb21wb25lbnQgZm9yIG1hbmFnaW5nIGVudmlyb25tZW50cyBzdWNoIGFzICd2ZW52Jy5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgZW52UGF0aCA9IGV4ZWNPclVuZGVmaW5lZChcInBvZXRyeSBlbnYgaW5mbyAtcFwiLCB7XG4gICAgICBjd2Q6IHRoaXMucHJvamVjdC5vdXRkaXIsXG4gICAgfSk7XG4gICAgaWYgKCFlbnZQYXRoKSB7XG4gICAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXCJTZXR0aW5nIHVwIGEgdmlydHVhbCBlbnZpcm9ubWVudC4uLlwiKTtcbiAgICAgIGV4ZWMoYHBvZXRyeSBlbnYgdXNlICR7dGhpcy5weXRob25FeGVjfWAsIHsgY3dkOiB0aGlzLnByb2plY3Qub3V0ZGlyIH0pO1xuICAgICAgZW52UGF0aCA9IGV4ZWNPclVuZGVmaW5lZChcInBvZXRyeSBlbnYgaW5mbyAtcFwiLCB7XG4gICAgICAgIGN3ZDogdGhpcy5wcm9qZWN0Lm91dGRpcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9qZWN0LmxvZ2dlci5pbmZvKFxuICAgICAgICBgRW52aXJvbm1lbnQgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgKGxvY2F0ZWQgaW4gJHtlbnZQYXRofX0pLmBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIGRlcGVuZGVuY2llcyAoY2FsbGVkIGR1cmluZyBwb3N0LXN5bnRoZXNpcykuXG4gICAqL1xuICBwdWJsaWMgaW5zdGFsbERlcGVuZGVuY2llcygpIHtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXCJJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLlwiKTtcbiAgICBjb25zdCBydW50aW1lID0gbmV3IFRhc2tSdW50aW1lKHRoaXMucHJvamVjdC5vdXRkaXIpO1xuICAgIC8vIElmIHRoZSBweXByb2plY3QudG9tbCBmaWxlIGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIGxvY2tmaWxlIHByaW9yIHRvIGluc3RhbGxhdGlvblxuICAgIGlmICh0aGlzLnB5UHJvamVjdC5maWxlLmNoYW5nZWQpIHtcbiAgICAgIHJ1bnRpbWUucnVuVGFzayh0aGlzLmluc3RhbGxUYXNrLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBydW50aW1lLnJ1blRhc2sodGhpcy5pbnN0YWxsQ2lUYXNrLm5hbWUpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFBvZXRyeS1zcGVjaWZpYyBvcHRpb25zLlxuICogQHNlZSBodHRwczovL3B5dGhvbi1wb2V0cnkub3JnL2RvY3MvcHlwcm9qZWN0L1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvZXRyeVB5cHJvamVjdE9wdGlvbnNXaXRob3V0RGVwcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwYWNrYWdlIChyZXF1aXJlZCkuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBwYWNrYWdlIChyZXF1aXJlZCkuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlIChyZXF1aXJlZCkuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTGljZW5zZSBvZiB0aGlzIHBhY2thZ2UgYXMgYW4gU1BEWCBpZGVudGlmaWVyLlxuICAgKlxuICAgKiBJZiB0aGUgcHJvamVjdCBpcyBwcm9wcmlldGFyeSBhbmQgZG9lcyBub3QgdXNlIGEgc3BlY2lmaWMgbGljZW5zZSwgeW91XG4gICAqIGNhbiBzZXQgdGhpcyB2YWx1ZSBhcyBcIlByb3ByaWV0YXJ5XCIuXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXV0aG9ycyBvZiB0aGUgcGFja2FnZS4gTXVzdCBiZSBpbiB0aGUgZm9ybSBcIm5hbWUgPGVtYWlsPlwiXG4gICAqL1xuICByZWFkb25seSBhdXRob3JzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIHRoZSBtYWludGFpbmVycyBvZiB0aGUgcGFja2FnZS4gTXVzdCBiZSBpbiB0aGUgZm9ybSBcIm5hbWUgPGVtYWlsPlwiXG4gICAqL1xuICByZWFkb25seSBtYWludGFpbmVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVhZG1lIGZpbGUgb2YgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSByZWFkbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgVVJMIHRvIHRoZSB3ZWJzaXRlIG9mIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgaG9tZXBhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgVVJMIHRvIHRoZSByZXBvc2l0b3J5IG9mIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBVUkwgdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Yga2V5d29yZHMgKG1heDogNSkgdGhhdCB0aGUgcGFja2FnZSBpcyByZWxhdGVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5d29yZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIFB5UEkgdHJvdmUgY2xhc3NpZmllcnMgdGhhdCBkZXNjcmliZSB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3B5cGkub3JnL2NsYXNzaWZpZXJzL1xuICAgKi9cbiAgcmVhZG9ubHkgY2xhc3NpZmllcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhY2thZ2VzIGFuZCBtb2R1bGVzIHRvIGluY2x1ZGUgaW4gdGhlIGZpbmFsIGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VzPzogYW55W107XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0aGF0IHdpbGwgYmUgZXhjbHVkZWQgaW4gdGhlIGZpbmFsIHBhY2thZ2UuXG4gICAqXG4gICAqIElmIGEgVkNTIGlzIGJlaW5nIHVzZWQgZm9yIGEgcGFja2FnZSwgdGhlIGV4Y2x1ZGUgZmllbGQgd2lsbCBiZSBzZWVkZWQgd2l0aFxuICAgKiB0aGUgVkNT4oCZIGlnbm9yZSBzZXR0aW5ncyAoLmdpdGlnbm9yZSBmb3IgZ2l0IGZvciBleGFtcGxlKS5cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHNjcmlwdHMgb3IgZXhlY3V0YWJsZXMgdGhhdCB3aWxsIGJlIGluc3RhbGxlZCB3aGVuIGluc3RhbGxpbmcgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBzY3JpcHRzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKipcbiAgICogU291cmNlIHJlZ2lzdHJpZXMgZnJvbSB3aGljaCBwYWNrYWdlcyBhcmUgcmV0cmlldmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogYW55W107XG5cbiAgLyoqXG4gICAqIFBhY2thZ2UgZXh0cmFzXG4gICAqL1xuICByZWFkb25seSBleHRyYXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG5cbiAgLyoqXG4gICAqIFBsdWdpbnMuIE11c3QgYmUgc3BlY2lmaWVkIGFzIGEgdGFibGUuXG4gICAqIEBzZWUgaHR0cHM6Ly90b21sLmlvL2VuL3YxLjAuMCN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2lucz86IGFueTtcblxuICAvKipcbiAgICogUHJvamVjdCBjdXN0b20gVVJMcywgaW4gYWRkaXRpb24gdG8gaG9tZXBhZ2UsIHJlcG9zaXRvcnkgYW5kIGRvY3VtZW50YXRpb24uXG4gICAqIEUuZy4gXCJCdWcgVHJhY2tlclwiXG4gICAqL1xuICByZWFkb25seSB1cmxzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFBhY2thZ2UgbW9kZSAob3B0aW9uYWwpLlxuICAgKiBAc2VlIGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvZG9jcy9weXByb2plY3QvI3BhY2thZ2UtbW9kZVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBleGFtcGxlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTW9kZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUG9ldHJ5LXNwZWNpZmljIG9wdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvZG9jcy9weXByb2plY3QvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9ldHJ5UHlwcm9qZWN0T3B0aW9uc1xuICBleHRlbmRzIFBvZXRyeVB5cHJvamVjdE9wdGlvbnNXaXRob3V0RGVwcyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZGVwZW5kZW5jaWVzIGZvciB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogVGhlIHB5dGhvbiB2ZXJzaW9uIGZvciB3aGljaCB5b3VyIHBhY2thZ2UgaXMgY29tcGF0aWJsZSBpcyBhbHNvIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZXhhbXBsZSB7IHJlcXVlc3RzOiBcIl4yLjEzLjBcIiB9XG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIGZvciB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGUgeyByZXF1ZXN0czogXCJeMi4xMy4wXCIgfVxuICAgKi9cbiAgcmVhZG9ubHkgZGV2RGVwZW5kZW5jaWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGNvbmZpZ3VyYXRpb24gb2YgYSBweXByb2plY3QudG9tbCBmaWxlIGZvciBhIFBvZXRyeSBwcm9qZWN0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzL3B5cHJvamVjdC9cbiAqL1xuZXhwb3J0IGNsYXNzIFBvZXRyeVB5cHJvamVjdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlOiBUb21sRmlsZTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBQb2V0cnlQeXByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCB7IGRlcGVuZGVuY2llcywgZGV2RGVwZW5kZW5jaWVzLCAuLi5vdGhlck9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZGVjYW1lbGl6ZWRPcHRpb25zID0gZGVjYW1lbGl6ZUtleXNSZWN1cnNpdmVseShvdGhlck9wdGlvbnMsIHtcbiAgICAgIHNlcGFyYXRvcjogXCItXCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b21sU3RydWN0dXJlOiBhbnkgPSB7XG4gICAgICB0b29sOiB7XG4gICAgICAgIHBvZXRyeToge1xuICAgICAgICAgIC4uLmRlY2FtZWxpemVkT3B0aW9ucyxcbiAgICAgICAgICBkZXBlbmRlbmNpZXM6IGRlcGVuZGVuY2llcyxcbiAgICAgICAgICBncm91cDoge1xuICAgICAgICAgICAgZGV2OiB7XG4gICAgICAgICAgICAgIGRlcGVuZGVuY2llczogZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIFwiYnVpbGQtc3lzdGVtXCI6IHtcbiAgICAgICAgcmVxdWlyZXM6IFtcInBvZXRyeS1jb3JlXCJdLFxuICAgICAgICBcImJ1aWxkLWJhY2tlbmRcIjogXCJwb2V0cnkuY29yZS5tYXNvbnJ5LmFwaVwiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5maWxlID0gbmV3IFRvbWxGaWxlKHByb2plY3QsIFwicHlwcm9qZWN0LnRvbWxcIiwge1xuICAgICAgb21pdEVtcHR5OiBmYWxzZSxcbiAgICAgIG9iajogdG9tbFN0cnVjdHVyZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
219
|
+
PoetryPyproject[_b] = { fqn: "projen.python.PoetryPyproject", version: "0.98.24" };
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B5dGhvbi9wb2V0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvQ0FBb0M7QUFNcEMsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQUdqRCxrREFBOEM7QUFDOUMsa0NBQW1DO0FBQ25DLGtDQUEyRTtBQUMzRSwrREFBMEQ7QUFNMUQ7OztHQUdHO0FBQ0gsTUFBYSxNQUNYLFNBQVEscUJBQVM7SUFrQ2pCLFlBQVksT0FBZ0IsRUFBRSxPQUFzQjtRQUNsRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDO1FBRWpELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDNUMsV0FBVyxFQUFFLDBDQUEwQztZQUN2RCxJQUFJLEVBQUUsZUFBZTtTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ2pELFdBQVcsRUFBRSwyQ0FBMkM7WUFDeEQsSUFBSSxFQUFFLHVDQUF1QztTQUM5QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQy9CLGFBQWE7UUFDYiw0REFBNEQ7UUFDNUQsd0RBQXdELENBQ3pELENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQy9CLE1BQU0sRUFDTix5Q0FBeUMsQ0FDMUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDckQsV0FBVyxFQUFFLG1EQUFtRDtZQUNoRSxJQUFJLEVBQUUs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LHFCQUFTO0lBRzVDLFlBQVksS0FBaUIsRUFBRSxPQUErQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRXJELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSx1Q0FBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDdkMsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRTtvQkFDTixHQUFHLElBQUEsZ0NBQXlCLEVBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUM5RCxLQUFLLEVBQUU7d0JBQ0wsR0FBRyxFQUFFOzRCQUNILFlBQVksRUFBRSxlQUFlO3lCQUM5QjtxQkFDRjtpQkFDRjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDekIsWUFBWSxFQUFFLHlCQUF5QjthQUN4QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeEJILDBDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRPTUwgZnJvbSBcIkBpYXJuYS90b21sXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElQeXRob25EZXBzIH0gZnJvbSBcIi4vcHl0aG9uLWRlcHNcIjtcbmltcG9ydCB7IElQeXRob25FbnYgfSBmcm9tIFwiLi9weXRob24tZW52XCI7XG5pbXBvcnQgeyBJUHl0aG9uUGFja2FnaW5nLCBQeXRob25QYWNrYWdpbmdPcHRpb25zIH0gZnJvbSBcIi4vcHl0aG9uLXBhY2thZ2luZ1wiO1xuaW1wb3J0IHsgUHl0aG9uRXhlY3V0YWJsZU9wdGlvbnMgfSBmcm9tIFwiLi9weXRob24tcHJvamVjdFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwiLi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza1wiO1xuaW1wb3J0IHsgVGFza1J1bnRpbWUgfSBmcm9tIFwiLi4vdGFzay1ydW50aW1lXCI7XG5pbXBvcnQgeyBUb21sRmlsZSB9IGZyb20gXCIuLi90b21sXCI7XG5pbXBvcnQgeyBkZWNhbWVsaXplS2V5c1JlY3Vyc2l2ZWx5LCBleGVjLCBleGVjT3JVbmRlZmluZWQgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgUHlwcm9qZWN0VG9tbEZpbGUgfSBmcm9tIFwiLi9weXByb2plY3QtdG9tbC1maWxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ldHJ5T3B0aW9uc1xuICBleHRlbmRzIFB5dGhvblBhY2thZ2luZ09wdGlvbnMsXG4gICAgUHl0aG9uRXhlY3V0YWJsZU9wdGlvbnMge31cblxuLyoqXG4gKiBNYW5hZ2UgcHJvamVjdCBkZXBlbmRlbmNpZXMsIHZpcnR1YWwgZW52aXJvbm1lbnRzLCBhbmQgcGFja2FnaW5nIHRocm91Z2ggdGhlXG4gKiBwb2V0cnkgQ0xJIHRvb2wuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2V0cnlcbiAgZXh0ZW5kcyBDb21wb25lbnRcbiAgaW1wbGVtZW50cyBJUHl0aG9uRGVwcywgSVB5dGhvbkVudiwgSVB5dGhvblBhY2thZ2luZ1xue1xuICAvKipcbiAgICogVGFzayBmb3IgdXBkYXRpbmcgdGhlIGxvY2tmaWxlIGFuZCBpbnN0YWxsaW5nIHByb2plY3QgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbGxUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUYXNrIGZvciBpbnN0YWxsaW5nIGRlcGVuZGVuY2llcyBhY2NvcmRpbmcgdG8gdGhlIGV4aXN0aW5nIGxvY2tmaWxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbGxDaVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRhc2sgZm9yIHB1Ymxpc2hpbmcgdGhlIHBhY2thZ2UgdG8gYSBwYWNrYWdlIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRhc2sgZm9yIHB1Ymxpc2hpbmcgdGhlIHBhY2thZ2UgdG8gdGhlIFRlc3QgUHlQSSByZXBvc2l0b3J5IGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hUZXN0VGFzazogVGFzaztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgUHl0aG9uIGV4ZWN1dGFibGUgdG8gdXNlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBweXRob25FeGVjOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGBweXByb2plY3QudG9tbGAgZmlsZSBmb3IgYSBQb2V0cnkgcHJvamVjdC5cbiAgICogVGhpcyBpbmNsdWRlcyBwYWNrYWdlIG1ldGFkYXRhLCBkZXBlbmRlbmNpZXMsIGFuZCBQb2V0cnktc3BlY2lmaWMgc2V0dGluZ3MuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHB5UHJvamVjdDogUG9ldHJ5UHlwcm9qZWN0O1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFBvZXRyeU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLnB5dGhvbkV4ZWMgPSBvcHRpb25zLnB5dGhvbkV4ZWMgPz8gXCJweXRob25cIjtcblxuICAgIHRoaXMuaW5zdGFsbFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJpbnN0YWxsXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkluc3RhbGwgZGVwZW5kZW5jaWVzIGFuZCB1cGRhdGUgbG9ja2ZpbGVcIixcbiAgICAgIGV4ZWM6IFwicG9ldHJ5IHVwZGF0ZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnN0YWxsQ2lUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiaW5zdGFsbDpjaVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJJbnN0YWxsIGRlcGVuZGVuY2llcyB3aXRoIGZyb3plbiBsb2NrZmlsZVwiLFxuICAgICAgZXhlYzogXCJwb2V0cnkgY2hlY2sgLS1sb2NrICYmIHBvZXRyeSBpbnN0YWxsXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb2plY3QudGFza3MuYWRkRW52aXJvbm1lbnQoXG4gICAgICBcIlZJUlRVQUxfRU5WXCIsXG4gICAgICAvLyBDcmVhdGUgLnZlbnYgb24gdGhlIGZpcnN0IHJ1biBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3RcbiAgICAgIFwiJChwb2V0cnkgZW52IGluZm8gLXAgfHwgcG9ldHJ5IHJ1biBwb2V0cnkgZW52IGluZm8gLXApXCJcbiAgICApO1xuICAgIHRoaXMucHJvamVjdC50YXNrcy5hZGRFbnZpcm9ubWVudChcbiAgICAgIFwiUEFUSFwiLFxuICAgICAgXCIkKGVjaG8gJChwb2V0cnkgZW52IGluZm8gLXApL2JpbjokUEFUSClcIlxuICAgICk7XG5cbiAgICBwcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoXCJwb2V0cnkgYnVpbGRcIik7XG5cbiAgICB0aGlzLnB1Ymxpc2hUZXN0VGFzayA9IHByb2plY3QuYWRkVGFzayhcInB1Ymxpc2g6dGVzdFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJVcGxvYWRzIHRoZSBwYWNrYWdlIGFnYWluc3QgYSB0ZXN0IFB5UEkgZW5kcG9pbnQuXCIsXG4gICAgICBleGVjOiBcInBvZXRyeSBwdWJsaXNoIC1yIHRlc3RweXBpXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnB1Ymxpc2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwicHVibGlzaFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJVcGxvYWRzIHRoZSBwYWNrYWdlIHRvIFB5UEkuXCIsXG4gICAgICBleGVjOiBcInBvZXRyeSBwdWJsaXNoXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnB5UHJvamVjdCA9IG5ldyBQb2V0cnlQeXByb2plY3QocHJvamVjdCwge1xuICAgICAgbmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gPz8gXCJcIixcbiAgICAgIGxpY2Vuc2U6IG9wdGlvbnMubGljZW5zZSxcbiAgICAgIGF1dGhvcnM6IFtgJHtvcHRpb25zLmF1dGhvck5hbWV9IDwke29wdGlvbnMuYXV0aG9yRW1haWx9PmBdLFxuICAgICAgaG9tZXBhZ2U6IG9wdGlvbnMuaG9tZXBhZ2UsXG4gICAgICBjbGFzc2lmaWVyczogb3B0aW9ucy5jbGFzc2lmaWVycyxcbiAgICAgIC4uLm9wdGlvbnMucG9ldHJ5T3B0aW9ucyxcbiAgICAgIGRlcGVuZGVuY2llczogKCkgPT4gdGhpcy5zeW50aERlcGVuZGVuY2llcygpLFxuICAgICAgZGV2RGVwZW5kZW5jaWVzOiAoKSA9PiB0aGlzLnN5bnRoRGV2RGVwZW5kZW5jaWVzKCksXG4gICAgfSk7XG5cbiAgICBuZXcgVG9tbEZpbGUocHJvamVjdCwgXCJwb2V0cnkudG9tbFwiLCB7XG4gICAgICBjb21taXR0ZWQ6IGZhbHNlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIHJlcG9zaXRvcmllczoge1xuICAgICAgICAgIHRlc3RweXBpOiB7XG4gICAgICAgICAgICB1cmw6IFwiaHR0cHM6Ly90ZXN0LnB5cGkub3JnL2xlZ2FjeS9cIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3ludGhEZXBlbmRlbmNpZXMoKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgbGV0IHB5dGhvbkRlZmluZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHBrZyBvZiB0aGlzLnByb2plY3QuZGVwcy5hbGwpIHtcbiAgICAgIGlmIChwa2cubmFtZSA9PT0gXCJweXRob25cIikge1xuICAgICAgICBweXRob25EZWZpbmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwa2cudHlwZSA9PT0gRGVwZW5kZW5jeVR5cGUuUlVOVElNRSkge1xuICAgICAgICBkZXBlbmRlbmNpZXNbcGtnLm5hbWVdID0gcGtnLnZlcnNpb24gPz8gXCIqXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcHl0aG9uRGVmaW5lZCkge1xuICAgICAgLy8gUHl0aG9uIHZlcnNpb24gbXVzdCBiZSBkZWZpbmVkIGZvciBwb2V0cnkgcHJvamVjdHMuIERlZmF1bHQgdG8gXjMuOC5cbiAgICAgIGRlcGVuZGVuY2llcy5weXRob24gPSBcIl4zLjhcIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGVybWl0RGVwc1dpdGhUb21sSW5saW5lVGFibGVzKGRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBwcml2YXRlIHN5bnRoRGV2RGVwZW5kZW5jaWVzKCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY2llczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGZvciAoY29uc3QgcGtnIG9mIHRoaXMucHJvamVjdC5kZXBzLmFsbCkge1xuICAgICAgaWYgKFtEZXBlbmRlbmN5VHlwZS5ERVZFTlYsIERlcGVuZGVuY3lUeXBlLlRFU1RdLmluY2x1ZGVzKHBrZy50eXBlKSkge1xuICAgICAgICBkZXBlbmRlbmNpZXNbcGtnLm5hbWVdID0gcGtnLnZlcnNpb24gPz8gXCIqXCI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnBlcm1pdERlcHNXaXRoVG9tbElubGluZVRhYmxlcyhkZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBkZXBlbmRlbmN5IHZhbHVlcyB0aGF0IG1heSBpbmNsdWRlIFRPTUwgaW5saW5lIHRhYmxlcywgY29udmVydGluZyB0aGVtIGludG8gSmF2YVNjcmlwdCBvYmplY3RzLlxuICAgKiBJZiBhIGRlcGVuZGVuY3kgdmFsdWUgY2Fubm90IGJlIHBhcnNlZCBhcyBhIFRPTUwgaW5saW5lIHRhYmxlIChpbmRpY2F0aW5nIGl0IGlzIGEgcGxhaW4gU2VtVmVyIHN0cmluZyksXG4gICAqIGl0IGlzIGxlZnQgdW5jaGFuZ2VkLiBUaGlzIGFsbG93cyB0byBzdXBwb3J0IHRoZSBmdWxsIHJhbmdlIG9mIFBvZXRyeSdzIGRlcGVuZGVuY3kgc3BlY2lmaWNhdGlvbi5cbiAgICogQHNlZSBodHRwczovL3B5dGhvbi1wb2V0cnkub3JnL2RvY3MvZGVwZW5kZW5jeS1zcGVjaWZpY2F0aW9uL1xuICAgKiBAc2VlIGh0dHBzOi8vdG9tbC5pby9lbi92MS4wLjAjaW5saW5lLXRhYmxlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIEdpdmVuIGEgYGRlcGVuZGVuY2llc2Agb2JqZWN0IGxpa2UgdGhpczpcbiAgICogY29uc3QgZGVwZW5kZW5jaWVzID0ge1xuICAgKiAgIFwibXlwYWNrYWdlXCI6IFwieyB2ZXJzaW9uID0gJzEuMi4zJywgZXh0cmFzID0gWydleHRyYTEnLCAnZXh0cmEyJ10gfVwiLFxuICAgKiAgIFwiYW5vdGhlcnBhY2thZ2VcIjogXCJeMi4zLjRcIlxuICAgKiB9O1xuICAgKiAvLyBBZnRlciBwYXJzaW5nLCB0aGUgcmVzdWx0aW5nIG9iamVjdCB3b3VsZCBiZTpcbiAgICoge1xuICAgKiAgIFwibXlwYWNrYWdlXCI6IHtcbiAgICogICAgIHZlcnNpb246IFwiMS4yLjNcIixcbiAgICogICAgIGV4dHJhczogW1wiZXh0cmExXCIsIFwiZXh0cmEyXCJdXG4gICAqICAgfSxcbiAgICogICBcImFub3RoZXJwYWNrYWdlXCI6IFwiXjIuMy40XCJcbiAgICogfVxuICAgKiAvLyBOb3RlOiBUaGUgdmFsdWUgb2YgYGFub3RoZXJwYWNrYWdlYCByZW1haW5zIHVuY2hhbmdlZCBhcyBpdCBpcyBhIHBsYWluIFNlbVZlciBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBkZXBlbmRlbmNpZXMgQW4gb2JqZWN0IHdoZXJlIGVhY2gga2V5IGlzIGEgZGVwZW5kZW5jeSBuYW1lIGFuZCBlYWNoIHZhbHVlIGlzIGEgc3RyaW5nIHRoYXQgbWlnaHQgYmVcbiAgICogZWl0aGVyIGEgU2VtVmVyIHN0cmluZyBvciBhIFRPTUwgaW5saW5lIHRhYmxlIHN0cmluZy5cbiAgICogQHJldHVybnMgQSBuZXcgb2JqZWN0IHdoZXJlIGVhY2gga2V5IGlzIGEgZGVwZW5kZW5jeSBuYW1lIGFuZCBlYWNoIHZhbHVlIGlzIGVpdGhlciB0aGUgb3JpZ2luYWwgU2VtVmVyIHN0cmluZ1xuICAgKiBvciB0aGUgcGFyc2VkIEphdmFTY3JpcHQgb2JqZWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBUT01MIGlubGluZSB0YWJsZS5cbiAgICovXG4gIHByaXZhdGUgcGVybWl0RGVwc1dpdGhUb21sSW5saW5lVGFibGVzKGRlcGVuZGVuY2llczoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfSkge1xuICAgIGNvbnN0IHBhcnNlVG9tbElubGluZVRhYmxlID0gKGRlcGVuZGVuY3lWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBBdHRlbXB0IHBhcnNpbmcgdGhlIGBkZXBlbmRlbmN5VmFsdWVgIGFzIGEgVE9NTCBpbmxpbmUgdGFibGVcbiAgICAgICAgcmV0dXJuIFRPTUwucGFyc2UoYGRlcGVuZGVuY3lLZXkgPSAke2RlcGVuZGVuY3lWYWx1ZX1gKS5kZXBlbmRlbmN5S2V5O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIElmIHBhcnNpbmcgZmFpbHMsIHRyZWF0IHRoZSBgZGVwZW5kZW5jeVZhbHVlYCBhcyBhIHBsYWluIFNlbVZlciBzdHJpbmdcbiAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3lWYWx1ZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKGRlcGVuZGVuY2llcykubWFwKChbZGVwZW5kZW5jeUtleSwgZGVwZW5kZW5jeVZhbHVlXSkgPT4ge1xuICAgICAgICByZXR1cm4gW2RlcGVuZGVuY3lLZXksIHBhcnNlVG9tbElubGluZVRhYmxlKGRlcGVuZGVuY3lWYWx1ZSldO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBydW50aW1lIGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIEZvcm1hdCBgPG1vZHVsZT5APHNlbXZlcj5gXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHNwZWMsIERlcGVuZGVuY3lUeXBlLlJVTlRJTUUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZXYgZGVwZW5kZW5jeS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgRm9ybWF0IGA8bW9kdWxlPkA8c2VtdmVyPmBcbiAgICovXG4gIHB1YmxpYyBhZGREZXZEZXBlbmRlbmN5KHNwZWM6IHN0cmluZykge1xuICAgIHRoaXMucHJvamVjdC5kZXBzLmFkZERlcGVuZGVuY3koc3BlYywgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCBpZiBpdCBkb2Vzbid0IGV4aXN0IChjYWxsZWQgZHVyaW5nIHBvc3Qtc3ludGhlc2lzKS5cbiAgICovXG4gIHB1YmxpYyBzZXR1cEVudmlyb25tZW50KCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGV4ZWNPclVuZGVmaW5lZChcIndoaWNoIHBvZXRyeVwiLCB7XG4gICAgICBjd2Q6IHRoaXMucHJvamVjdC5vdXRkaXIsXG4gICAgfSk7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcbiAgICAgICAgXCJVbmFibGUgdG8gc2V0dXAgYW4gZW52aXJvbm1lbnQgc2luY2UgcG9ldHJ5IGlzIG5vdCBpbnN0YWxsZWQuIFBsZWFzZSBpbnN0YWxsIHBvZXRyeSAoaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzLykgb3IgdXNlIGEgZGlmZmVyZW50IGNvbXBvbmVudCBmb3IgbWFuYWdpbmcgZW52aXJvbm1lbnRzIHN1Y2ggYXMgJ3ZlbnYnLlwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBlbnZQYXRoID0gZXhlY09yVW5kZWZpbmVkKFwicG9ldHJ5IGVudiBpbmZvIC1wXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5wcm9qZWN0Lm91dGRpcixcbiAgICB9KTtcbiAgICBpZiAoIWVudlBhdGgpIHtcbiAgICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcIlNldHRpbmcgdXAgYSB2aXJ0dWFsIGVudmlyb25tZW50Li4uXCIpO1xuICAgICAgZXhlYyhgcG9ldHJ5IGVudiB1c2UgJHt0aGlzLnB5dGhvbkV4ZWN9YCwgeyBjd2Q6IHRoaXMucHJvamVjdC5vdXRkaXIgfSk7XG4gICAgICBlbnZQYXRoID0gZXhlY09yVW5kZWZpbmVkKFwicG9ldHJ5IGVudiBpbmZvIC1wXCIsIHtcbiAgICAgICAgY3dkOiB0aGlzLnByb2plY3Qub3V0ZGlyLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXG4gICAgICAgIGBFbnZpcm9ubWVudCBzdWNjZXNzZnVsbHkgY3JlYXRlZCAobG9jYXRlZCBpbiAke2VudlBhdGh9fSkuYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5zdGFsbHMgZGVwZW5kZW5jaWVzIChjYWxsZWQgZHVyaW5nIHBvc3Qtc3ludGhlc2lzKS5cbiAgICovXG4gIHB1YmxpYyBpbnN0YWxsRGVwZW5kZW5jaWVzKCkge1xuICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcIkluc3RhbGxpbmcgZGVwZW5kZW5jaWVzLi4uXCIpO1xuICAgIGNvbnN0IHJ1bnRpbWUgPSBuZXcgVGFza1J1bnRpbWUodGhpcy5wcm9qZWN0Lm91dGRpcik7XG4gICAgLy8gSWYgdGhlIHB5cHJvamVjdC50b21sIGZpbGUgaGFzIGNoYW5nZWQsIHVwZGF0ZSB0aGUgbG9ja2ZpbGUgcHJpb3IgdG8gaW5zdGFsbGF0aW9uXG4gICAgaWYgKHRoaXMucHlQcm9qZWN0LmZpbGUuY2hhbmdlZCkge1xuICAgICAgcnVudGltZS5ydW5UYXNrKHRoaXMuaW5zdGFsbFRhc2submFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJ1bnRpbWUucnVuVGFzayh0aGlzLmluc3RhbGxDaVRhc2submFtZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUG9ldHJ5LXNwZWNpZmljIG9wdGlvbnMuXG4gKiBAc2VlIGh0dHBzOi8vcHl0aG9uLXBvZXRyeS5vcmcvZG9jcy9weXByb2plY3QvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9ldHJ5UHlwcm9qZWN0T3B0aW9uc1dpdGhvdXREZXBzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHBhY2thZ2UgKHJlcXVpcmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIHBhY2thZ2UgKHJlcXVpcmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIHBhY2thZ2UgKHJlcXVpcmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaWNlbnNlIG9mIHRoaXMgcGFja2FnZSBhcyBhbiBTUERYIGlkZW50aWZpZXIuXG4gICAqXG4gICAqIElmIHRoZSBwcm9qZWN0IGlzIHByb3ByaWV0YXJ5IGFuZCBkb2VzIG5vdCB1c2UgYSBzcGVjaWZpYyBsaWNlbnNlLCB5b3VcbiAgICogY2FuIHNldCB0aGlzIHZhbHVlIGFzIFwiUHJvcHJpZXRhcnlcIi5cbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JzIG9mIHRoZSBwYWNrYWdlLiBNdXN0IGJlIGluIHRoZSBmb3JtIFwibmFtZSA8ZW1haWw+XCJcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogdGhlIG1haW50YWluZXJzIG9mIHRoZSBwYWNrYWdlLiBNdXN0IGJlIGluIHRoZSBmb3JtIFwibmFtZSA8ZW1haWw+XCJcbiAgICovXG4gIHJlYWRvbmx5IG1haW50YWluZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZWFkbWUgZmlsZSBvZiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBVUkwgdG8gdGhlIHdlYnNpdGUgb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBob21lcGFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBVUkwgdG8gdGhlIHJlcG9zaXRvcnkgb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIFVSTCB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBrZXl3b3JkcyAobWF4OiA1KSB0aGF0IHRoZSBwYWNrYWdlIGlzIHJlbGF0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgUHlQSSB0cm92ZSBjbGFzc2lmaWVycyB0aGF0IGRlc2NyaWJlIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcHlwaS5vcmcvY2xhc3NpZmllcnMvXG4gICAqL1xuICByZWFkb25seSBjbGFzc2lmaWVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGFja2FnZXMgYW5kIG1vZHVsZXMgdG8gaW5jbHVkZSBpbiB0aGUgZmluYWwgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZXM/OiBhbnlbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdHRlcm5zIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhdHRlcm5zIHRoYXQgd2lsbCBiZSBleGNsdWRlZCBpbiB0aGUgZmluYWwgcGFja2FnZS5cbiAgICpcbiAgICogSWYgYSBWQ1MgaXMgYmVpbmcgdXNlZCBmb3IgYSBwYWNrYWdlLCB0aGUgZXhjbHVkZSBmaWVsZCB3aWxsIGJlIHNlZWRlZCB3aXRoXG4gICAqIHRoZSBWQ1PigJkgaWdub3JlIHNldHRpbmdzICguZ2l0aWdub3JlIGZvciBnaXQgZm9yIGV4YW1wbGUpLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NyaXB0cyBvciBleGVjdXRhYmxlcyB0aGF0IHdpbGwgYmUgaW5zdGFsbGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjcmlwdHM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgcmVnaXN0cmllcyBmcm9tIHdoaWNoIHBhY2thZ2VzIGFyZSByZXRyaWV2ZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U/OiBhbnlbXTtcblxuICAvKipcbiAgICogUGFja2FnZSBleHRyYXNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfTtcblxuICAvKipcbiAgICogUGx1Z2lucy4gTXVzdCBiZSBzcGVjaWZpZWQgYXMgYSB0YWJsZS5cbiAgICogQHNlZSBodHRwczovL3RvbWwuaW8vZW4vdjEuMC4wI3RhYmxlXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5zPzogYW55O1xuXG4gIC8qKlxuICAgKiBQcm9qZWN0IGN1c3RvbSBVUkxzLCBpbiBhZGRpdGlvbiB0byBob21lcGFnZSwgcmVwb3NpdG9yeSBhbmQgZG9jdW1lbnRhdGlvbi5cbiAgICogRS5nLiBcIkJ1ZyBUcmFja2VyXCJcbiAgICovXG4gIHJlYWRvbmx5IHVybHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKipcbiAgICogUGFja2FnZSBtb2RlIChvcHRpb25hbCkuXG4gICAqIEBzZWUgaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzL3B5cHJvamVjdC8jcGFja2FnZS1tb2RlXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGV4YW1wbGUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQb2V0cnktc3BlY2lmaWMgb3B0aW9ucy5cbiAqIEBzZWUgaHR0cHM6Ly9weXRob24tcG9ldHJ5Lm9yZy9kb2NzL3B5cHJvamVjdC9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2V0cnlQeXByb2plY3RPcHRpb25zXG4gIGV4dGVuZHMgUG9ldHJ5UHlwcm9qZWN0T3B0aW9uc1dpdGhvdXREZXBzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBkZXBlbmRlbmNpZXMgZm9yIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBUaGUgcHl0aG9uIHZlcnNpb24gZm9yIHdoaWNoIHlvdXIgcGFja2FnZSBpcyBjb21wYXRpYmxlIGlzIGFsc28gcmVxdWlyZWQuXG4gICAqXG4gICAqIEBleGFtcGxlIHsgcmVxdWVzdHM6IFwiXjIuMTMuMFwiIH1cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMgZm9yIHRoZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSB7IHJlcXVlc3RzOiBcIl4yLjEzLjBcIiB9XG4gICAqL1xuICByZWFkb25seSBkZXZEZXBlbmRlbmNpZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBvZiBhIHB5cHJvamVjdC50b21sIGZpbGUgZm9yIGEgUG9ldHJ5IHByb2plY3QuXG4gKlxuICogQHNlZSBodHRwczovL3B5dGhvbi1wb2V0cnkub3JnL2RvY3MvcHlwcm9qZWN0L1xuICovXG5leHBvcnQgY2xhc3MgUG9ldHJ5UHlwcm9qZWN0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGU6IFB5cHJvamVjdFRvbWxGaWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBJQ29uc3RydWN0LCBvcHRpb25zOiBQb2V0cnlQeXByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUpO1xuXG4gICAgY29uc3QgeyBkZXZEZXBlbmRlbmNpZXMsIC4uLnBvZXRyeUNvbmZpZyB9ID0gb3B0aW9ucztcblxuICAgIHRoaXMuZmlsZSA9IG5ldyBQeXByb2plY3RUb21sRmlsZShzY29wZSwge1xuICAgICAgdG9vbDoge1xuICAgICAgICBwb2V0cnk6IHtcbiAgICAgICAgICAuLi5kZWNhbWVsaXplS2V5c1JlY3Vyc2l2ZWx5KHBvZXRyeUNvbmZpZywgeyBzZXBhcmF0b3I6IFwiLVwiIH0pLFxuICAgICAgICAgIGdyb3VwOiB7XG4gICAgICAgICAgICBkZXY6IHtcbiAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzOiBkZXZEZXBlbmRlbmNpZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnVpbGRTeXN0ZW06IHtcbiAgICAgICAgcmVxdWlyZXM6IFtcInBvZXRyeS1jb3JlXCJdLFxuICAgICAgICBidWlsZEJhY2tlbmQ6IFwicG9ldHJ5LmNvcmUubWFzb25yeS5hcGlcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/python/projenrc.js
CHANGED
|
@@ -75,7 +75,7 @@ class Projenrc extends projenrc_1.ProjenrcFile {
|
|
|
75
75
|
}
|
|
76
76
|
exports.Projenrc = Projenrc;
|
|
77
77
|
_a = JSII_RTTI_SYMBOL_1;
|
|
78
|
-
Projenrc[_a] = { fqn: "projen.python.Projenrc", version: "0.98.
|
|
78
|
+
Projenrc[_a] = { fqn: "projen.python.Projenrc", version: "0.98.24" };
|
|
79
79
|
function resolvePythonImportName(jsiiFqn, jsiiManifest) {
|
|
80
80
|
const moduleName = jsiiManifest?.targets?.python?.module;
|
|
81
81
|
// Module name prefix should take precedence in the event moduleName !== fqn prefix
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IConstruct } from "constructs";
|
|
2
|
+
import { TomlFile } from "../toml";
|
|
3
|
+
import { PyprojectToml } from "./pyproject-toml";
|
|
4
|
+
import { IResolver } from "../file";
|
|
5
|
+
/**
|
|
6
|
+
* Represents configuration of a pyproject.toml file
|
|
7
|
+
*
|
|
8
|
+
* @see https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
|
|
9
|
+
*/
|
|
10
|
+
export declare class PyprojectTomlFile extends TomlFile {
|
|
11
|
+
constructor(scope: IConstruct, config: PyprojectToml);
|
|
12
|
+
protected synthesizeContent(resolver: IResolver): string | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PyprojectTomlFile = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const toml_1 = require("../toml");
|
|
7
|
+
const pyproject_toml_1 = require("./pyproject-toml");
|
|
8
|
+
/**
|
|
9
|
+
* Represents configuration of a pyproject.toml file
|
|
10
|
+
*
|
|
11
|
+
* @see https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
|
|
12
|
+
*/
|
|
13
|
+
class PyprojectTomlFile extends toml_1.TomlFile {
|
|
14
|
+
constructor(scope, config) {
|
|
15
|
+
super(scope, "pyproject.toml", {
|
|
16
|
+
omitEmpty: false,
|
|
17
|
+
obj: config,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
synthesizeContent(resolver) {
|
|
21
|
+
return super.synthesizeContent({
|
|
22
|
+
resolve: (value) => (0, pyproject_toml_1.toJson_PyprojectToml)(resolver.resolve(value)),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.PyprojectTomlFile = PyprojectTomlFile;
|
|
27
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
28
|
+
PyprojectTomlFile[_a] = { fqn: "projen.python.PyprojectTomlFile", version: "0.98.24" };
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHlwcm9qZWN0LXRvbWwtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9weXRob24vcHlwcm9qZWN0LXRvbWwtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtDQUFtQztBQUNuQyxxREFBdUU7QUFHdkU7Ozs7R0FJRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsZUFBUTtJQUM3QyxZQUFZLEtBQWlCLEVBQUUsTUFBcUI7UUFDbEQsS0FBSyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtZQUM3QixTQUFTLEVBQUUsS0FBSztZQUNoQixHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxRQUFtQjtRQUM3QyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUEscUNBQW9CLEVBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsRSxDQUFDLENBQUM7SUFDTCxDQUFDOztBQVpILDhDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUb21sRmlsZSB9IGZyb20gXCIuLi90b21sXCI7XG5pbXBvcnQgeyBQeXByb2plY3RUb21sLCB0b0pzb25fUHlwcm9qZWN0VG9tbCB9IGZyb20gXCIuL3B5cHJvamVjdC10b21sXCI7XG5pbXBvcnQgeyBJUmVzb2x2ZXIgfSBmcm9tIFwiLi4vZmlsZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBvZiBhIHB5cHJvamVjdC50b21sIGZpbGVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGFja2FnaW5nLnB5dGhvbi5vcmcvZW4vbGF0ZXN0L2d1aWRlcy93cml0aW5nLXB5cHJvamVjdC10b21sL1xuICovXG5leHBvcnQgY2xhc3MgUHlwcm9qZWN0VG9tbEZpbGUgZXh0ZW5kcyBUb21sRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBJQ29uc3RydWN0LCBjb25maWc6IFB5cHJvamVjdFRvbWwpIHtcbiAgICBzdXBlcihzY29wZSwgXCJweXByb2plY3QudG9tbFwiLCB7XG4gICAgICBvbWl0RW1wdHk6IGZhbHNlLFxuICAgICAgb2JqOiBjb25maWcsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQocmVzb2x2ZXI6IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHN1cGVyLnN5bnRoZXNpemVDb250ZW50KHtcbiAgICAgIHJlc29sdmU6ICh2YWx1ZSkgPT4gdG9Kc29uX1B5cHJvamVjdFRvbWwocmVzb2x2ZXIucmVzb2x2ZSh2YWx1ZSkpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @schema PyprojectToml
|
|
3
|
+
*/
|
|
4
|
+
export interface PyprojectToml {
|
|
5
|
+
/**
|
|
6
|
+
* There are two kinds of metadata: _static_ and _dynamic_.
|
|
7
|
+
* - Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.
|
|
8
|
+
* - Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.
|
|
9
|
+
*
|
|
10
|
+
* @schema PyprojectToml#project
|
|
11
|
+
*/
|
|
12
|
+
readonly project?: PyprojectTomlProject;
|
|
13
|
+
/**
|
|
14
|
+
* Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).
|
|
15
|
+
*
|
|
16
|
+
* @schema PyprojectToml#dependency-groups
|
|
17
|
+
*/
|
|
18
|
+
readonly dependencyGroups?: PyprojectTomlDependencyGroups;
|
|
19
|
+
/**
|
|
20
|
+
* @schema PyprojectToml#build-system
|
|
21
|
+
*/
|
|
22
|
+
readonly buildSystem?: BuildSystem;
|
|
23
|
+
/**
|
|
24
|
+
* Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.
|
|
25
|
+
*
|
|
26
|
+
* @schema PyprojectToml#tool
|
|
27
|
+
*/
|
|
28
|
+
readonly tool?: PyprojectTomlTool;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts an object of type 'PyprojectToml' to JSON representation.
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function toJson_PyprojectToml(obj: PyprojectToml | undefined): Record<string, any> | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* There are two kinds of metadata: _static_ and _dynamic_.
|
|
37
|
+
* - Static metadata is listed in the `[project]` table directly and cannot be specified or changed by a tool.
|
|
38
|
+
* - Dynamic metadata key names are listed inside the `dynamic` key and represents metadata that a tool will later provide.
|
|
39
|
+
*
|
|
40
|
+
* @schema PyprojectTomlProject
|
|
41
|
+
*/
|
|
42
|
+
export interface PyprojectTomlProject {
|
|
43
|
+
/**
|
|
44
|
+
* Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.
|
|
45
|
+
*
|
|
46
|
+
* @schema PyprojectTomlProject#name
|
|
47
|
+
*/
|
|
48
|
+
readonly name: string;
|
|
49
|
+
/**
|
|
50
|
+
* Version of the project, as defined in the [Version specifier specification](https://packaging.python.org/en/latest/specifications/version-specifiers/), and preferably [already normalized](https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization).
|
|
51
|
+
*
|
|
52
|
+
* @schema PyprojectTomlProject#version
|
|
53
|
+
*/
|
|
54
|
+
readonly version?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Summary description of the project in one line. Tools may not accept multiple lines.
|
|
57
|
+
*
|
|
58
|
+
* @schema PyprojectTomlProject#description
|
|
59
|
+
*/
|
|
60
|
+
readonly description?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Value can be a relative path to text / markdown (`.md` suffix) / reStructuredText (`.rst` suffix) readme file, or a table with either:
|
|
63
|
+
* - `file` key containing path of aforementioned readme file, or
|
|
64
|
+
* - `text` key containing the full readme text embedded inside `pyproject.toml`.
|
|
65
|
+
*
|
|
66
|
+
* @schema PyprojectTomlProject#readme
|
|
67
|
+
*/
|
|
68
|
+
readonly readme?: any;
|
|
69
|
+
/**
|
|
70
|
+
* Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in [Version specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/).
|
|
71
|
+
*
|
|
72
|
+
* @schema PyprojectTomlProject#requires-python
|
|
73
|
+
*/
|
|
74
|
+
readonly requiresPython?: string;
|
|
75
|
+
/**
|
|
76
|
+
* For now it is a table with either:
|
|
77
|
+
* - `file` key specifying a relative path to a license file, or
|
|
78
|
+
* - `text` key containing full license content
|
|
79
|
+
*
|
|
80
|
+
* Newer tool may accept a single [SPDX license expression](https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/) string instead of a table.
|
|
81
|
+
*
|
|
82
|
+
* @schema PyprojectTomlProject#license
|
|
83
|
+
*/
|
|
84
|
+
readonly license?: any;
|
|
85
|
+
/**
|
|
86
|
+
* Relative paths or globs to paths of license files. Can be an empty list.
|
|
87
|
+
*
|
|
88
|
+
* @schema PyprojectTomlProject#license-files
|
|
89
|
+
*/
|
|
90
|
+
readonly licenseFiles?: string[];
|
|
91
|
+
/**
|
|
92
|
+
* People or organizations considered as 'authors' of the project. Each author is a table with `name` key, `email` key, or both.
|
|
93
|
+
*
|
|
94
|
+
* @schema PyprojectTomlProject#authors
|
|
95
|
+
*/
|
|
96
|
+
readonly authors?: ProjectAuthor[];
|
|
97
|
+
/**
|
|
98
|
+
* People or organizations considered as 'maintainers' of the project. Each maintainer is a table with `name` key, `email` key, or both.
|
|
99
|
+
*
|
|
100
|
+
* @schema PyprojectTomlProject#maintainers
|
|
101
|
+
*/
|
|
102
|
+
readonly maintainers?: ProjectAuthor[];
|
|
103
|
+
/**
|
|
104
|
+
* List of keywords or tags that describe the project. They could be used by search engines to categorize the project.
|
|
105
|
+
*
|
|
106
|
+
* @schema PyprojectTomlProject#keywords
|
|
107
|
+
*/
|
|
108
|
+
readonly keywords?: string[];
|
|
109
|
+
/**
|
|
110
|
+
* List of [Trove classifiers](https://pypi.org/classifiers/) that describe the project. PyPI use the classifiers to categorize projects.
|
|
111
|
+
*
|
|
112
|
+
* @schema PyprojectTomlProject#classifiers
|
|
113
|
+
*/
|
|
114
|
+
readonly classifiers?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* Table consisting one or multiple `label: URL` pairs. Common indexes like PyPI uses [well-known Project URLs](https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels) when presenting project pages.
|
|
117
|
+
*
|
|
118
|
+
* @schema PyprojectTomlProject#urls
|
|
119
|
+
*/
|
|
120
|
+
readonly urls?: {
|
|
121
|
+
[key: string]: string;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `console_scripts` specially in that they are wrapped in a console executable, so they are attached to a console and can use `sys.stdin`, `sys.stdout` and `sys.stderr` for I/O.
|
|
125
|
+
*
|
|
126
|
+
* @schema PyprojectTomlProject#scripts
|
|
127
|
+
*/
|
|
128
|
+
readonly scripts?: {
|
|
129
|
+
[key: string]: string;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Table of [entry points](https://packaging.python.org/en/latest/specifications/entry-points/) that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either `importable.module` or `importable.module:object.attr`. Windows platform treats `gui_scripts` specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them.
|
|
133
|
+
*
|
|
134
|
+
* @schema PyprojectTomlProject#gui-scripts
|
|
135
|
+
*/
|
|
136
|
+
readonly guiScripts?: {
|
|
137
|
+
[key: string]: string;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Extra [entry point groups](https://packaging.python.org/en/latest/specifications/entry-points/) that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through `[project.entry-points."pygments.styles"]`. Each key is the name of the entry-point group, and each value is a table of entry points.
|
|
141
|
+
*
|
|
142
|
+
* @schema PyprojectTomlProject#entry-points
|
|
143
|
+
*/
|
|
144
|
+
readonly entryPoints?: any;
|
|
145
|
+
/**
|
|
146
|
+
* An array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings, each representing a mandatory dependent package of the project.
|
|
147
|
+
*
|
|
148
|
+
* @schema PyprojectTomlProject#dependencies
|
|
149
|
+
*/
|
|
150
|
+
readonly dependencies?: string[];
|
|
151
|
+
/**
|
|
152
|
+
* Each entry is a key/value pair, with the key specifying [extra feature name](https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use) (such as `socks` in `requests[socks]`), and value is an array of [dependency specifier](https://packaging.python.org/en/latest/specifications/dependency-specifiers/) strings.
|
|
153
|
+
*
|
|
154
|
+
* @schema PyprojectTomlProject#optional-dependencies
|
|
155
|
+
*/
|
|
156
|
+
readonly optionalDependencies?: any;
|
|
157
|
+
/**
|
|
158
|
+
* An array of strings specifying the import names that the project exclusively provides when installed.
|
|
159
|
+
*
|
|
160
|
+
* @schema PyprojectTomlProject#import-names
|
|
161
|
+
*/
|
|
162
|
+
readonly importNames?: string[];
|
|
163
|
+
/**
|
|
164
|
+
* An array of strings specifying the import names that the project provides when installed, but not exclusively.
|
|
165
|
+
*
|
|
166
|
+
* @schema PyprojectTomlProject#import-namespaces
|
|
167
|
+
*/
|
|
168
|
+
readonly importNamespaces?: string[];
|
|
169
|
+
/**
|
|
170
|
+
* Specifies which keys are intentionally unspecified under `[project]` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in `dynamic` and use the key directly in `[project]`.
|
|
171
|
+
* One of the most common usage is `version`, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in `pyproject.toml`.
|
|
172
|
+
*
|
|
173
|
+
* @schema PyprojectTomlProject#dynamic
|
|
174
|
+
*/
|
|
175
|
+
readonly dynamic?: PyprojectTomlProjectDynamic[];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Converts an object of type 'PyprojectTomlProject' to JSON representation.
|
|
179
|
+
* @internal
|
|
180
|
+
*/
|
|
181
|
+
export declare function toJson_PyprojectTomlProject(obj: PyprojectTomlProject | undefined): Record<string, any> | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Named groups of dependencies, similar to `requirements.txt` files, which launchers, IDEs, and other tools can find and identify by name. Each item in `[dependency-groups]` is defined as mapping of group name to list of [dependency specifiers](https://packaging.python.org/en/latest/specifications/dependency-specifiers/).
|
|
184
|
+
*
|
|
185
|
+
* @schema PyprojectTomlDependencyGroups
|
|
186
|
+
*/
|
|
187
|
+
export interface PyprojectTomlDependencyGroups {
|
|
188
|
+
/**
|
|
189
|
+
* @schema PyprojectTomlDependencyGroups#dev
|
|
190
|
+
*/
|
|
191
|
+
readonly dev?: any[];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Converts an object of type 'PyprojectTomlDependencyGroups' to JSON representation.
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
export declare function toJson_PyprojectTomlDependencyGroups(obj: PyprojectTomlDependencyGroups | undefined): Record<string, any> | undefined;
|
|
198
|
+
/**
|
|
199
|
+
* Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.
|
|
200
|
+
*
|
|
201
|
+
* @schema BuildSystem
|
|
202
|
+
*/
|
|
203
|
+
export interface BuildSystem {
|
|
204
|
+
/**
|
|
205
|
+
* List of strings following the version specifier specification, representing dependencies required to execute the build system.
|
|
206
|
+
*
|
|
207
|
+
* @schema BuildSystem#requires
|
|
208
|
+
*/
|
|
209
|
+
readonly requires: string[];
|
|
210
|
+
/**
|
|
211
|
+
* String is formatted following the same `module:object` syntax as a `setuptools` entry point. It’s also legal to leave out the `:object` part.
|
|
212
|
+
*
|
|
213
|
+
* @schema BuildSystem#build-backend
|
|
214
|
+
*/
|
|
215
|
+
readonly buildBackend?: string;
|
|
216
|
+
/**
|
|
217
|
+
* list of directories to prepend to `sys.path` when loading the build backend, relative to project root
|
|
218
|
+
*
|
|
219
|
+
* @schema BuildSystem#backend-path
|
|
220
|
+
*/
|
|
221
|
+
readonly backendPath?: string[];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Converts an object of type 'BuildSystem' to JSON representation.
|
|
225
|
+
* @internal
|
|
226
|
+
*/
|
|
227
|
+
export declare function toJson_BuildSystem(obj: BuildSystem | undefined): Record<string, any> | undefined;
|
|
228
|
+
/**
|
|
229
|
+
* Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within `[tool]`. Generally a project can use the subtable `tool.$NAME` if, and only if, they own the entry for `$NAME` in the Cheeseshop/PyPI.
|
|
230
|
+
*
|
|
231
|
+
* @schema PyprojectTomlTool
|
|
232
|
+
*/
|
|
233
|
+
export interface PyprojectTomlTool {
|
|
234
|
+
/**
|
|
235
|
+
* The uncompromising Python code formatter.
|
|
236
|
+
*
|
|
237
|
+
* @schema PyprojectTomlTool#black
|
|
238
|
+
*/
|
|
239
|
+
readonly black?: any;
|
|
240
|
+
/**
|
|
241
|
+
* Build Python wheels for all platforms.
|
|
242
|
+
*
|
|
243
|
+
* @schema PyprojectTomlTool#cibuildwheel
|
|
244
|
+
*/
|
|
245
|
+
readonly cibuildwheel?: any;
|
|
246
|
+
/**
|
|
247
|
+
* Optional static typing for Python.
|
|
248
|
+
*
|
|
249
|
+
* @schema PyprojectTomlTool#mypy
|
|
250
|
+
*/
|
|
251
|
+
readonly mypy?: any;
|
|
252
|
+
/**
|
|
253
|
+
* An extremely fast Python linter and formatter, written in Rust.
|
|
254
|
+
*
|
|
255
|
+
* @schema PyprojectTomlTool#ruff
|
|
256
|
+
*/
|
|
257
|
+
readonly ruff?: any;
|
|
258
|
+
/**
|
|
259
|
+
* An extremely fast Python type checker, written in Rust.
|
|
260
|
+
*
|
|
261
|
+
* @schema PyprojectTomlTool#ty
|
|
262
|
+
*/
|
|
263
|
+
readonly ty?: any;
|
|
264
|
+
/**
|
|
265
|
+
* Modern, extensible Python project management.
|
|
266
|
+
*
|
|
267
|
+
* @schema PyprojectTomlTool#hatch
|
|
268
|
+
*/
|
|
269
|
+
readonly hatch?: any;
|
|
270
|
+
/**
|
|
271
|
+
* Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
|
|
272
|
+
*
|
|
273
|
+
* @schema PyprojectTomlTool#maturin
|
|
274
|
+
*/
|
|
275
|
+
readonly maturin?: any;
|
|
276
|
+
/**
|
|
277
|
+
* Improved build system generator for Python C/C++/Fortran extensions
|
|
278
|
+
*
|
|
279
|
+
* @schema PyprojectTomlTool#scikit-build
|
|
280
|
+
*/
|
|
281
|
+
readonly scikitBuild?: any;
|
|
282
|
+
/**
|
|
283
|
+
* Easily download, build, install, upgrade, and uninstall Python packages.
|
|
284
|
+
*
|
|
285
|
+
* @schema PyprojectTomlTool#setuptools
|
|
286
|
+
*/
|
|
287
|
+
readonly setuptools?: any;
|
|
288
|
+
/**
|
|
289
|
+
* Manage Python package versions using SCM (e.g. Git).
|
|
290
|
+
*
|
|
291
|
+
* @schema PyprojectTomlTool#setuptools_scm
|
|
292
|
+
*/
|
|
293
|
+
readonly setuptoolsScm?: any;
|
|
294
|
+
/**
|
|
295
|
+
* A task runner that works well with pyproject.toml files.
|
|
296
|
+
*
|
|
297
|
+
* @schema PyprojectTomlTool#poe
|
|
298
|
+
*/
|
|
299
|
+
readonly poe?: any;
|
|
300
|
+
/**
|
|
301
|
+
* Python dependency management and packaging made easy.
|
|
302
|
+
*
|
|
303
|
+
* @schema PyprojectTomlTool#poetry
|
|
304
|
+
*/
|
|
305
|
+
readonly poetry?: any;
|
|
306
|
+
/**
|
|
307
|
+
* A modern Python package manager with PEP 621 support.
|
|
308
|
+
*
|
|
309
|
+
* @schema PyprojectTomlTool#pdm
|
|
310
|
+
*/
|
|
311
|
+
readonly pdm?: any;
|
|
312
|
+
/**
|
|
313
|
+
* Static type checker for Python.
|
|
314
|
+
*
|
|
315
|
+
* @schema PyprojectTomlTool#pyright
|
|
316
|
+
*/
|
|
317
|
+
readonly pyright?: any;
|
|
318
|
+
/**
|
|
319
|
+
* Standardized automated testing of Python packages
|
|
320
|
+
*
|
|
321
|
+
* @schema PyprojectTomlTool#pytest
|
|
322
|
+
*/
|
|
323
|
+
readonly pytest?: any;
|
|
324
|
+
/**
|
|
325
|
+
* Review a repository for best practices.
|
|
326
|
+
*
|
|
327
|
+
* @schema PyprojectTomlTool#repo-review
|
|
328
|
+
*/
|
|
329
|
+
readonly repoReview?: any;
|
|
330
|
+
/**
|
|
331
|
+
* The complementary task runner for python.
|
|
332
|
+
*
|
|
333
|
+
* @schema PyprojectTomlTool#taskipy
|
|
334
|
+
*/
|
|
335
|
+
readonly taskipy?: any;
|
|
336
|
+
/**
|
|
337
|
+
* Tombi is a toolkit for TOML; providing a formatter/linter and language server
|
|
338
|
+
*
|
|
339
|
+
* @schema PyprojectTomlTool#tombi
|
|
340
|
+
*/
|
|
341
|
+
readonly tombi?: any;
|
|
342
|
+
/**
|
|
343
|
+
* Standardized automated testing of Python packages
|
|
344
|
+
*
|
|
345
|
+
* @schema PyprojectTomlTool#tox
|
|
346
|
+
*/
|
|
347
|
+
readonly tox?: any;
|
|
348
|
+
/**
|
|
349
|
+
* An extremely fast Python package installer and resolver, written in Rust.
|
|
350
|
+
*
|
|
351
|
+
* @schema PyprojectTomlTool#uv
|
|
352
|
+
*/
|
|
353
|
+
readonly uv?: any;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Converts an object of type 'PyprojectTomlTool' to JSON representation.
|
|
357
|
+
* @internal
|
|
358
|
+
*/
|
|
359
|
+
export declare function toJson_PyprojectTomlTool(obj: PyprojectTomlTool | undefined): Record<string, any> | undefined;
|
|
360
|
+
/**
|
|
361
|
+
* @schema projectAuthor
|
|
362
|
+
*/
|
|
363
|
+
export interface ProjectAuthor {
|
|
364
|
+
/**
|
|
365
|
+
* @schema projectAuthor#name
|
|
366
|
+
*/
|
|
367
|
+
readonly name?: string;
|
|
368
|
+
/**
|
|
369
|
+
* @schema projectAuthor#email
|
|
370
|
+
*/
|
|
371
|
+
readonly email?: string;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Converts an object of type 'ProjectAuthor' to JSON representation.
|
|
375
|
+
* @internal
|
|
376
|
+
*/
|
|
377
|
+
export declare function toJson_ProjectAuthor(obj: ProjectAuthor | undefined): Record<string, any> | undefined;
|
|
378
|
+
/**
|
|
379
|
+
* @schema PyprojectTomlProjectDynamic
|
|
380
|
+
*/
|
|
381
|
+
export declare enum PyprojectTomlProjectDynamic {
|
|
382
|
+
/** version */
|
|
383
|
+
VERSION = "version",
|
|
384
|
+
/** description */
|
|
385
|
+
DESCRIPTION = "description",
|
|
386
|
+
/** readme */
|
|
387
|
+
README = "readme",
|
|
388
|
+
/** requires-python */
|
|
389
|
+
REQUIRES_HYPHEN_PYTHON = "requires-python",
|
|
390
|
+
/** license */
|
|
391
|
+
LICENSE = "license",
|
|
392
|
+
/** license-files */
|
|
393
|
+
LICENSE_HYPHEN_FILES = "license-files",
|
|
394
|
+
/** authors */
|
|
395
|
+
AUTHORS = "authors",
|
|
396
|
+
/** maintainers */
|
|
397
|
+
MAINTAINERS = "maintainers",
|
|
398
|
+
/** keywords */
|
|
399
|
+
KEYWORDS = "keywords",
|
|
400
|
+
/** classifiers */
|
|
401
|
+
CLASSIFIERS = "classifiers",
|
|
402
|
+
/** urls */
|
|
403
|
+
URLS = "urls",
|
|
404
|
+
/** scripts */
|
|
405
|
+
SCRIPTS = "scripts",
|
|
406
|
+
/** gui-scripts */
|
|
407
|
+
GUI_HYPHEN_SCRIPTS = "gui-scripts",
|
|
408
|
+
/** entry-points */
|
|
409
|
+
ENTRY_HYPHEN_POINTS = "entry-points",
|
|
410
|
+
/** dependencies */
|
|
411
|
+
DEPENDENCIES = "dependencies",
|
|
412
|
+
/** optional-dependencies */
|
|
413
|
+
OPTIONAL_HYPHEN_DEPENDENCIES = "optional-dependencies",
|
|
414
|
+
/** import-names */
|
|
415
|
+
IMPORT_HYPHEN_NAMES = "import-names",
|
|
416
|
+
/** import-namespaces */
|
|
417
|
+
IMPORT_HYPHEN_NAMESPACES = "import-namespaces"
|
|
418
|
+
}
|