projen 0.99.66 → 0.99.68
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 +511 -54
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- 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 +10 -6
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/index.d.ts +1 -0
- package/lib/cdk/index.js +2 -1
- package/lib/cdk/integration-test-base.js +1 -1
- package/lib/cdk/jsii-build.d.ts +165 -0
- package/lib/cdk/jsii-build.js +319 -0
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.d.ts +0 -16
- package/lib/cdk/jsii-project.js +26 -286
- 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/dependency-review.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/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- 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.js +1 -1
- 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.js +1 -1
- 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 +3 -3
|
@@ -45,5 +45,5 @@ class IntegrationTestBase extends component_1.Component {
|
|
|
45
45
|
}
|
|
46
46
|
exports.IntegrationTestBase = IntegrationTestBase;
|
|
47
47
|
_a = JSII_RTTI_SYMBOL_1;
|
|
48
|
-
IntegrationTestBase[_a] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.99.
|
|
48
|
+
IntegrationTestBase[_a] = { fqn: "projen.cdk.IntegrationTestBase", version: "0.99.68" };
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tdGVzdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay9pbnRlZ3JhdGlvbi10ZXN0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBeUM7QUFDekMsc0NBQWtDO0FBQ2xDLHlDQUFrRDtBQUNsRCw0Q0FBeUM7QUE4QnpDLE1BQXNCLG1CQUFvQixTQUFRLHFCQUFTO0lBK0J6RCxZQUFZLE9BQWdCLEVBQUUsT0FBbUM7UUFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUEsZUFBUSxFQUFDLEtBQUssRUFBRSwrQkFBb0IsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUEsY0FBTyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLE1BQU0sT0FBTyxHQUFHLElBQUEsWUFBSSxFQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsWUFBSSxFQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLFlBQUksRUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUN4RCxXQUFXLEVBQUUsNEJBQTRCLElBQUksd0JBQXdCO1NBQ3RFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksV0FBVyxFQUFFO1lBQzVELFdBQVcsRUFBRSx5Q0FBeUMsSUFBSSxHQUFHO1NBQzlELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ3hELFdBQVcsRUFBRSw0Q0FBNEMsSUFBSSxHQUFHO1lBQ2hFLElBQUksRUFBRSxTQUFTLElBQUksQ0FBQyxXQUFXLDZEQUE2RCxJQUFJLGtCQUFrQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksMkJBQTJCO1NBQ2xLLENBQUMsQ0FBQztRQUVILHdGQUF3RjtRQUN4RixPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3RELFdBQVcsRUFBRSwyQ0FBMkM7YUFDekQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxZQUFZO1FBQ1osZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7QUExRUgsa0RBMkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoL3Bvc2l4XCI7XG5pbXBvcnQgeyBUWVBFU0NSSVBUX0lOVEVHX0VYVCB9IGZyb20gXCIuL2ludGVybmFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSBcIi4uL3Rhc2tcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBJbnRlZ3JhdGlvblRlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RCYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0XG4gICAqIEBkZWZhdWx0IC0gRGVyaXZlZCBmcm9tIHRoZSBlbnRyeXBvaW50IGZpbGVuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBwYXRoIGZyb20gdGhlIHByb2plY3Qgcm9vdCBkaXJlY3RvcnkgdG8gYSBUeXBlU2NyaXB0IGZpbGUgd2hpY2ggY29udGFpbnNcbiAgICogdGhlIGludGVncmF0aW9uIHRlc3QgYXBwLlxuICAgKlxuICAgKiBUaGlzIGlzIHJlbGF0aXZlIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgcHJvamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGUgXCJ0ZXN0L3N1YmRpci9mb28uaW50ZWcudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgdHNjb25maWcuanNvbiBmaWxlIHRvIHVzZSB3aGVuIHJ1bm5pbmcgaW50ZWdyYXRpb24gdGVzdCBjZGsgYXBwcy5cbiAgICovXG4gIHJlYWRvbmx5IHRzY29uZmlnUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW50ZWdyYXRpb25UZXN0QmFzZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBEZXBsb3kgdGhlIGludGVncmF0aW9uIHRlc3QgYW5kIHVwZGF0ZSB0aGUgc25hcHNob3QgdXBvbiBzdWNjZXNzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IGFuZCBjb21wYXJlcyBhZ2FpbnN0IGEgbG9jYWwgY29weSAocnVucyBkdXJpbmcgYnVpbGQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFzc2VydFRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIEp1c3QgdXBkYXRlIHNuYXBzaG90ICh3aXRob3V0IGRlcGxveW1lbnQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNuYXBzaG90VGFzazogVGFzaztcblxuICAvKipcbiAgICogVGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgZWFjaCBpbnRlZ3JhdGlvbiB0ZXN0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRtcERpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTbmFwc2hvdCBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNuYXBzaG90RGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEludGVncmF0aW9uIHRlc3QgbmFtZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgb3B0aW9uczogSW50ZWdyYXRpb25UZXN0QmFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGVudHJ5ID0gb3B0aW9ucy5lbnRyeXBvaW50O1xuICAgIGNvbnN0IG5hbWUgPSBvcHRpb25zLm5hbWUgPz8gYmFzZW5hbWUoZW50cnksIFRZUEVTQ1JJUFRfSU5URUdfRVhUKTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIGNvbnN0IGRpciA9IGRpcm5hbWUoZW50cnkpO1xuXG4gICAgY29uc3QgdG1wUm9vdCA9IGpvaW4oZGlyLCBcIi50bXBcIik7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUodG1wUm9vdCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRtcFJvb3QpO1xuXG4gICAgdGhpcy50bXBEaXIgPSBqb2luKHRtcFJvb3QsIGAke25hbWV9LmludGVnYCk7XG5cbiAgICB0aGlzLnNuYXBzaG90RGlyID0gam9pbihkaXIsIGAke25hbWV9LmludGVnLnNuYXBzaG90YCk7XG4gICAgcHJvamVjdC5hZGRQYWNrYWdlSWdub3JlKHRoaXMuc25hcHNob3REaXIpO1xuXG4gICAgdGhpcy5kZXBsb3lUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OmRlcGxveWAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGVwbG95IGludGVncmF0aW9uIHRlc3QgJyR7bmFtZX0nIGFuZCBjYXB0dXJlIHNuYXBzaG90YCxcbiAgICB9KTtcblxuICAgIHRoaXMuc25hcHNob3RUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OnNuYXBzaG90YCwge1xuICAgICAgZGVzY3JpcHRpb246IGB1cGRhdGUgc25hcHNob3QgZm9yIGludGVncmF0aW9uIHRlc3QgXCIke25hbWV9XCJgLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NlcnRUYXNrID0gcHJvamVjdC5hZGRUYXNrKGBpbnRlZzoke25hbWV9OmFzc2VydGAsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgYXNzZXJ0IHRoZSBzbmFwc2hvdCBvZiBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9J2AsXG4gICAgICBleGVjOiBgWyAtZCBcIiR7dGhpcy5zbmFwc2hvdERpcn1cIiBdIHx8IChlY2hvIFwiTm8gc25hcHNob3QgYXZhaWxhYmxlIGZvciBpbnRlZ3JhdGlvbiB0ZXN0ICcke25hbWV9Jy4gUnVuICdwcm9qZW4gJHt0aGlzLmRlcGxveVRhc2submFtZX0nIHRvIGNhcHR1cmUuXCIgJiYgZXhpdCAxKWAsXG4gICAgfSk7XG5cbiAgICAvLyBzeW50aCBhcyBwYXJ0IG9mIG91ciB0ZXN0cywgd2hpY2ggbWVhbnMgdGhhdCBpZiBvdXRkaXIgY2hhbmdlcywgYW50aS10YW1wZXIgd2lsbCBmYWlsXG4gICAgcHJvamVjdC50ZXN0VGFzay5zcGF3bih0aGlzLmFzc2VydFRhc2spO1xuXG4gICAgbGV0IHNuYXBzaG90QWxsVGFzayA9IHByb2plY3QudGFza3MudHJ5RmluZChcImludGVnOnNuYXBzaG90LWFsbFwiKTtcbiAgICBpZiAoIXNuYXBzaG90QWxsVGFzaykge1xuICAgICAgc25hcHNob3RBbGxUYXNrID0gcHJvamVjdC5hZGRUYXNrKFwiaW50ZWc6c25hcHNob3QtYWxsXCIsIHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwidXBkYXRlIHNuYXBzaG90IGZvciBhbGwgaW50ZWdyYXRpb24gdGVzdHNcIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGludGVnOnNuYXBzaG90LWFsbCBzaG91bGQgc25hcHNob3QgYWxsIGludGVncmF0aW9uIHRlc3RzLCBpbmNsdWRpbmdcbiAgICAvLyB0aGlzIG9uZS5cbiAgICBzbmFwc2hvdEFsbFRhc2suc3Bhd24odGhpcy5zbmFwc2hvdFRhc2spO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { IConstruct, IMixin } from "constructs";
|
|
2
|
+
import type { JsiiDotNetTarget, JsiiGoTarget, JsiiJavaTarget, JsiiPythonTarget } from "./jsii-project";
|
|
3
|
+
import type { Step } from "../github/workflows-model";
|
|
4
|
+
import type { NpmPublishOptions } from "../release";
|
|
5
|
+
import { TypeScriptProject } from "../typescript";
|
|
6
|
+
/**
|
|
7
|
+
* Options for `JsiiBuild`.
|
|
8
|
+
*/
|
|
9
|
+
export interface JsiiBuildOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Publish to maven
|
|
12
|
+
* @default - no publishing
|
|
13
|
+
*/
|
|
14
|
+
readonly publishToMaven?: JsiiJavaTarget;
|
|
15
|
+
/**
|
|
16
|
+
* Publish to pypi
|
|
17
|
+
* @default - no publishing
|
|
18
|
+
*/
|
|
19
|
+
readonly publishToPypi?: JsiiPythonTarget;
|
|
20
|
+
/**
|
|
21
|
+
* Publish Go bindings to a git repository.
|
|
22
|
+
* @default - no publishing
|
|
23
|
+
*/
|
|
24
|
+
readonly publishToGo?: JsiiGoTarget;
|
|
25
|
+
/**
|
|
26
|
+
* Publish to NuGet
|
|
27
|
+
* @default - no publishing
|
|
28
|
+
*/
|
|
29
|
+
readonly publishToNuget?: JsiiDotNetTarget;
|
|
30
|
+
/**
|
|
31
|
+
* Automatically run API compatibility test against the latest version published to npm after compilation.
|
|
32
|
+
*
|
|
33
|
+
* - You can manually run compatibility tests using `yarn compat` if this feature is disabled.
|
|
34
|
+
* - You can ignore compatibility failures by adding lines to a ".compatignore" file.
|
|
35
|
+
*
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
readonly compat?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Name of the ignore file for API compatibility tests.
|
|
41
|
+
*
|
|
42
|
+
* @default ".compatignore"
|
|
43
|
+
*/
|
|
44
|
+
readonly compatIgnore?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Accepts a list of glob patterns. Files matching any of those patterns will be excluded from the TypeScript compiler input.
|
|
47
|
+
*
|
|
48
|
+
* By default, jsii will include all *.ts files (except .d.ts files) in the TypeScript compiler input.
|
|
49
|
+
* This can be problematic for example when the package's build or test procedure generates .ts files
|
|
50
|
+
* that cannot be compiled with jsii's compiler settings.
|
|
51
|
+
*/
|
|
52
|
+
readonly excludeTypescript?: string[];
|
|
53
|
+
/**
|
|
54
|
+
* File path for generated docs.
|
|
55
|
+
* @default "API.md"
|
|
56
|
+
*/
|
|
57
|
+
readonly docgenFilePath?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Emit a compressed version of the assembly
|
|
60
|
+
* @default false
|
|
61
|
+
*/
|
|
62
|
+
readonly compressAssembly?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Version of the jsii compiler to use.
|
|
65
|
+
*
|
|
66
|
+
* Set to "*" if you want to manually manage the version of jsii in your
|
|
67
|
+
* project by managing updates to `package.json` on your own.
|
|
68
|
+
*
|
|
69
|
+
* NOTE: The jsii compiler releases since 5.0.0 are not semantically versioned
|
|
70
|
+
* and should remain on the same minor, so we recommend using a `~` dependency
|
|
71
|
+
* (e.g. `~5.0.0`).
|
|
72
|
+
*
|
|
73
|
+
* @default "~5.9.0"
|
|
74
|
+
* @pjnew "~5.9.0"
|
|
75
|
+
*/
|
|
76
|
+
readonly jsiiVersion?: string;
|
|
77
|
+
/**
|
|
78
|
+
* The stability of the package.
|
|
79
|
+
*
|
|
80
|
+
* @default "stable"
|
|
81
|
+
*/
|
|
82
|
+
readonly stability?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Generate a MarkDown file describing the jsii API.
|
|
85
|
+
*
|
|
86
|
+
* @default true
|
|
87
|
+
*/
|
|
88
|
+
readonly docgen?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Whether to publish to npm.
|
|
91
|
+
*
|
|
92
|
+
* @default true
|
|
93
|
+
*/
|
|
94
|
+
readonly releaseToNpm?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Whether to use trusted publishing for npm.
|
|
97
|
+
*
|
|
98
|
+
* @default false
|
|
99
|
+
*/
|
|
100
|
+
readonly npmTrustedPublishing?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Options for publishing npm package to AWS CodeArtifact.
|
|
103
|
+
*
|
|
104
|
+
* @default - undefined
|
|
105
|
+
*/
|
|
106
|
+
readonly codeArtifactOptions?: NpmPublishOptions["codeArtifactOptions"];
|
|
107
|
+
/**
|
|
108
|
+
* Relative path of the package within the repository.
|
|
109
|
+
*
|
|
110
|
+
* This is used in monorepo setups where the package is not at the root.
|
|
111
|
+
* Packaging steps will extract build artifacts into this subdirectory.
|
|
112
|
+
*
|
|
113
|
+
* @default "." - root of the repository
|
|
114
|
+
*/
|
|
115
|
+
readonly workspaceDirectory?: string;
|
|
116
|
+
/**
|
|
117
|
+
* The node version to use in packaging workflows.
|
|
118
|
+
*
|
|
119
|
+
* @default "lts/*"
|
|
120
|
+
*/
|
|
121
|
+
readonly workflowNodeVersion?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Additional steps to run before packaging in workflows.
|
|
124
|
+
*
|
|
125
|
+
* @default []
|
|
126
|
+
*/
|
|
127
|
+
readonly workflowBootstrapSteps?: Array<Step>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* A mixin that adds jsii compilation, multi-language packaging, and publishing
|
|
131
|
+
* capabilities to any TypeScript project.
|
|
132
|
+
*
|
|
133
|
+
* This implements the constructs `IMixin` interface and is applied using the
|
|
134
|
+
* `.with()` method on any construct.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* const project = new TypeScriptProject({ disableTsconfig: true, ... });
|
|
138
|
+
* project.with(new JsiiBuild({
|
|
139
|
+
* jsiiVersion: '~5.9.0',
|
|
140
|
+
* publishToMaven: { ... },
|
|
141
|
+
* }));
|
|
142
|
+
*/
|
|
143
|
+
export declare class JsiiBuild implements IMixin {
|
|
144
|
+
private readonly options;
|
|
145
|
+
private readonly extraJobOptions;
|
|
146
|
+
constructor(options?: JsiiBuildOptions, extraJobOptions?: Record<string, unknown>);
|
|
147
|
+
/**
|
|
148
|
+
* Returns true if the construct is a TypeScriptProject.
|
|
149
|
+
*/
|
|
150
|
+
supports(construct: IConstruct): construct is TypeScriptProject;
|
|
151
|
+
/**
|
|
152
|
+
* Applies jsii configuration to the target TypeScriptProject.
|
|
153
|
+
*/
|
|
154
|
+
applyTo(project: IConstruct): void;
|
|
155
|
+
/**
|
|
156
|
+
* Adds a target language to the release workflow.
|
|
157
|
+
*/
|
|
158
|
+
private addTargetToRelease;
|
|
159
|
+
/**
|
|
160
|
+
* Adds a target language to the build workflow.
|
|
161
|
+
*/
|
|
162
|
+
private addTargetToBuild;
|
|
163
|
+
private addPackagingTask;
|
|
164
|
+
private pacmakForLanguage;
|
|
165
|
+
}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.JsiiBuild = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const consts_1 = require("./consts");
|
|
7
|
+
const jsii_docgen_1 = require("./jsii-docgen");
|
|
8
|
+
const consts_2 = require("../build/private/consts");
|
|
9
|
+
const workflow_steps_1 = require("../github/workflow-steps");
|
|
10
|
+
const workflows_model_1 = require("../github/workflows-model");
|
|
11
|
+
const javascript_1 = require("../javascript");
|
|
12
|
+
const util_1 = require("../javascript/util");
|
|
13
|
+
const runner_options_1 = require("../runner-options");
|
|
14
|
+
const typescript_1 = require("../typescript");
|
|
15
|
+
const REPO_TEMP_DIRECTORY = ".repo";
|
|
16
|
+
const BUILD_ARTIFACT_OLD_DIR = "dist.old";
|
|
17
|
+
/**
|
|
18
|
+
* A mixin that adds jsii compilation, multi-language packaging, and publishing
|
|
19
|
+
* capabilities to any TypeScript project.
|
|
20
|
+
*
|
|
21
|
+
* This implements the constructs `IMixin` interface and is applied using the
|
|
22
|
+
* `.with()` method on any construct.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* const project = new TypeScriptProject({ disableTsconfig: true, ... });
|
|
26
|
+
* project.with(new JsiiBuild({
|
|
27
|
+
* jsiiVersion: '~5.9.0',
|
|
28
|
+
* publishToMaven: { ... },
|
|
29
|
+
* }));
|
|
30
|
+
*/
|
|
31
|
+
class JsiiBuild {
|
|
32
|
+
constructor(options = {}, extraJobOptions) {
|
|
33
|
+
this.options = options;
|
|
34
|
+
this.extraJobOptions = (extraJobOptions ?? {});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns true if the construct is a TypeScriptProject.
|
|
38
|
+
*/
|
|
39
|
+
supports(construct) {
|
|
40
|
+
return construct instanceof typescript_1.TypeScriptProject;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Applies jsii configuration to the target TypeScriptProject.
|
|
44
|
+
*/
|
|
45
|
+
applyTo(project) {
|
|
46
|
+
if (!this.supports(project)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const options = { ...this.options };
|
|
50
|
+
const srcdir = project.srcdir;
|
|
51
|
+
const libdir = project.libdir;
|
|
52
|
+
project.addFields({ types: `${libdir}/index.d.ts` });
|
|
53
|
+
const compressAssembly = options.compressAssembly ?? false;
|
|
54
|
+
// this is an unhelpful warning
|
|
55
|
+
const jsiiFlags = ["--silence-warnings=reserved-word"];
|
|
56
|
+
if (compressAssembly) {
|
|
57
|
+
jsiiFlags.push("--compress-assembly");
|
|
58
|
+
}
|
|
59
|
+
const compatIgnore = options.compatIgnore ?? ".compatignore";
|
|
60
|
+
project.addFields({ stability: options.stability ?? "stable" });
|
|
61
|
+
if (options.stability === "deprecated") {
|
|
62
|
+
project.addFields({ deprecated: true });
|
|
63
|
+
}
|
|
64
|
+
project.compileTask.reset(["jsii", ...jsiiFlags].join(" "));
|
|
65
|
+
project.watchTask.reset(["jsii", "-w", ...jsiiFlags].join(" "));
|
|
66
|
+
const compatTask = project.addTask("compat", {
|
|
67
|
+
description: "Perform API compatibility check against latest version",
|
|
68
|
+
exec: `jsii-diff npm:$(node -p "require(\'./package.json\').name") -k --ignore-file ${compatIgnore} || (echo "\nUNEXPECTED BREAKING CHANGES: add keys such as \'removed:constructs.Node.of\' to ${compatIgnore} to skip.\n" && exit 1)`,
|
|
69
|
+
});
|
|
70
|
+
if (options.compat ?? false) {
|
|
71
|
+
project.compileTask.spawn(compatTask);
|
|
72
|
+
}
|
|
73
|
+
// Create a new package:all task, it will be filled with language targets later
|
|
74
|
+
const packageAllTask = project.addTask("package-all", {
|
|
75
|
+
description: "Packages artifacts for all target languages",
|
|
76
|
+
});
|
|
77
|
+
// in jsii we consider the entire repo (post build) as the build artifact
|
|
78
|
+
// which is then used to create the language bindings in separate jobs.
|
|
79
|
+
const packageJsTask = this.addPackagingTask(project, packageAllTask, "js");
|
|
80
|
+
// When running inside CI we initially only package js. Other targets are packaged in separate jobs.
|
|
81
|
+
// Outside of CI (i.e locally) we simply package all targets.
|
|
82
|
+
project.packageTask.reset();
|
|
83
|
+
project.packageTask.spawn(packageJsTask, {
|
|
84
|
+
// Only run in CI
|
|
85
|
+
condition: `node -e "if (!process.env.CI) process.exit(1)"`,
|
|
86
|
+
});
|
|
87
|
+
project.packageTask.spawn(packageAllTask, {
|
|
88
|
+
// Don't run in CI
|
|
89
|
+
condition: `node -e "if (process.env.CI) process.exit(1)"`,
|
|
90
|
+
});
|
|
91
|
+
const targets = {};
|
|
92
|
+
const jsii = {
|
|
93
|
+
outdir: project.artifactsDirectory,
|
|
94
|
+
targets,
|
|
95
|
+
tsc: {
|
|
96
|
+
outDir: libdir,
|
|
97
|
+
rootDir: srcdir,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
if (options.excludeTypescript) {
|
|
101
|
+
jsii.excludeTypescript = options.excludeTypescript;
|
|
102
|
+
}
|
|
103
|
+
project.addFields({ jsii });
|
|
104
|
+
const extraJobOptions = this.extraJobOptions;
|
|
105
|
+
if (options.releaseToNpm !== false) {
|
|
106
|
+
const npmjs = {
|
|
107
|
+
registry: project.package.npmRegistry,
|
|
108
|
+
npmTokenSecret: project.package.npmTokenSecret,
|
|
109
|
+
npmProvenance: project.package.npmProvenance,
|
|
110
|
+
codeArtifactOptions: options.codeArtifactOptions,
|
|
111
|
+
trustedPublishing: options.npmTrustedPublishing ?? false,
|
|
112
|
+
};
|
|
113
|
+
this.addTargetToBuild(project, packageJsTask, "js", extraJobOptions);
|
|
114
|
+
this.addTargetToRelease(project, packageJsTask, "js", npmjs);
|
|
115
|
+
}
|
|
116
|
+
const maven = options.publishToMaven;
|
|
117
|
+
if (maven) {
|
|
118
|
+
targets.java = {
|
|
119
|
+
package: maven.javaPackage,
|
|
120
|
+
maven: {
|
|
121
|
+
groupId: maven.mavenGroupId,
|
|
122
|
+
artifactId: maven.mavenArtifactId,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
const task = this.addPackagingTask(project, packageAllTask, "java");
|
|
126
|
+
this.addTargetToBuild(project, task, "java", extraJobOptions);
|
|
127
|
+
this.addTargetToRelease(project, task, "java", maven);
|
|
128
|
+
}
|
|
129
|
+
const pypi = options.publishToPypi;
|
|
130
|
+
if (pypi) {
|
|
131
|
+
targets.python = {
|
|
132
|
+
distName: pypi.distName,
|
|
133
|
+
module: pypi.module,
|
|
134
|
+
};
|
|
135
|
+
const task = this.addPackagingTask(project, packageAllTask, "python");
|
|
136
|
+
this.addTargetToBuild(project, task, "python", extraJobOptions);
|
|
137
|
+
this.addTargetToRelease(project, task, "python", pypi);
|
|
138
|
+
}
|
|
139
|
+
const nuget = options.publishToNuget;
|
|
140
|
+
if (nuget) {
|
|
141
|
+
targets.dotnet = {
|
|
142
|
+
namespace: nuget.dotNetNamespace,
|
|
143
|
+
packageId: nuget.packageId,
|
|
144
|
+
iconUrl: nuget.iconUrl,
|
|
145
|
+
};
|
|
146
|
+
const task = this.addPackagingTask(project, packageAllTask, "dotnet");
|
|
147
|
+
this.addTargetToBuild(project, task, "dotnet", extraJobOptions);
|
|
148
|
+
this.addTargetToRelease(project, task, "dotnet", nuget);
|
|
149
|
+
}
|
|
150
|
+
const golang = options.publishToGo;
|
|
151
|
+
if (golang) {
|
|
152
|
+
targets.go = {
|
|
153
|
+
moduleName: golang.moduleName,
|
|
154
|
+
packageName: golang.packageName,
|
|
155
|
+
versionSuffix: golang.versionSuffix,
|
|
156
|
+
};
|
|
157
|
+
const task = this.addPackagingTask(project, packageAllTask, "go");
|
|
158
|
+
this.addTargetToBuild(project, task, "go", extraJobOptions);
|
|
159
|
+
this.addTargetToRelease(project, task, "go", golang);
|
|
160
|
+
}
|
|
161
|
+
// If jsiiVersion is "*", don't specify anything so the user can manage.
|
|
162
|
+
// Otherwise, use `jsiiVersion`
|
|
163
|
+
const jsiiVersion = options.jsiiVersion ?? "~5.9.0";
|
|
164
|
+
const jsiiSuffix = jsiiVersion === "*" ? "" : `@${jsiiVersion}`;
|
|
165
|
+
project.addDevDeps(`jsii${jsiiSuffix}`, `jsii-rosetta${jsiiSuffix}`, "jsii-diff", "jsii-pacmak");
|
|
166
|
+
project.gitignore.exclude(".jsii", "tsconfig.json");
|
|
167
|
+
project.npmignore?.include(".jsii");
|
|
168
|
+
if (options.docgen ?? true) {
|
|
169
|
+
// If jsiiVersion is "*", don't specify anything so the user can manage.
|
|
170
|
+
// Otherwise use a version that is compatible with all supported jsii releases.
|
|
171
|
+
const docgenVersion = options.jsiiVersion === "*" ? "*" : "^10.5.0";
|
|
172
|
+
new jsii_docgen_1.JsiiDocgen(project, {
|
|
173
|
+
version: docgenVersion,
|
|
174
|
+
filePath: options.docgenFilePath,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
// jsii updates .npmignore, so we make it writable
|
|
178
|
+
if (project.npmignore) {
|
|
179
|
+
project.npmignore.readonly = false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Adds a target language to the release workflow.
|
|
184
|
+
*/
|
|
185
|
+
addTargetToRelease(project, packTask, language, target) {
|
|
186
|
+
if (!project.release) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const pacmak = this.pacmakForLanguage(project, language, packTask);
|
|
190
|
+
const prePublishSteps = [
|
|
191
|
+
...pacmak.bootstrapSteps,
|
|
192
|
+
workflow_steps_1.WorkflowSteps.checkout({
|
|
193
|
+
with: {
|
|
194
|
+
path: REPO_TEMP_DIRECTORY,
|
|
195
|
+
...(project.github?.downloadLfs ? { lfs: true } : {}),
|
|
196
|
+
},
|
|
197
|
+
}),
|
|
198
|
+
...pacmak.packagingSteps,
|
|
199
|
+
];
|
|
200
|
+
const commonPublishOptions = {
|
|
201
|
+
publishTools: pacmak.publishTools,
|
|
202
|
+
prePublishSteps,
|
|
203
|
+
};
|
|
204
|
+
const handler = publishTo[language];
|
|
205
|
+
project.release?.publisher[handler]({
|
|
206
|
+
...commonPublishOptions,
|
|
207
|
+
...target,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Adds a target language to the build workflow.
|
|
212
|
+
*/
|
|
213
|
+
addTargetToBuild(project, packTask, language, extraJobOptions) {
|
|
214
|
+
if (!project.buildWorkflow) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const pacmak = this.pacmakForLanguage(project, language, packTask);
|
|
218
|
+
project.buildWorkflow.addPostBuildJob(`package-${language}`, {
|
|
219
|
+
...(0, runner_options_1.filteredRunsOnOptions)(extraJobOptions.runsOn, extraJobOptions.runsOnGroup),
|
|
220
|
+
permissions: {
|
|
221
|
+
contents: workflows_model_1.JobPermission.READ,
|
|
222
|
+
},
|
|
223
|
+
tools: {
|
|
224
|
+
node: {
|
|
225
|
+
version: this.options.workflowNodeVersion ?? "lts/*",
|
|
226
|
+
},
|
|
227
|
+
...pacmak.publishTools,
|
|
228
|
+
},
|
|
229
|
+
steps: [
|
|
230
|
+
...pacmak.bootstrapSteps,
|
|
231
|
+
workflow_steps_1.WorkflowSteps.checkout({
|
|
232
|
+
with: {
|
|
233
|
+
path: REPO_TEMP_DIRECTORY,
|
|
234
|
+
ref: consts_2.PULL_REQUEST_REF,
|
|
235
|
+
repository: consts_2.PULL_REQUEST_REPOSITORY,
|
|
236
|
+
...(project.github?.downloadLfs ? { lfs: true } : {}),
|
|
237
|
+
},
|
|
238
|
+
}),
|
|
239
|
+
...pacmak.packagingSteps,
|
|
240
|
+
],
|
|
241
|
+
...extraJobOptions,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
addPackagingTask(project, packageAllTask, language) {
|
|
245
|
+
const packageTargetTask = project.tasks.addTask(`package:${language}`, {
|
|
246
|
+
description: `Create ${language} language bindings`,
|
|
247
|
+
});
|
|
248
|
+
const commandParts = ["jsii-pacmak", "-v"];
|
|
249
|
+
if (project.package.packageManager === javascript_1.NodePackageManager.PNPM) {
|
|
250
|
+
commandParts.push('--pack-command "pnpm pack"');
|
|
251
|
+
}
|
|
252
|
+
commandParts.push(`--target ${language}`);
|
|
253
|
+
packageTargetTask.exec(commandParts.join(" "));
|
|
254
|
+
packageAllTask.spawn(packageTargetTask);
|
|
255
|
+
return packageTargetTask;
|
|
256
|
+
}
|
|
257
|
+
pacmakForLanguage(project, target, packTask) {
|
|
258
|
+
const bootstrapSteps = [];
|
|
259
|
+
const packagingSteps = [];
|
|
260
|
+
// Generic bootstrapping for all target languages
|
|
261
|
+
bootstrapSteps.push(...(this.options.workflowBootstrapSteps ?? []));
|
|
262
|
+
if (project.package.packageManager === javascript_1.NodePackageManager.PNPM) {
|
|
263
|
+
bootstrapSteps.push({
|
|
264
|
+
name: "Setup pnpm",
|
|
265
|
+
uses: "pnpm/action-setup@v5",
|
|
266
|
+
with: { version: project.package.pnpmVersion },
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
else if (project.package.packageManager === javascript_1.NodePackageManager.BUN) {
|
|
270
|
+
bootstrapSteps.push({
|
|
271
|
+
name: "Setup bun",
|
|
272
|
+
uses: "oven-sh/setup-bun@v2",
|
|
273
|
+
with: { "bun-version": project.package.bunVersion },
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
else if ((0, util_1.isYarnBerry)(project.package.packageManager)) {
|
|
277
|
+
bootstrapSteps.push({
|
|
278
|
+
name: "Enable corepack",
|
|
279
|
+
run: "corepack enable",
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
const workDir = this.options.workspaceDirectory
|
|
283
|
+
? `${REPO_TEMP_DIRECTORY}/${this.options.workspaceDirectory}`
|
|
284
|
+
: REPO_TEMP_DIRECTORY;
|
|
285
|
+
// Installation steps before packaging, but after checkout
|
|
286
|
+
packagingSteps.push({
|
|
287
|
+
name: "Install Dependencies",
|
|
288
|
+
run: `cd ${REPO_TEMP_DIRECTORY} && ${project.package.installCommand}`,
|
|
289
|
+
}, {
|
|
290
|
+
name: "Extract build artifact",
|
|
291
|
+
run: `tar --strip-components=1 -xzvf ${project.artifactsDirectory}/js/*.tgz -C ${workDir}`,
|
|
292
|
+
}, {
|
|
293
|
+
name: `Move build artifact out of the way`,
|
|
294
|
+
run: `mv ${project.artifactsDirectory} ${BUILD_ARTIFACT_OLD_DIR}`,
|
|
295
|
+
}, {
|
|
296
|
+
name: `Create ${target} artifact`,
|
|
297
|
+
run: `cd ${workDir} && ${project.runTaskCommand(packTask)}`,
|
|
298
|
+
}, {
|
|
299
|
+
name: `Collect ${target} artifact`,
|
|
300
|
+
run: `mv ${workDir}/${project.artifactsDirectory} ${project.artifactsDirectory}`,
|
|
301
|
+
});
|
|
302
|
+
return {
|
|
303
|
+
publishTools: consts_1.JSII_TOOLCHAIN[target],
|
|
304
|
+
bootstrapSteps,
|
|
305
|
+
packagingSteps,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
exports.JsiiBuild = JsiiBuild;
|
|
310
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
311
|
+
JsiiBuild[_a] = { fqn: "projen.cdk.JsiiBuild", version: "0.99.68" };
|
|
312
|
+
const publishTo = {
|
|
313
|
+
js: "publishToNpm",
|
|
314
|
+
java: "publishToMaven",
|
|
315
|
+
python: "publishToPyPi",
|
|
316
|
+
dotnet: "publishToNuget",
|
|
317
|
+
go: "publishToGo",
|
|
318
|
+
};
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1idWlsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvanNpaS1idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHFDQUEwQztBQUMxQywrQ0FBMkM7QUFPM0Msb0RBR2lDO0FBQ2pDLDZEQUF5RDtBQUV6RCwrREFBMEQ7QUFDMUQsOENBQW1EO0FBQ25ELDZDQUFpRDtBQU1qRCxzREFBMEQ7QUFDMUQsOENBQWtEO0FBRWxELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDO0FBQ3BDLE1BQU0sc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBK0kxQzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxTQUFTO0lBSXBCLFlBQ0UsVUFBNEIsRUFBRSxFQUM5QixlQUF5QztRQUV6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBaUIsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsU0FBcUI7UUFDbkMsT0FBTyxTQUFTLFlBQVksOEJBQWlCLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE9BQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUU5QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRXJELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQztRQUUzRCwrQkFBK0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ3ZELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFDO1FBRTdELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDM0MsV0FBVyxFQUFFLHdEQUF3RDtZQUNyRSxJQUFJLEVBQUUsZ0ZBQWdGLFlBQVksZ0dBQWdHLFlBQVkseUJBQXlCO1NBQ3hPLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsK0VBQStFO1FBQy9FLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3BELFdBQVcsRUFBRSw2Q0FBNkM7U0FDM0QsQ0FBQyxDQUFDO1FBRUgseUVBQXlFO1FBQ3pFLHVFQUF1RTtRQUN2RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUzRSxvR0FBb0c7UUFDcEcsNkRBQTZEO1FBQzdELE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3ZDLGlCQUFpQjtZQUNqQixTQUFTLEVBQUUsZ0RBQWdEO1NBQzVELENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUN4QyxrQkFBa0I7WUFDbEIsU0FBUyxFQUFFLCtDQUErQztTQUMzRCxDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBd0IsRUFBRSxDQUFDO1FBRXhDLE1BQU0sSUFBSSxHQUFRO1lBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsa0JBQWtCO1lBQ2xDLE9BQU87WUFDUCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsT0FBTyxFQUFFLE1BQU07YUFDaEI7U0FDRixDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU1QixNQUFNLGVBQWUsR0FBaUIsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUUzRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQXNCO2dCQUMvQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNyQyxjQUFjLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjO2dCQUM5QyxhQUFhLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhO2dCQUM1QyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsbUJBQW1CO2dCQUNoRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsb0JBQW9CLElBQUksS0FBSzthQUN6RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLElBQUksR0FBRztnQkFDYixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzFCLEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQzNCLFVBQVUsRUFBRSxLQUFLLENBQUMsZUFBZTtpQkFDbEM7YUFDRixDQUFDO1lBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLE1BQU0sR0FBRztnQkFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFDO1lBRUYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLE1BQU0sR0FBRztnQkFDZixTQUFTLEVBQUUsS0FBSyxDQUFDLGVBQWU7Z0JBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3ZCLENBQUM7WUFFRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ25DLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsRUFBRSxHQUFHO2dCQUNYLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDN0IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7YUFDcEMsQ0FBQztZQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUVELHdFQUF3RTtRQUN4RSwrQkFBK0I7UUFDL0IsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUM7UUFDcEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxVQUFVLENBQ2hCLE9BQU8sVUFBVSxFQUFFLEVBQ25CLGVBQWUsVUFBVSxFQUFFLEVBQzNCLFdBQVcsRUFDWCxhQUFhLENBQ2QsQ0FBQztRQUVGLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRCxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0Isd0VBQXdFO1lBQ3hFLCtFQUErRTtZQUMvRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEUsSUFBSSx3QkFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDdEIsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYzthQUNqQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsa0RBQWtEO1FBQ2xELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCLENBQ3hCLE9BQTBCLEVBQzFCLFFBQWMsRUFDZCxRQUEwQixFQUMxQixNQUtxQjtRQUVyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsTUFBTSxlQUFlLEdBQUc7WUFDdEIsR0FBRyxNQUFNLENBQUMsY0FBYztZQUN4Qiw4QkFBYSxDQUFDLFFBQVEsQ0FBQztnQkFDckIsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztpQkFDdEQ7YUFDRixDQUFDO1lBQ0YsR0FBRyxNQUFNLENBQUMsY0FBYztTQUN6QixDQUFDO1FBQ0YsTUFBTSxvQkFBb0IsR0FBeUI7WUFDakQsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ2pDLGVBQWU7U0FDaEIsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFjLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxHQUFHLG9CQUFvQjtZQUN2QixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FDdEIsT0FBMEIsRUFDMUIsUUFBYyxFQUNkLFFBQTBCLEVBQzFCLGVBQTZCO1FBRTdCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVuRSxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxXQUFXLFFBQVEsRUFBRSxFQUFFO1lBQzNELEdBQUcsSUFBQSxzQ0FBcUIsRUFDdEIsZUFBZSxDQUFDLE1BQU0sRUFDdEIsZUFBZSxDQUFDLFdBQVcsQ0FDNUI7WUFDRCxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLCtCQUFhLENBQUMsSUFBSTthQUM3QjtZQUNELEtBQUssRUFBRTtnQkFDTCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksT0FBTztpQkFDckQ7Z0JBQ0QsR0FBRyxNQUFNLENBQUMsWUFBWTthQUN2QjtZQUNELEtBQUssRUFBRTtnQkFDTCxHQUFHLE1BQU0sQ0FBQyxjQUFjO2dCQUN4Qiw4QkFBYSxDQUFDLFFBQVEsQ0FBQztvQkFDckIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLEdBQUcsRUFBRSx5QkFBZ0I7d0JBQ3JCLFVBQVUsRUFBRSxnQ0FBdUI7d0JBQ25DLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxQkFDdEQ7aUJBQ0YsQ0FBQztnQkFDRixHQUFHLE1BQU0sQ0FBQyxjQUFjO2FBQ3pCO1lBQ0QsR0FBRyxlQUFlO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsT0FBMEIsRUFDMUIsY0FBb0IsRUFDcEIsUUFBMEI7UUFFMUIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLFFBQVEsRUFBRSxFQUFFO1lBQ3JFLFdBQVcsRUFBRSxVQUFVLFFBQVEsb0JBQW9CO1NBQ3BELENBQUMsQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEtBQUssK0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0QsWUFBWSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUUxQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9DLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUIsQ0FDdkIsT0FBMEIsRUFDMUIsTUFBd0IsRUFDeEIsUUFBYztRQU1kLE1BQU0sY0FBYyxHQUFnQixFQUFFLENBQUM7UUFDdkMsTUFBTSxjQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUV2QyxpREFBaUQ7UUFDakQsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEtBQUssK0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0QsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDbEIsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTthQUMvQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsS0FBSywrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyRSxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO2FBQ3BELENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLElBQUEsa0JBQVcsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDbEIsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsR0FBRyxFQUFFLGlCQUFpQjthQUN2QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7WUFDN0MsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtZQUM3RCxDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFFeEIsMERBQTBEO1FBQzFELGNBQWMsQ0FBQyxJQUFJLENBQ2pCO1lBQ0UsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixHQUFHLEVBQUUsTUFBTSxtQkFBbUIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtTQUN0RSxFQUNEO1lBQ0UsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixHQUFHLEVBQUUsa0NBQWtDLE9BQU8sQ0FBQyxrQkFBa0IsZ0JBQWdCLE9BQU8sRUFBRTtTQUMzRixFQUNEO1lBQ0UsSUFBSSxFQUFFLG9DQUFvQztZQUMxQyxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUMsa0JBQWtCLElBQUksc0JBQXNCLEVBQUU7U0FDbEUsRUFDRDtZQUNFLElBQUksRUFBRSxVQUFVLE1BQU0sV0FBVztZQUNqQyxHQUFHLEVBQUUsTUFBTSxPQUFPLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtTQUM1RCxFQUNEO1lBQ0UsSUFBSSxFQUFFLFdBQVcsTUFBTSxXQUFXO1lBQ2xDLEdBQUcsRUFBRSxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO1NBQ2pGLENBQ0YsQ0FBQztRQUVGLE9BQU87WUFDTCxZQUFZLEVBQUUsdUJBQWMsQ0FBQyxNQUFNLENBQUM7WUFDcEMsY0FBYztZQUNkLGNBQWM7U0FDZixDQUFDO0lBQ0osQ0FBQzs7QUFqWEgsOEJBa1hDOzs7QUFZRCxNQUFNLFNBQVMsR0FBb0I7SUFDakMsRUFBRSxFQUFFLGNBQWM7SUFDbEIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixNQUFNLEVBQUUsZUFBZTtJQUN2QixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLEVBQUUsRUFBRSxhQUFhO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QsIElNaXhpbiB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2sgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB0eXBlIHsgSnNpaVBhY21ha1RhcmdldCB9IGZyb20gXCIuL2NvbnN0c1wiO1xuaW1wb3J0IHsgSlNJSV9UT09MQ0hBSU4gfSBmcm9tIFwiLi9jb25zdHNcIjtcbmltcG9ydCB7IEpzaWlEb2NnZW4gfSBmcm9tIFwiLi9qc2lpLWRvY2dlblwiO1xuaW1wb3J0IHR5cGUge1xuICBKc2lpRG90TmV0VGFyZ2V0LFxuICBKc2lpR29UYXJnZXQsXG4gIEpzaWlKYXZhVGFyZ2V0LFxuICBKc2lpUHl0aG9uVGFyZ2V0LFxufSBmcm9tIFwiLi9qc2lpLXByb2plY3RcIjtcbmltcG9ydCB7XG4gIFBVTExfUkVRVUVTVF9SRUYsXG4gIFBVTExfUkVRVUVTVF9SRVBPU0lUT1JZLFxufSBmcm9tIFwiLi4vYnVpbGQvcHJpdmF0ZS9jb25zdHNcIjtcbmltcG9ydCB7IFdvcmtmbG93U3RlcHMgfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93LXN0ZXBzXCI7XG5pbXBvcnQgdHlwZSB7IEpvYiwgU3RlcCwgVG9vbHMgfSBmcm9tIFwiLi4vZ2l0aHViL3dvcmtmbG93cy1tb2RlbFwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gXCIuLi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBOb2RlUGFja2FnZU1hbmFnZXIgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgaXNZYXJuQmVycnkgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC91dGlsXCI7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1vblB1Ymxpc2hPcHRpb25zLFxuICBOcG1QdWJsaXNoT3B0aW9ucyxcbiAgUHVibGlzaGVyLFxufSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xuaW1wb3J0IHsgZmlsdGVyZWRSdW5zT25PcHRpb25zIH0gZnJvbSBcIi4uL3J1bm5lci1vcHRpb25zXCI7XG5pbXBvcnQgeyBUeXBlU2NyaXB0UHJvamVjdCB9IGZyb20gXCIuLi90eXBlc2NyaXB0XCI7XG5cbmNvbnN0IFJFUE9fVEVNUF9ESVJFQ1RPUlkgPSBcIi5yZXBvXCI7XG5jb25zdCBCVUlMRF9BUlRJRkFDVF9PTERfRElSID0gXCJkaXN0Lm9sZFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKc2lpQnVpbGRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlCdWlsZE9wdGlvbnMge1xuICAvKipcbiAgICogUHVibGlzaCB0byBtYXZlblxuICAgKiBAZGVmYXVsdCAtIG5vIHB1Ymxpc2hpbmdcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb01hdmVuPzogSnNpaUphdmFUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gcHlwaVxuICAgKiBAZGVmYXVsdCAtIG5vIHB1Ymxpc2hpbmdcbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hUb1B5cGk/OiBKc2lpUHl0aG9uVGFyZ2V0O1xuXG4gIC8qKlxuICAgKiBQdWJsaXNoIEdvIGJpbmRpbmdzIHRvIGEgZ2l0IHJlcG9zaXRvcnkuXG4gICAqIEBkZWZhdWx0IC0gbm8gcHVibGlzaGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaFRvR28/OiBKc2lpR29UYXJnZXQ7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggdG8gTnVHZXRcbiAgICogQGRlZmF1bHQgLSBubyBwdWJsaXNoaW5nXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoVG9OdWdldD86IEpzaWlEb3ROZXRUYXJnZXQ7XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgcnVuIEFQSSBjb21wYXRpYmlsaXR5IHRlc3QgYWdhaW5zdCB0aGUgbGF0ZXN0IHZlcnNpb24gcHVibGlzaGVkIHRvIG5wbSBhZnRlciBjb21waWxhdGlvbi5cbiAgICpcbiAgICogLSBZb3UgY2FuIG1hbnVhbGx5IHJ1biBjb21wYXRpYmlsaXR5IHRlc3RzIHVzaW5nIGB5YXJuIGNvbXBhdGAgaWYgdGhpcyBmZWF0dXJlIGlzIGRpc2FibGVkLlxuICAgKiAtIFlvdSBjYW4gaWdub3JlIGNvbXBhdGliaWxpdHkgZmFpbHVyZXMgYnkgYWRkaW5nIGxpbmVzIHRvIGEgXCIuY29tcGF0aWdub3JlXCIgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGlnbm9yZSBmaWxlIGZvciBBUEkgY29tcGF0aWJpbGl0eSB0ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIuY29tcGF0aWdub3JlXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhdElnbm9yZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXB0cyBhIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucy4gRmlsZXMgbWF0Y2hpbmcgYW55IG9mIHRob3NlIHBhdHRlcm5zIHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgVHlwZVNjcmlwdCBjb21waWxlciBpbnB1dC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwganNpaSB3aWxsIGluY2x1ZGUgYWxsICoudHMgZmlsZXMgKGV4Y2VwdCAuZC50cyBmaWxlcykgaW4gdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIgaW5wdXQuXG4gICAqIFRoaXMgY2FuIGJlIHByb2JsZW1hdGljIGZvciBleGFtcGxlIHdoZW4gdGhlIHBhY2thZ2UncyBidWlsZCBvciB0ZXN0IHByb2NlZHVyZSBnZW5lcmF0ZXMgLnRzIGZpbGVzXG4gICAqIHRoYXQgY2Fubm90IGJlIGNvbXBpbGVkIHdpdGgganNpaSdzIGNvbXBpbGVyIHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZVR5cGVzY3JpcHQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsZSBwYXRoIGZvciBnZW5lcmF0ZWQgZG9jcy5cbiAgICogQGRlZmF1bHQgXCJBUEkubWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jZ2VuRmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtaXQgYSBjb21wcmVzc2VkIHZlcnNpb24gb2YgdGhlIGFzc2VtYmx5XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb21wcmVzc0Fzc2VtYmx5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUganNpaSBjb21waWxlciB0byB1c2UuXG4gICAqXG4gICAqIFNldCB0byBcIipcIiBpZiB5b3Ugd2FudCB0byBtYW51YWxseSBtYW5hZ2UgdGhlIHZlcnNpb24gb2YganNpaSBpbiB5b3VyXG4gICAqIHByb2plY3QgYnkgbWFuYWdpbmcgdXBkYXRlcyB0byBgcGFja2FnZS5qc29uYCBvbiB5b3VyIG93bi5cbiAgICpcbiAgICogTk9URTogVGhlIGpzaWkgY29tcGlsZXIgcmVsZWFzZXMgc2luY2UgNS4wLjAgYXJlIG5vdCBzZW1hbnRpY2FsbHkgdmVyc2lvbmVkXG4gICAqIGFuZCBzaG91bGQgcmVtYWluIG9uIHRoZSBzYW1lIG1pbm9yLCBzbyB3ZSByZWNvbW1lbmQgdXNpbmcgYSBgfmAgZGVwZW5kZW5jeVxuICAgKiAoZS5nLiBgfjUuMC4wYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwifjUuOS4wXCJcbiAgICogQHBqbmV3IFwifjUuOS4wXCJcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhYmlsaXR5IG9mIHRoZSBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInN0YWJsZVwiXG4gICAqL1xuICByZWFkb25seSBzdGFiaWxpdHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgTWFya0Rvd24gZmlsZSBkZXNjcmliaW5nIHRoZSBqc2lpIEFQSS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9jZ2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBwdWJsaXNoIHRvIG5wbS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVsZWFzZVRvTnBtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1c2UgdHJ1c3RlZCBwdWJsaXNoaW5nIGZvciBucG0uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBucG1UcnVzdGVkUHVibGlzaGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHB1Ymxpc2hpbmcgbnBtIHBhY2thZ2UgdG8gQVdTIENvZGVBcnRpZmFjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVBcnRpZmFjdE9wdGlvbnM/OiBOcG1QdWJsaXNoT3B0aW9uc1tcImNvZGVBcnRpZmFjdE9wdGlvbnNcIl07XG5cbiAgLyoqXG4gICAqIFJlbGF0aXZlIHBhdGggb2YgdGhlIHBhY2thZ2Ugd2l0aGluIHRoZSByZXBvc2l0b3J5LlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWQgaW4gbW9ub3JlcG8gc2V0dXBzIHdoZXJlIHRoZSBwYWNrYWdlIGlzIG5vdCBhdCB0aGUgcm9vdC5cbiAgICogUGFja2FnaW5nIHN0ZXBzIHdpbGwgZXh0cmFjdCBidWlsZCBhcnRpZmFjdHMgaW50byB0aGlzIHN1YmRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIuXCIgLSByb290IG9mIHRoZSByZXBvc2l0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub2RlIHZlcnNpb24gdG8gdXNlIGluIHBhY2thZ2luZyB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibHRzLypcIlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdGVwcyB0byBydW4gYmVmb3JlIHBhY2thZ2luZyBpbiB3b3JrZmxvd3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPzogQXJyYXk8U3RlcD47XG59XG5cbi8qKlxuICogQSBtaXhpbiB0aGF0IGFkZHMganNpaSBjb21waWxhdGlvbiwgbXVsdGktbGFuZ3VhZ2UgcGFja2FnaW5nLCBhbmQgcHVibGlzaGluZ1xuICogY2FwYWJpbGl0aWVzIHRvIGFueSBUeXBlU2NyaXB0IHByb2plY3QuXG4gKlxuICogVGhpcyBpbXBsZW1lbnRzIHRoZSBjb25zdHJ1Y3RzIGBJTWl4aW5gIGludGVyZmFjZSBhbmQgaXMgYXBwbGllZCB1c2luZyB0aGVcbiAqIGAud2l0aCgpYCBtZXRob2Qgb24gYW55IGNvbnN0cnVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcHJvamVjdCA9IG5ldyBUeXBlU2NyaXB0UHJvamVjdCh7IGRpc2FibGVUc2NvbmZpZzogdHJ1ZSwgLi4uIH0pO1xuICogcHJvamVjdC53aXRoKG5ldyBKc2lpQnVpbGQoe1xuICogICBqc2lpVmVyc2lvbjogJ341LjkuMCcsXG4gKiAgIHB1Ymxpc2hUb01hdmVuOiB7IC4uLiB9LFxuICogfSkpO1xuICovXG5leHBvcnQgY2xhc3MgSnNpaUJ1aWxkIGltcGxlbWVudHMgSU1peGluIHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBKc2lpQnVpbGRPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4dHJhSm9iT3B0aW9uczogUGFydGlhbDxKb2I+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IEpzaWlCdWlsZE9wdGlvbnMgPSB7fSxcbiAgICBleHRyYUpvYk9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmV4dHJhSm9iT3B0aW9ucyA9IChleHRyYUpvYk9wdGlvbnMgPz8ge30pIGFzIFBhcnRpYWw8Sm9iPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnN0cnVjdCBpcyBhIFR5cGVTY3JpcHRQcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHN1cHBvcnRzKGNvbnN0cnVjdDogSUNvbnN0cnVjdCk6IGNvbnN0cnVjdCBpcyBUeXBlU2NyaXB0UHJvamVjdCB7XG4gICAgcmV0dXJuIGNvbnN0cnVjdCBpbnN0YW5jZW9mIFR5cGVTY3JpcHRQcm9qZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMganNpaSBjb25maWd1cmF0aW9uIHRvIHRoZSB0YXJnZXQgVHlwZVNjcmlwdFByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgYXBwbHlUbyhwcm9qZWN0OiBJQ29uc3RydWN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnN1cHBvcnRzKHByb2plY3QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zIH07XG4gICAgY29uc3Qgc3JjZGlyID0gcHJvamVjdC5zcmNkaXI7XG4gICAgY29uc3QgbGliZGlyID0gcHJvamVjdC5saWJkaXI7XG5cbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IHR5cGVzOiBgJHtsaWJkaXJ9L2luZGV4LmQudHNgIH0pO1xuXG4gICAgY29uc3QgY29tcHJlc3NBc3NlbWJseSA9IG9wdGlvbnMuY29tcHJlc3NBc3NlbWJseSA/PyBmYWxzZTtcblxuICAgIC8vIHRoaXMgaXMgYW4gdW5oZWxwZnVsIHdhcm5pbmdcbiAgICBjb25zdCBqc2lpRmxhZ3MgPSBbXCItLXNpbGVuY2Utd2FybmluZ3M9cmVzZXJ2ZWQtd29yZFwiXTtcbiAgICBpZiAoY29tcHJlc3NBc3NlbWJseSkge1xuICAgICAganNpaUZsYWdzLnB1c2goXCItLWNvbXByZXNzLWFzc2VtYmx5XCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBhdElnbm9yZSA9IG9wdGlvbnMuY29tcGF0SWdub3JlID8/IFwiLmNvbXBhdGlnbm9yZVwiO1xuXG4gICAgcHJvamVjdC5hZGRGaWVsZHMoeyBzdGFiaWxpdHk6IG9wdGlvbnMuc3RhYmlsaXR5ID8/IFwic3RhYmxlXCIgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zdGFiaWxpdHkgPT09IFwiZGVwcmVjYXRlZFwiKSB7XG4gICAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IGRlcHJlY2F0ZWQ6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHJvamVjdC5jb21waWxlVGFzay5yZXNldChbXCJqc2lpXCIsIC4uLmpzaWlGbGFnc10uam9pbihcIiBcIikpO1xuICAgIHByb2plY3Qud2F0Y2hUYXNrLnJlc2V0KFtcImpzaWlcIiwgXCItd1wiLCAuLi5qc2lpRmxhZ3NdLmpvaW4oXCIgXCIpKTtcblxuICAgIGNvbnN0IGNvbXBhdFRhc2sgPSBwcm9qZWN0LmFkZFRhc2soXCJjb21wYXRcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiUGVyZm9ybSBBUEkgY29tcGF0aWJpbGl0eSBjaGVjayBhZ2FpbnN0IGxhdGVzdCB2ZXJzaW9uXCIsXG4gICAgICBleGVjOiBganNpaS1kaWZmIG5wbTokKG5vZGUgLXAgXCJyZXF1aXJlKFxcJy4vcGFja2FnZS5qc29uXFwnKS5uYW1lXCIpIC1rIC0taWdub3JlLWZpbGUgJHtjb21wYXRJZ25vcmV9IHx8IChlY2hvIFwiXFxuVU5FWFBFQ1RFRCBCUkVBS0lORyBDSEFOR0VTOiBhZGQga2V5cyBzdWNoIGFzIFxcJ3JlbW92ZWQ6Y29uc3RydWN0cy5Ob2RlLm9mXFwnIHRvICR7Y29tcGF0SWdub3JlfSB0byBza2lwLlxcblwiICYmIGV4aXQgMSlgLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuY29tcGF0ID8/IGZhbHNlKSB7XG4gICAgICBwcm9qZWN0LmNvbXBpbGVUYXNrLnNwYXduKGNvbXBhdFRhc2spO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIG5ldyBwYWNrYWdlOmFsbCB0YXNrLCBpdCB3aWxsIGJlIGZpbGxlZCB3aXRoIGxhbmd1YWdlIHRhcmdldHMgbGF0ZXJcbiAgICBjb25zdCBwYWNrYWdlQWxsVGFzayA9IHByb2plY3QuYWRkVGFzayhcInBhY2thZ2UtYWxsXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBhY2thZ2VzIGFydGlmYWN0cyBmb3IgYWxsIHRhcmdldCBsYW5ndWFnZXNcIixcbiAgICB9KTtcblxuICAgIC8vIGluIGpzaWkgd2UgY29uc2lkZXIgdGhlIGVudGlyZSByZXBvIChwb3N0IGJ1aWxkKSBhcyB0aGUgYnVpbGQgYXJ0aWZhY3RcbiAgICAvLyB3aGljaCBpcyB0aGVuIHVzZWQgdG8gY3JlYXRlIHRoZSBsYW5ndWFnZSBiaW5kaW5ncyBpbiBzZXBhcmF0ZSBqb2JzLlxuICAgIGNvbnN0IHBhY2thZ2VKc1Rhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwianNcIik7XG5cbiAgICAvLyBXaGVuIHJ1bm5pbmcgaW5zaWRlIENJIHdlIGluaXRpYWxseSBvbmx5IHBhY2thZ2UganMuIE90aGVyIHRhcmdldHMgYXJlIHBhY2thZ2VkIGluIHNlcGFyYXRlIGpvYnMuXG4gICAgLy8gT3V0c2lkZSBvZiBDSSAoaS5lIGxvY2FsbHkpIHdlIHNpbXBseSBwYWNrYWdlIGFsbCB0YXJnZXRzLlxuICAgIHByb2plY3QucGFja2FnZVRhc2sucmVzZXQoKTtcbiAgICBwcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VKc1Rhc2ssIHtcbiAgICAgIC8vIE9ubHkgcnVuIGluIENJXG4gICAgICBjb25kaXRpb246IGBub2RlIC1lIFwiaWYgKCFwcm9jZXNzLmVudi5DSSkgcHJvY2Vzcy5leGl0KDEpXCJgLFxuICAgIH0pO1xuICAgIHByb2plY3QucGFja2FnZVRhc2suc3Bhd24ocGFja2FnZUFsbFRhc2ssIHtcbiAgICAgIC8vIERvbid0IHJ1biBpbiBDSVxuICAgICAgY29uZGl0aW9uOiBgbm9kZSAtZSBcImlmIChwcm9jZXNzLmVudi5DSSkgcHJvY2Vzcy5leGl0KDEpXCJgLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdGFyZ2V0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgY29uc3QganNpaTogYW55ID0ge1xuICAgICAgb3V0ZGlyOiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgIHRhcmdldHMsXG4gICAgICB0c2M6IHtcbiAgICAgICAgb3V0RGlyOiBsaWJkaXIsXG4gICAgICAgIHJvb3REaXI6IHNyY2RpcixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVUeXBlc2NyaXB0KSB7XG4gICAgICBqc2lpLmV4Y2x1ZGVUeXBlc2NyaXB0ID0gb3B0aW9ucy5leGNsdWRlVHlwZXNjcmlwdDtcbiAgICB9XG5cbiAgICBwcm9qZWN0LmFkZEZpZWxkcyh7IGpzaWkgfSk7XG5cbiAgICBjb25zdCBleHRyYUpvYk9wdGlvbnM6IFBhcnRpYWw8Sm9iPiA9IHRoaXMuZXh0cmFKb2JPcHRpb25zO1xuXG4gICAgaWYgKG9wdGlvbnMucmVsZWFzZVRvTnBtICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgbnBtanM6IE5wbVB1Ymxpc2hPcHRpb25zID0ge1xuICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICBucG1Ub2tlblNlY3JldDogcHJvamVjdC5wYWNrYWdlLm5wbVRva2VuU2VjcmV0LFxuICAgICAgICBucG1Qcm92ZW5hbmNlOiBwcm9qZWN0LnBhY2thZ2UubnBtUHJvdmVuYW5jZSxcbiAgICAgICAgY29kZUFydGlmYWN0T3B0aW9uczogb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zLFxuICAgICAgICB0cnVzdGVkUHVibGlzaGluZzogb3B0aW9ucy5ucG1UcnVzdGVkUHVibGlzaGluZyA/PyBmYWxzZSxcbiAgICAgIH07XG4gICAgICB0aGlzLmFkZFRhcmdldFRvQnVpbGQocHJvamVjdCwgcGFja2FnZUpzVGFzaywgXCJqc1wiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgcGFja2FnZUpzVGFzaywgXCJqc1wiLCBucG1qcyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF2ZW4gPSBvcHRpb25zLnB1Ymxpc2hUb01hdmVuO1xuICAgIGlmIChtYXZlbikge1xuICAgICAgdGFyZ2V0cy5qYXZhID0ge1xuICAgICAgICBwYWNrYWdlOiBtYXZlbi5qYXZhUGFja2FnZSxcbiAgICAgICAgbWF2ZW46IHtcbiAgICAgICAgICBncm91cElkOiBtYXZlbi5tYXZlbkdyb3VwSWQsXG4gICAgICAgICAgYXJ0aWZhY3RJZDogbWF2ZW4ubWF2ZW5BcnRpZmFjdElkLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgdGFzayA9IHRoaXMuYWRkUGFja2FnaW5nVGFzayhwcm9qZWN0LCBwYWNrYWdlQWxsVGFzaywgXCJqYXZhXCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiamF2YVwiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgdGFzaywgXCJqYXZhXCIsIG1hdmVuKTtcbiAgICB9XG5cbiAgICBjb25zdCBweXBpID0gb3B0aW9ucy5wdWJsaXNoVG9QeXBpO1xuICAgIGlmIChweXBpKSB7XG4gICAgICB0YXJnZXRzLnB5dGhvbiA9IHtcbiAgICAgICAgZGlzdE5hbWU6IHB5cGkuZGlzdE5hbWUsXG4gICAgICAgIG1vZHVsZTogcHlwaS5tb2R1bGUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcInB5dGhvblwiKTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9CdWlsZChwcm9qZWN0LCB0YXNrLCBcInB5dGhvblwiLCBleHRyYUpvYk9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb1JlbGVhc2UocHJvamVjdCwgdGFzaywgXCJweXRob25cIiwgcHlwaSk7XG4gICAgfVxuXG4gICAgY29uc3QgbnVnZXQgPSBvcHRpb25zLnB1Ymxpc2hUb051Z2V0O1xuICAgIGlmIChudWdldCkge1xuICAgICAgdGFyZ2V0cy5kb3RuZXQgPSB7XG4gICAgICAgIG5hbWVzcGFjZTogbnVnZXQuZG90TmV0TmFtZXNwYWNlLFxuICAgICAgICBwYWNrYWdlSWQ6IG51Z2V0LnBhY2thZ2VJZCxcbiAgICAgICAgaWNvblVybDogbnVnZXQuaWNvblVybCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLmFkZFBhY2thZ2luZ1Rhc2socHJvamVjdCwgcGFja2FnZUFsbFRhc2ssIFwiZG90bmV0XCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiZG90bmV0XCIsIGV4dHJhSm9iT3B0aW9ucyk7XG4gICAgICB0aGlzLmFkZFRhcmdldFRvUmVsZWFzZShwcm9qZWN0LCB0YXNrLCBcImRvdG5ldFwiLCBudWdldCk7XG4gICAgfVxuXG4gICAgY29uc3QgZ29sYW5nID0gb3B0aW9ucy5wdWJsaXNoVG9HbztcbiAgICBpZiAoZ29sYW5nKSB7XG4gICAgICB0YXJnZXRzLmdvID0ge1xuICAgICAgICBtb2R1bGVOYW1lOiBnb2xhbmcubW9kdWxlTmFtZSxcbiAgICAgICAgcGFja2FnZU5hbWU6IGdvbGFuZy5wYWNrYWdlTmFtZSxcbiAgICAgICAgdmVyc2lvblN1ZmZpeDogZ29sYW5nLnZlcnNpb25TdWZmaXgsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5hZGRQYWNrYWdpbmdUYXNrKHByb2plY3QsIHBhY2thZ2VBbGxUYXNrLCBcImdvXCIpO1xuICAgICAgdGhpcy5hZGRUYXJnZXRUb0J1aWxkKHByb2plY3QsIHRhc2ssIFwiZ29cIiwgZXh0cmFKb2JPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkVGFyZ2V0VG9SZWxlYXNlKHByb2plY3QsIHRhc2ssIFwiZ29cIiwgZ29sYW5nKTtcbiAgICB9XG5cbiAgICAvLyBJZiBqc2lpVmVyc2lvbiBpcyBcIipcIiwgZG9uJ3Qgc3BlY2lmeSBhbnl0aGluZyBzbyB0aGUgdXNlciBjYW4gbWFuYWdlLlxuICAgIC8vIE90aGVyd2lzZSwgdXNlIGBqc2lpVmVyc2lvbmBcbiAgICBjb25zdCBqc2lpVmVyc2lvbiA9IG9wdGlvbnMuanNpaVZlcnNpb24gPz8gXCJ+NS45LjBcIjtcbiAgICBjb25zdCBqc2lpU3VmZml4ID0ganNpaVZlcnNpb24gPT09IFwiKlwiID8gXCJcIiA6IGBAJHtqc2lpVmVyc2lvbn1gO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgIGBqc2lpJHtqc2lpU3VmZml4fWAsXG4gICAgICBganNpaS1yb3NldHRhJHtqc2lpU3VmZml4fWAsXG4gICAgICBcImpzaWktZGlmZlwiLFxuICAgICAgXCJqc2lpLXBhY21ha1wiLFxuICAgICk7XG5cbiAgICBwcm9qZWN0LmdpdGlnbm9yZS5leGNsdWRlKFwiLmpzaWlcIiwgXCJ0c2NvbmZpZy5qc29uXCIpO1xuICAgIHByb2plY3QubnBtaWdub3JlPy5pbmNsdWRlKFwiLmpzaWlcIik7XG5cbiAgICBpZiAob3B0aW9ucy5kb2NnZW4gPz8gdHJ1ZSkge1xuICAgICAgLy8gSWYganNpaVZlcnNpb24gaXMgXCIqXCIsIGRvbid0IHNwZWNpZnkgYW55dGhpbmcgc28gdGhlIHVzZXIgY2FuIG1hbmFnZS5cbiAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSB2ZXJzaW9uIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIGFsbCBzdXBwb3J0ZWQganNpaSByZWxlYXNlcy5cbiAgICAgIGNvbnN0IGRvY2dlblZlcnNpb24gPSBvcHRpb25zLmpzaWlWZXJzaW9uID09PSBcIipcIiA/IFwiKlwiIDogXCJeMTAuNS4wXCI7XG4gICAgICBuZXcgSnNpaURvY2dlbihwcm9qZWN0LCB7XG4gICAgICAgIHZlcnNpb246IGRvY2dlblZlcnNpb24sXG4gICAgICAgIGZpbGVQYXRoOiBvcHRpb25zLmRvY2dlbkZpbGVQYXRoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8ganNpaSB1cGRhdGVzIC5ucG1pZ25vcmUsIHNvIHdlIG1ha2UgaXQgd3JpdGFibGVcbiAgICBpZiAocHJvamVjdC5ucG1pZ25vcmUpIHtcbiAgICAgIHByb2plY3QubnBtaWdub3JlLnJlYWRvbmx5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXJnZXQgbGFuZ3VhZ2UgdG8gdGhlIHJlbGVhc2Ugd29ya2Zsb3cuXG4gICAqL1xuICBwcml2YXRlIGFkZFRhcmdldFRvUmVsZWFzZShcbiAgICBwcm9qZWN0OiBUeXBlU2NyaXB0UHJvamVjdCxcbiAgICBwYWNrVGFzazogVGFzayxcbiAgICBsYW5ndWFnZTogSnNpaVBhY21ha1RhcmdldCxcbiAgICB0YXJnZXQ6XG4gICAgICB8IEpzaWlQeXRob25UYXJnZXRcbiAgICAgIHwgSnNpaURvdE5ldFRhcmdldFxuICAgICAgfCBKc2lpR29UYXJnZXRcbiAgICAgIHwgSnNpaUphdmFUYXJnZXRcbiAgICAgIHwgTnBtUHVibGlzaE9wdGlvbnMsXG4gICkge1xuICAgIGlmICghcHJvamVjdC5yZWxlYXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFjbWFrID0gdGhpcy5wYWNtYWtGb3JMYW5ndWFnZShwcm9qZWN0LCBsYW5ndWFnZSwgcGFja1Rhc2spO1xuICAgIGNvbnN0IHByZVB1Ymxpc2hTdGVwcyA9IFtcbiAgICAgIC4uLnBhY21hay5ib290c3RyYXBTdGVwcyxcbiAgICAgIFdvcmtmbG93U3RlcHMuY2hlY2tvdXQoe1xuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgcGF0aDogUkVQT19URU1QX0RJUkVDVE9SWSxcbiAgICAgICAgICAuLi4ocHJvamVjdC5naXRodWI/LmRvd25sb2FkTGZzID8geyBsZnM6IHRydWUgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLi4ucGFjbWFrLnBhY2thZ2luZ1N0ZXBzLFxuICAgIF07XG4gICAgY29uc3QgY29tbW9uUHVibGlzaE9wdGlvbnM6IENvbW1vblB1Ymxpc2hPcHRpb25zID0ge1xuICAgICAgcHVibGlzaFRvb2xzOiBwYWNtYWsucHVibGlzaFRvb2xzLFxuICAgICAgcHJlUHVibGlzaFN0ZXBzLFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyOiBQdWJsaXNoVG8gPSBwdWJsaXNoVG9bbGFuZ3VhZ2VdO1xuICAgIHByb2plY3QucmVsZWFzZT8ucHVibGlzaGVyW2hhbmRsZXJdKHtcbiAgICAgIC4uLmNvbW1vblB1Ymxpc2hPcHRpb25zLFxuICAgICAgLi4udGFyZ2V0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXJnZXQgbGFuZ3VhZ2UgdG8gdGhlIGJ1aWxkIHdvcmtmbG93LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRUYXJnZXRUb0J1aWxkKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHBhY2tUYXNrOiBUYXNrLFxuICAgIGxhbmd1YWdlOiBKc2lpUGFjbWFrVGFyZ2V0LFxuICAgIGV4dHJhSm9iT3B0aW9uczogUGFydGlhbDxKb2I+LFxuICApIHtcbiAgICBpZiAoIXByb2plY3QuYnVpbGRXb3JrZmxvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYWNtYWsgPSB0aGlzLnBhY21ha0Zvckxhbmd1YWdlKHByb2plY3QsIGxhbmd1YWdlLCBwYWNrVGFzayk7XG5cbiAgICBwcm9qZWN0LmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkSm9iKGBwYWNrYWdlLSR7bGFuZ3VhZ2V9YCwge1xuICAgICAgLi4uZmlsdGVyZWRSdW5zT25PcHRpb25zKFxuICAgICAgICBleHRyYUpvYk9wdGlvbnMucnVuc09uLFxuICAgICAgICBleHRyYUpvYk9wdGlvbnMucnVuc09uR3JvdXAsXG4gICAgICApLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgIH0sXG4gICAgICB0b29sczoge1xuICAgICAgICBub2RlOiB7XG4gICAgICAgICAgdmVyc2lvbjogdGhpcy5vcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gXCJsdHMvKlwiLFxuICAgICAgICB9LFxuICAgICAgICAuLi5wYWNtYWsucHVibGlzaFRvb2xzLFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC4uLnBhY21hay5ib290c3RyYXBTdGVwcyxcbiAgICAgICAgV29ya2Zsb3dTdGVwcy5jaGVja291dCh7XG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgcGF0aDogUkVQT19URU1QX0RJUkVDVE9SWSxcbiAgICAgICAgICAgIHJlZjogUFVMTF9SRVFVRVNUX1JFRixcbiAgICAgICAgICAgIHJlcG9zaXRvcnk6IFBVTExfUkVRVUVTVF9SRVBPU0lUT1JZLFxuICAgICAgICAgICAgLi4uKHByb2plY3QuZ2l0aHViPy5kb3dubG9hZExmcyA/IHsgbGZzOiB0cnVlIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnBhY21hay5wYWNrYWdpbmdTdGVwcyxcbiAgICAgIF0sXG4gICAgICAuLi5leHRyYUpvYk9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZFBhY2thZ2luZ1Rhc2soXG4gICAgcHJvamVjdDogVHlwZVNjcmlwdFByb2plY3QsXG4gICAgcGFja2FnZUFsbFRhc2s6IFRhc2ssXG4gICAgbGFuZ3VhZ2U6IEpzaWlQYWNtYWtUYXJnZXQsXG4gICk6IFRhc2sge1xuICAgIGNvbnN0IHBhY2thZ2VUYXJnZXRUYXNrID0gcHJvamVjdC50YXNrcy5hZGRUYXNrKGBwYWNrYWdlOiR7bGFuZ3VhZ2V9YCwge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGUgJHtsYW5ndWFnZX0gbGFuZ3VhZ2UgYmluZGluZ3NgLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1hbmRQYXJ0cyA9IFtcImpzaWktcGFjbWFrXCIsIFwiLXZcIl07XG5cbiAgICBpZiAocHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgY29tbWFuZFBhcnRzLnB1c2goJy0tcGFjay1jb21tYW5kIFwicG5wbSBwYWNrXCInKTtcbiAgICB9XG5cbiAgICBjb21tYW5kUGFydHMucHVzaChgLS10YXJnZXQgJHtsYW5ndWFnZX1gKTtcblxuICAgIHBhY2thZ2VUYXJnZXRUYXNrLmV4ZWMoY29tbWFuZFBhcnRzLmpvaW4oXCIgXCIpKTtcblxuICAgIHBhY2thZ2VBbGxUYXNrLnNwYXduKHBhY2thZ2VUYXJnZXRUYXNrKTtcbiAgICByZXR1cm4gcGFja2FnZVRhcmdldFRhc2s7XG4gIH1cblxuICBwcml2YXRlIHBhY21ha0Zvckxhbmd1YWdlKFxuICAgIHByb2plY3Q6IFR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHRhcmdldDogSnNpaVBhY21ha1RhcmdldCxcbiAgICBwYWNrVGFzazogVGFzayxcbiAgKToge1xuICAgIHB1Ymxpc2hUb29sczogVG9vbHM7XG4gICAgYm9vdHN0cmFwU3RlcHM6IEFycmF5PFN0ZXA+O1xuICAgIHBhY2thZ2luZ1N0ZXBzOiBBcnJheTxTdGVwPjtcbiAgfSB7XG4gICAgY29uc3QgYm9vdHN0cmFwU3RlcHM6IEFycmF5PFN0ZXA+ID0gW107XG4gICAgY29uc3QgcGFja2FnaW5nU3RlcHM6IEFycmF5PFN0ZXA+ID0gW107XG5cbiAgICAvLyBHZW5lcmljIGJvb3RzdHJhcHBpbmcgZm9yIGFsbCB0YXJnZXQgbGFuZ3VhZ2VzXG4gICAgYm9vdHN0cmFwU3RlcHMucHVzaCguLi4odGhpcy5vcHRpb25zLndvcmtmbG93Qm9vdHN0cmFwU3RlcHMgPz8gW10pKTtcbiAgICBpZiAocHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgYm9vdHN0cmFwU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgcG5wbVwiLFxuICAgICAgICB1c2VzOiBcInBucG0vYWN0aW9uLXNldHVwQHY1XCIsXG4gICAgICAgIHdpdGg6IHsgdmVyc2lvbjogcHJvamVjdC5wYWNrYWdlLnBucG1WZXJzaW9uIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLkJVTikge1xuICAgICAgYm9vdHN0cmFwU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgYnVuXCIsXG4gICAgICAgIHVzZXM6IFwib3Zlbi1zaC9zZXR1cC1idW5AdjJcIixcbiAgICAgICAgd2l0aDogeyBcImJ1bi12ZXJzaW9uXCI6IHByb2plY3QucGFja2FnZS5idW5WZXJzaW9uIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGlzWWFybkJlcnJ5KHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcikpIHtcbiAgICAgIGJvb3RzdHJhcFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIkVuYWJsZSBjb3JlcGFja1wiLFxuICAgICAgICBydW46IFwiY29yZXBhY2sgZW5hYmxlXCIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrRGlyID0gdGhpcy5vcHRpb25zLndvcmtzcGFjZURpcmVjdG9yeVxuICAgICAgPyBgJHtSRVBPX1RFTVBfRElSRUNUT1JZfS8ke3RoaXMub3B0aW9ucy53b3Jrc3BhY2VEaXJlY3Rvcnl9YFxuICAgICAgOiBSRVBPX1RFTVBfRElSRUNUT1JZO1xuXG4gICAgLy8gSW5zdGFsbGF0aW9uIHN0ZXBzIGJlZm9yZSBwYWNrYWdpbmcsIGJ1dCBhZnRlciBjaGVja291dFxuICAgIHBhY2thZ2luZ1N0ZXBzLnB1c2goXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSW5zdGFsbCBEZXBlbmRlbmNpZXNcIixcbiAgICAgICAgcnVuOiBgY2QgJHtSRVBPX1RFTVBfRElSRUNUT1JZfSAmJiAke3Byb2plY3QucGFja2FnZS5pbnN0YWxsQ29tbWFuZH1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFeHRyYWN0IGJ1aWxkIGFydGlmYWN0XCIsXG4gICAgICAgIHJ1bjogYHRhciAtLXN0cmlwLWNvbXBvbmVudHM9MSAteHp2ZiAke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fS9qcy8qLnRneiAtQyAke3dvcmtEaXJ9YCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBNb3ZlIGJ1aWxkIGFydGlmYWN0IG91dCBvZiB0aGUgd2F5YCxcbiAgICAgICAgcnVuOiBgbXYgJHtwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX0gJHtCVUlMRF9BUlRJRkFDVF9PTERfRElSfWAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBgQ3JlYXRlICR7dGFyZ2V0fSBhcnRpZmFjdGAsXG4gICAgICAgIHJ1bjogYGNkICR7d29ya0Rpcn0gJiYgJHtwcm9qZWN0LnJ1blRhc2tDb21tYW5kKHBhY2tUYXNrKX1gLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogYENvbGxlY3QgJHt0YXJnZXR9IGFydGlmYWN0YCxcbiAgICAgICAgcnVuOiBgbXYgJHt3b3JrRGlyfS8ke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fSAke3Byb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fWAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHVibGlzaFRvb2xzOiBKU0lJX1RPT0xDSEFJTlt0YXJnZXRdLFxuICAgICAgYm9vdHN0cmFwU3RlcHMsXG4gICAgICBwYWNrYWdpbmdTdGVwcyxcbiAgICB9O1xuICB9XG59XG5cbnR5cGUgUHVibGlzaFRvID0ga2V5b2YgUHVibGlzaGVyICZcbiAgKFxuICAgIHwgXCJwdWJsaXNoVG9OcG1cIlxuICAgIHwgXCJwdWJsaXNoVG9NYXZlblwiXG4gICAgfCBcInB1Ymxpc2hUb1B5UGlcIlxuICAgIHwgXCJwdWJsaXNoVG9OdWdldFwiXG4gICAgfCBcInB1Ymxpc2hUb0dvXCJcbiAgKTtcblxudHlwZSBQdWJsaXNoVG9UYXJnZXQgPSB7IFtLIGluIEpzaWlQYWNtYWtUYXJnZXRdOiBQdWJsaXNoVG8gfTtcbmNvbnN0IHB1Ymxpc2hUbzogUHVibGlzaFRvVGFyZ2V0ID0ge1xuICBqczogXCJwdWJsaXNoVG9OcG1cIixcbiAgamF2YTogXCJwdWJsaXNoVG9NYXZlblwiLFxuICBweXRob246IFwicHVibGlzaFRvUHlQaVwiLFxuICBkb3RuZXQ6IFwicHVibGlzaFRvTnVnZXRcIixcbiAgZ286IFwicHVibGlzaFRvR29cIixcbn07XG4iXX0=
|
package/lib/cdk/jsii-docgen.js
CHANGED
|
@@ -33,5 +33,5 @@ class JsiiDocgen extends component_1.Component {
|
|
|
33
33
|
}
|
|
34
34
|
exports.JsiiDocgen = JsiiDocgen;
|
|
35
35
|
_a = JSII_RTTI_SYMBOL_1;
|
|
36
|
-
JsiiDocgen[_a] = { fqn: "projen.cdk.JsiiDocgen", version: "0.99.
|
|
36
|
+
JsiiDocgen[_a] = { fqn: "projen.cdk.JsiiDocgen", version: "0.99.68" };
|
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS1kb2NnZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2RrL2pzaWktZG9jZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsNENBQXlDO0FBQ3pDLGtEQUFpRDtBQW9CakQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBUztJQUN2QyxZQUFZLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtRQUM1RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFYixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNsQyxJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPO1lBQ1AsSUFBSSxFQUFFLDZCQUFjLENBQUMsS0FBSztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDNUMsV0FBVyxFQUFFLHFDQUFxQztZQUNsRCxJQUFJLEVBQUUsa0JBQWtCLFFBQVEsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFFSCxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7QUF0QkgsZ0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlIH0gZnJvbSBcIi4uL2RlcGVuZGVuY2llc1wiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBKc2lpRG9jZ2VuYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzaWlEb2NnZW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbGUgcGF0aCBmb3IgZ2VuZXJhdGVkIGRvY3MuXG4gICAqIEBkZWZhdWx0IFwiQVBJLm1kXCJcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNlbXZlciB2ZXJzaW9uIHN0cmluZyB0byBpbnN0YWxsIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBqc2lpLWRvY2dlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXJrZG93biBmaWxlIGJhc2VkIG9uIHRoZSBqc2lpIG1hbmlmZXN0OlxuICogLSBBZGRzIGEgYGRvY2dlbmAgc2NyaXB0IHRvIHBhY2thZ2UuanNvblxuICogLSBSdW5zIGBqc2lpLWRvY2dlbmAgYWZ0ZXIgY29tcGlsYXRpb25cbiAqIC0gRW5mb3JjZXMgdGhhdCBtYXJrZG93biBmaWxlIGlzIGNoZWNrZWQgaW5cbiAqL1xuZXhwb3J0IGNsYXNzIEpzaWlEb2NnZW4gZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgb3B0aW9uczogSnNpaURvY2dlbk9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnZlcnNpb24gPz8gXCIqXCI7XG4gICAgdGhpcy5wcm9qZWN0LmRlcHMucmVxdWVzdERlcGVuZGVuY3koe1xuICAgICAgbmFtZTogXCJqc2lpLWRvY2dlblwiLFxuICAgICAgdmVyc2lvbixcbiAgICAgIHR5cGU6IERlcGVuZGVuY3lUeXBlLkJVSUxELFxuICAgIH0pO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSBvcHRpb25zLmZpbGVQYXRoID8/IFwiQVBJLm1kXCI7XG5cbiAgICBjb25zdCBkb2NnZW4gPSB0aGlzLnByb2plY3QuYWRkVGFzayhcImRvY2dlblwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSBBUEkubWQgZnJvbSAuanNpaSBtYW5pZmVzdFwiLFxuICAgICAgZXhlYzogYGpzaWktZG9jZ2VuIC1vICR7ZmlsZVBhdGh9YCxcbiAgICB9KTtcblxuICAgIC8vIHNwYXduIGRvY2dlbiBhZnRlciBjb21waWxhdGlvbiAocmVxdWlyZXMgdGhlIC5qc2lpIG1hbmlmZXN0KS5cbiAgICB0aGlzLnByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKGRvY2dlbik7XG4gICAgdGhpcy5wcm9qZWN0LmdpdGlnbm9yZS5pbmNsdWRlKGAvJHtmaWxlUGF0aH1gKTtcbiAgICB0aGlzLnByb2plY3QuYW5ub3RhdGVHZW5lcmF0ZWQoYC8ke2ZpbGVQYXRofWApO1xuICB9XG59XG4iXX0=
|
|
@@ -151,23 +151,7 @@ export interface JsiiGoTarget extends GoPublishOptions {
|
|
|
151
151
|
* @pjid jsii
|
|
152
152
|
*/
|
|
153
153
|
export declare class JsiiProject extends TypeScriptProject {
|
|
154
|
-
private readonly packageAllTask;
|
|
155
|
-
private readonly packageJsTask;
|
|
156
154
|
constructor(options: JsiiProjectOptions);
|
|
157
|
-
/**
|
|
158
|
-
* Adds a target language to the release workflow.
|
|
159
|
-
* @param language
|
|
160
|
-
* @returns
|
|
161
|
-
*/
|
|
162
|
-
private addTargetToRelease;
|
|
163
|
-
/**
|
|
164
|
-
* Adds a target language to the build workflow
|
|
165
|
-
* @param language
|
|
166
|
-
* @returns
|
|
167
|
-
*/
|
|
168
|
-
private addTargetToBuild;
|
|
169
|
-
private addPackagingTask;
|
|
170
|
-
private pacmakForLanguage;
|
|
171
155
|
/**
|
|
172
156
|
* Generates the runs-on config for Jobs.
|
|
173
157
|
* Throws error if 'runsOn' and 'runsOnGroup' are both set.
|