projen 0.101.8 → 0.101.9
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 +315 -62
- 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 +1 -1
- 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 +3 -3
- 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-build.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/cli/cmds/new.js +1 -8
- package/lib/component.d.ts +21 -1
- package/lib/component.js +27 -3
- 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.d.ts +2 -1
- package/lib/java/projenrc.js +6 -9
- package/lib/javascript/biome/biome.d.ts +5 -1
- package/lib/javascript/biome/biome.js +8 -2
- package/lib/javascript/bundler.js +1 -1
- package/lib/javascript/eslint.d.ts +5 -1
- package/lib/javascript/eslint.js +8 -2
- 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/pnpm-workspace-config.js +2 -2
- package/lib/javascript/pnpm-workspace.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.d.ts +2 -1
- package/lib/javascript/projenrc.js +6 -8
- package/lib/javascript/render-options.d.ts +15 -1
- package/lib/javascript/render-options.js +7 -3
- 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/logging.js +3 -2
- 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.d.ts +19 -5
- package/lib/project.js +34 -11
- package/lib/projects.js +7 -5
- package/lib/projenrc-json.d.ts +2 -1
- package/lib/projenrc-json.js +6 -8
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.d.ts +2 -1
- package/lib/python/projenrc.js +6 -9
- 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/run-task.cjs +245 -49
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-shell.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.d.ts +2 -1
- package/lib/typescript/projenrc-ts.js +6 -8
- package/lib/typescript/projenrc.d.ts +3 -1
- package/lib/typescript/projenrc.js +7 -9
- package/lib/typescript/typescript-runner.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- package/lib/util/exec.d.ts +7 -0
- package/lib/util/exec.js +36 -13
- 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 +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +1 -1
package/lib/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IConstruct } from "constructs";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
|
-
import type { Project } from "./project";
|
|
3
|
+
import type { InitProject, Project } from "./project";
|
|
4
4
|
/**
|
|
5
5
|
* Represents a project component.
|
|
6
6
|
* @param project
|
|
@@ -25,6 +25,26 @@ export declare class Component extends Construct {
|
|
|
25
25
|
* Called after synthesis. Order is *not* guaranteed.
|
|
26
26
|
*/
|
|
27
27
|
postSynthesize(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Called once, right after `synthesize()`, only when the project is created for the first time.
|
|
30
|
+
*
|
|
31
|
+
* It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
|
|
32
|
+
* Use it for deterministic, one-off file generation. Order across components is not guaranteed.
|
|
33
|
+
*
|
|
34
|
+
* @param initProject Details about how the project was created, e.g. its type and the original CLI args.
|
|
35
|
+
*/
|
|
36
|
+
projectCreation(initProject: InitProject): void;
|
|
37
|
+
/**
|
|
38
|
+
* Called once, right after `postSynthesize()`, only when the project is created for the first time.
|
|
39
|
+
*
|
|
40
|
+
* It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
|
|
41
|
+
* It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
|
|
42
|
+
* Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
|
|
43
|
+
* feedback on their new project. Order across components is not guaranteed.
|
|
44
|
+
*
|
|
45
|
+
* @param initProject Details about how the project was created, e.g. its type and the original CLI args.
|
|
46
|
+
*/
|
|
47
|
+
postProjectCreation(initProject: InitProject): void;
|
|
28
48
|
}
|
|
29
49
|
/**
|
|
30
50
|
* A {@link Component} that is created *detached* from any project and attached
|
package/lib/component.js
CHANGED
|
@@ -16,7 +16,7 @@ const componentId = (scope) => {
|
|
|
16
16
|
* @param id Unique id of the component. If not provided, an unstable AutoId is generated.
|
|
17
17
|
*/
|
|
18
18
|
class Component extends constructs_1.Construct {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Component", version: "0.101.9" };
|
|
20
20
|
/**
|
|
21
21
|
* Test whether the given construct is a component.
|
|
22
22
|
*/
|
|
@@ -43,6 +43,30 @@ class Component extends constructs_1.Construct {
|
|
|
43
43
|
* Called after synthesis. Order is *not* guaranteed.
|
|
44
44
|
*/
|
|
45
45
|
postSynthesize() { }
|
|
46
|
+
/**
|
|
47
|
+
* Called once, right after `synthesize()`, only when the project is created for the first time.
|
|
48
|
+
*
|
|
49
|
+
* It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
|
|
50
|
+
* Use it for deterministic, one-off file generation. Order across components is not guaranteed.
|
|
51
|
+
*
|
|
52
|
+
* @param initProject Details about how the project was created, e.g. its type and the original CLI args.
|
|
53
|
+
*/
|
|
54
|
+
projectCreation(initProject) {
|
|
55
|
+
initProject;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Called once, right after `postSynthesize()`, only when the project is created for the first time.
|
|
59
|
+
*
|
|
60
|
+
* It does not run on later `projen` invocations. It only fires for `projen new` (or `Projects.createProject`).
|
|
61
|
+
* It is also skipped when post-synthesis steps are disabled, e.g. `--no-post` or `PROJEN_DISABLE_POST`.
|
|
62
|
+
* Use it for one-off setup that can be turned off by the user, like running a task to give the user immediate
|
|
63
|
+
* feedback on their new project. Order across components is not guaranteed.
|
|
64
|
+
*
|
|
65
|
+
* @param initProject Details about how the project was created, e.g. its type and the original CLI args.
|
|
66
|
+
*/
|
|
67
|
+
postProjectCreation(initProject) {
|
|
68
|
+
initProject;
|
|
69
|
+
}
|
|
46
70
|
}
|
|
47
71
|
exports.Component = Component;
|
|
48
72
|
/**
|
|
@@ -151,7 +175,7 @@ function guardDetached(target) {
|
|
|
151
175
|
* ```
|
|
152
176
|
*/
|
|
153
177
|
class FutureComponent extends Component {
|
|
154
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FutureComponent", version: "0.101.
|
|
178
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FutureComponent", version: "0.101.9" };
|
|
155
179
|
newTargetName;
|
|
156
180
|
attachedState = false;
|
|
157
181
|
constructor() {
|
|
@@ -225,4 +249,4 @@ class FutureComponent extends Component {
|
|
|
225
249
|
}
|
|
226
250
|
}
|
|
227
251
|
exports.FutureComponent = FutureComponent;
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQTREO0FBRTVELGtEQUsyQjtBQUUzQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztBQUNsRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN4QyxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLE9BQU8sU0FBUyxNQUFNLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7O0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1FBQzlCLE9BQU8sSUFBQSx3QkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFZSxPQUFPLENBQVU7SUFFakMsWUFBWSxLQUFpQixFQUFFLEVBQVc7UUFDeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUEsMkJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLCtC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RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWixzRUFBc0U7UUFDdEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFNBQVMsQ0FBQyxLQUFpQixFQUFFLEVBQVc7UUFDN0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7O0FBM0ZILDBDQTRGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIE5vZGUsIFJvb3RDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdFwiO1xuaW1wb3J0IHtcbiAgaXNDb21wb25lbnQsXG4gIGZpbmRDbG9zZXN0UHJvamVjdCxcbiAgdGFnQXNDb21wb25lbnQsXG4gIHRhZ0FzUHJvamVjdCxcbn0gZnJvbSBcIi4vdXRpbC9jb25zdHJ1Y3RzXCI7XG5cbmNvbnN0IGF1dG9JZHMgPSBuZXcgV2Vha01hcDxJQ29uc3RydWN0LCBudW1iZXI+KCk7XG5jb25zdCBjb21wb25lbnRJZCA9IChzY29wZTogSUNvbnN0cnVjdCkgPT4ge1xuICBjb25zdCBuZXh0SWQgPSAoYXV0b0lkcy5nZXQoc2NvcGUpID8/IDApICsgMTtcbiAgYXV0b0lkcy5zZXQoc2NvcGUsIG5leHRJZCk7XG4gIHJldHVybiBgQXV0b0lkJHtuZXh0SWR9YDtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHByb2plY3QgY29tcG9uZW50LlxuICogQHBhcmFtIHByb2plY3RcbiAqIEBwYXJhbSBpZCBVbmlxdWUgaWQgb2YgdGhlIGNvbXBvbmVudC4gSWYgbm90IHByb3ZpZGVkLCBhbiB1bnN0YWJsZSBBdXRvSWQgaXMgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRlc3Qgd2hldGhlciB0aGUgZ2l2ZW4gY29uc3RydWN0IGlzIGEgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbXBvbmVudCh4OiBhbnkpOiB4IGlzIENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGlzQ29tcG9uZW50KHgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb2plY3Q6IFByb2plY3Q7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkIHx8IGAke25ldy50YXJnZXQubmFtZX0jJHtjb21wb25lbnRJZChzY29wZSl9YCk7XG4gICAgdGFnQXNDb21wb25lbnQodGhpcyk7XG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwidHlwZVwiLCBcImNvbXBvbmVudFwiKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJjb25zdHJ1Y3RcIiwgbmV3LnRhcmdldC5uYW1lKTtcblxuICAgIHRoaXMucHJvamVjdCA9IGZpbmRDbG9zZXN0UHJvamVjdChzY29wZSwgbmV3LnRhcmdldC5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYmVmb3JlIHN5bnRoZXNpcy5cbiAgICovXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgZmlsZXMgdG8gdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyBzeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHN5bnRoZXNpcy4gT3JkZXIgaXMgKm5vdCogZ3VhcmFudGVlZC5cbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHt9XG59XG5cbi8qKlxuICogSW50ZXJuYWwgZmxhZyBrZXkgcmVhZCBieSB0aGUgZGV0YWNoZWQtZ3VhcmQgcHJveHkuIEEgc3ltYm9sIHNvIGl0IG5ldmVyXG4gKiBjb2xsaWRlcyB3aXRoIGEgcmVhbCAoc3RyaW5nLWtleWVkKSBtZW1iZXIgYW5kIGlzIGFsd2F5cyByZWFkYWJsZSB0aHJvdWdoIHRoZVxuICogZ3VhcmQgKHN5bWJvbCBhY2Nlc3MgaXMgbmV2ZXIgYmxvY2tlZCkuXG4gKi9cbmNvbnN0IEZVVFVSRV9BVFRBQ0hFRCA9IFN5bWJvbC5mb3IoXCJwcm9qZW4uZnV0dXJlLmF0dGFjaGVkXCIpO1xuXG4vKipcbiAqIFRoZSBtZW1iZXJzIGEgZGV0YWNoZWQgZnV0dXJlIGNvbXBvbmVudCBpcyBhbGxvd2VkIHRvIGV4cG9zZS4gUmVhZGluZyBhbnl0aGluZ1xuICogZWxzZSBiZWZvcmUgYXR0YWNoIHRocm93cy4gKGBjb3B5YCBpcyB0aGUgY29weWFibGUgY2FwYWJpbGl0eSBtZXRob2QgYVxuICogY29weWFibGUgc3ViY2xhc3MgYWRkcywgcGVyIHRoZSBgcmVjcmVhdGUoKWAgY29udmVudGlvbi4pXG4gKi9cbmNvbnN0IERFVEFDSEVEX0FMTE9XTElTVCA9IG5ldyBTZXQ8UHJvcGVydHlLZXk+KFtcbiAgXCJhdHRhY2hcIixcbiAgXCJ0cnlBdHRhY2hcIixcbiAgXCJhdHRhY2hlZFwiLFxuICBcImNvcHlcIixcbiAgXCJjb25zdHJ1Y3RvclwiLFxuICBcInRvU3RyaW5nXCIsXG5dKTtcblxuLyoqXG4gKiBXcmFwIGEgZnJlc2hseSBjb25zdHJ1Y3RlZCB7QGxpbmsgRnV0dXJlQ29tcG9uZW50fSBpbiBhIGd1YXJkIHByb3h5LlxuICpcbiAqIFR3byBqb2JzOlxuICpcbiAqIDEuIEJsb2NrIHVzZSBiZWZvcmUgYXR0YWNoLiBXaGlsZSBkZXRhY2hlZCwgYW55IHByb3BlcnR5IHJlYWQgb3V0c2lkZVxuICogICAge0BsaW5rIERFVEFDSEVEX0FMTE9XTElTVH0gKGFuZCBvdXRzaWRlIHN5bWJvbCBrZXlzLCB3aGljaCBhbHdheXMgcGFzcyBzb1xuICogICAgYGluc3RhbmNlb2ZgLCBqc2lpIGFuZCBpbnNwZWN0aW9uIGtlZXAgd29ya2luZykgdGhyb3dzIGluc3RlYWQgb2Ygc2lsZW50bHlcbiAqICAgIHJldHVybmluZyBzaGFkb3ctdHJlZSBzdGF0ZS5cbiAqIDIuIFwiRHJvcFwiIGl0c2VsZiBvbiBhdHRhY2guIE9uY2UgYXR0YWNoZWQsIHRoZSBndWFyZCBpcyBhIHRyYW5zcGFyZW50XG4gKiAgICBwYXNzLXRocm91Z2g6IGEgc2luZ2xlIGJvb2xlYW4gY2hlY2ssIHRoZW4gYFJlZmxlY3RgLiBFdmVyeSBtZXRob2QgaXRcbiAqICAgIHJldHVybnMgaXMgYm91bmQgdG8gdGhlICpyZWFsKiB0YXJnZXQsIHNvIHRoZSBtb21lbnQgeW91IGNhbGwgb25lIG1ldGhvZFxuICogICAgdGhlIHdvcmsgY29udGludWVzIG9uIHRoZSBiYXJlIG9iamVjdCB3aXRoIG5vIGZ1cnRoZXIgcHJveHkgdHJhcHMuXG4gKlxuICogT25seSBgZ2V0YCBpcyBndWFyZGVkLiBgc2V0YCBpcyBpbnRlbnRpb25hbGx5IGxlZnQgb3BlbiBzbyBhIHN1YmNsYXNzXG4gKiBjb25zdHJ1Y3RvciBjYW4gYXNzaWduIGl0cyBvd24gZmllbGRzIChlLmcuIGB0aGlzLm9wdGlvbnMgPSBvcHRpb25zYCkuXG4gKi9cbmZ1bmN0aW9uIGd1YXJkRGV0YWNoZWQ8VCBleHRlbmRzIG9iamVjdD4odGFyZ2V0OiBUKTogVCB7XG4gIGNvbnN0IGJvdW5kQ2FjaGUgPSBuZXcgTWFwPFByb3BlcnR5S2V5LCAoLi4uYXJnczogYW55W10pID0+IGFueT4oKTtcbiAgY29uc3QgaGFuZGxlcjogUHJveHlIYW5kbGVyPFQ+ID0ge1xuICAgIGdldCh0LCBwcm9wKSB7XG4gICAgICAvLyBuZXZlciBwcmVzZW50IGFzIGEgdGhlbmFibGUsIG9yIGBhd2FpdCBmdXR1cmVDb21wb25lbnRgIHdvdWxkIGhhbmcvdGhyb3dcbiAgICAgIGlmIChwcm9wID09PSBcInRoZW5cIikge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhdHRhY2hlZCA9ICh0IGFzIGFueSlbRlVUVVJFX0FUVEFDSEVEXSA9PT0gdHJ1ZTtcbiAgICAgIGNvbnN0IGFsbG93ZWQgPVxuICAgICAgICBhdHRhY2hlZCB8fCB0eXBlb2YgcHJvcCAhPT0gXCJzdHJpbmdcIiB8fCBERVRBQ0hFRF9BTExPV0xJU1QuaGFzKHByb3ApO1xuXG4gICAgICBpZiAoIWFsbG93ZWQpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9ICh0IGFzIGFueSkubmV3VGFyZ2V0TmFtZSA/PyB0LmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IGFjY2VzcyAnJHtTdHJpbmcocHJvcCl9JyBvbiAke25hbWV9OiBhIGZ1dHVyZSBjb21wb25lbnQgaXMgYCArXG4gICAgICAgICAgICBgbm90IHVzYWJsZSB1bnRpbCBpdCBpcyBhdHRhY2hlZC4gQ2FsbCBhdHRhY2goc2NvcGUpIGZpcnN0LCBvciBwYXNzIGAgK1xuICAgICAgICAgICAgYGl0IHRvIGEgUHJvamVjdCB3aGljaCBhdHRhY2hlcyBpdCBmb3IgeW91LmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIGJpbmQgZnVuY3Rpb25zIHRvIHRoZSAqcmVhbCogdGFyZ2V0IHNvIHRoYXQsIG9uY2UgaW52b2tlZCwgYWxsIGludGVybmFsXG4gICAgICAvLyBgdGhpc2AgYWNjZXNzIGhhcHBlbnMgb24gdGhlIGJhcmUgb2JqZWN0IHdpdGggbm8gcHJveHkgaW52b2x2ZW1lbnQuXG4gICAgICBjb25zdCB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHQsIHByb3AsIHQpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGxldCBib3VuZCA9IGJvdW5kQ2FjaGUuZ2V0KHByb3ApO1xuICAgICAgICBpZiAoIWJvdW5kKSB7XG4gICAgICAgICAgYm91bmQgPSAodmFsdWUgYXMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpLmJpbmQodCk7XG4gICAgICAgICAgYm91bmRDYWNoZS5zZXQocHJvcCwgYm91bmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gbmV3IFByb3h5KHRhcmdldCwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogTWFrZSBhIHNwZWNpZmljIHByb3BlcnR5IHdyaXRhYmxlIGFnYWluLlxuICovXG50eXBlIFdyaXRlYWJsZVByb3A8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gT21pdDxULCBLPiAmIHtcbiAgLXJlYWRvbmx5IFtQIGluIEtdOiBUW1BdO1xufTtcblxuLyoqXG4gKiBBIHtAbGluayBDb21wb25lbnR9IHRoYXQgaXMgY3JlYXRlZCAqZGV0YWNoZWQqIGZyb20gYW55IHByb2plY3QgYW5kIGF0dGFjaGVkXG4gKiB0byBvbmUgbGF0ZXIgdmlhIHtAbGluayBGdXR1cmVDb21wb25lbnQuYXR0YWNofS5cbiAqXG4gKiBMaWtlIGEgcmVndWxhciBjb21wb25lbnQsIGJ1dCBjb25zdHJ1Y3RlZCB3aXRob3V0IGEgcHJvamVjdC4gSXQgaW1wcm92ZXMgb24gYVxuICogbmFpdmUgZGVmZXJyZWQgY29tcG9uZW50IGluIHRocmVlIHdheXM6XG4gKlxuICogLSBVc2UtYmVmb3JlLWF0dGFjaCBpcyBhbiBlcnJvciwgbm90IGEgc2lsZW50IGZvb3RndW4uIFRoZSBjb25zdHJ1Y3RvciBoYW5kc1xuICogICB0aGUgY2FsbGVyIGEgZ3VhcmQgcHJveHk7IHRvdWNoaW5nIGBwcm9qZWN0YCwgYG5vZGVgLCBgc3ludGhlc2l6ZSgpYCBvciBhbnlcbiAqICAgc3ViY2xhc3MgZmVhdHVyZSBiZWZvcmUgYGF0dGFjaCgpYCB0aHJvd3MuXG4gKiAtIE5vIGdsb2JhbCBzaGFkb3ctdHJlZSBsZWFrLiBFYWNoIGluc3RhbmNlIGdldHMgaXRzIG93biB0aHJvd2F3YXkgc2hhZG93XG4gKiAgIHJvb3QsIHNvIGRldGFjaGVkIGNvbXBvbmVudHMgbmV2ZXIgc2hhcmUgYW4gaWQgY291bnRlciBhbmQgdGhlIHJvb3QgYmVjb21lc1xuICogICBnYXJiYWdlIG9uY2UgdGhlIGNvbXBvbmVudCBpcyByZXBhcmVudGVkIG9uIGF0dGFjaC5cbiAqIC0gYGF0dGFjaCgpYCByZXR1cm5zIHRoZSB1bndyYXBwZWQgY29tcG9uZW50LCBzbyBjYWxsZXJzIGNhbiBvcHQgb3V0IG9mIHRoZVxuICogICBwcm94eSBlbnRpcmVseS5cbiAqXG4gKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgbm8gYXJndW1lbnRzIChgc3VwZXIoKWApLiBBIHN1YmNsYXNzIHRoYXQgbmVlZHMgb3B0aW9uc1xuICogY2FwdHVyZXMgdGhlbSBpdHNlbGYsIHJlYWRpbmcgdGhlIGxvY2FsIHBhcmFtZXRlciBpbnNpZGUgaXRzIGNvbnN0cnVjdG9yIC0gTk9UXG4gKiBgdGhpcy5vcHRpb25zYCwgd2hpY2ggdGhlIGd1YXJkIGJsb2NrcyB1bnRpbCBhdHRhY2guXG4gKlxuICogYGBgdHNcbiAqIGNsYXNzIFdvcmtlciBleHRlbmRzIEZ1dHVyZUNvbXBvbmVudCB7XG4gKiAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogV29ya2VyT3B0aW9ucztcbiAqICAgY29uc3RydWN0b3Iob3B0aW9uczogV29ya2VyT3B0aW9ucyA9IHt9KSB7XG4gKiAgICAgc3VwZXIoKTtcbiAqICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOyAvLyBzZXQ6IGFsbG93ZWRcbiAqICAgfVxuICogICBwcm90ZWN0ZWQgaW5pdCgpIHtcbiAqICAgICAvLyB0aGlzLnByb2plY3QgaXMgYXZhaWxhYmxlIGhlcmVcbiAqICAgfVxuICogfVxuICpcbiAqIGNvbnN0IHcgPSBuZXcgV29ya2VyKHsgcmV0cmllczogMyB9KTtcbiAqIC8vIHcucHJvamVjdDsgICAgICAgICAgICAgICAgICAvLyB0aHJvd3M6IG5vdCBhdHRhY2hlZCB5ZXRcbiAqIGNvbnN0IHJlYWwgPSB3LmF0dGFjaChwcm9qZWN0KTsgLy8gcmVwYXJlbnRzLCBydW5zIGluaXQoKSwgcmV0dXJucyB0aGUgYmFyZSBpbnN0YW5jZVxuICogYGBgXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGdXR1cmVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IG5ld1RhcmdldE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBhdHRhY2hlZFN0YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gRWFjaCBmdXR1cmUgY29tcG9uZW50IGdldHMgaXRzIE9XTiBzaGFkb3cgcm9vdC4gVW5saWtlIGEgc2luZ2xlIGdsb2JhbFxuICAgIC8vIHNoYWRvdyB0cmVlLCBkZXRhY2hlZCBjb21wb25lbnRzIG5ldmVyIGNvbGxpZGUgb24gYW4gaWQgY291bnRlciwgYW5kIHRoZVxuICAgIC8vIHJvb3QgaXMgY29sbGVjdGVkIG9uY2Ugd2UgcmVwYXJlbnQgb24gYXR0YWNoKCkuXG4gICAgY29uc3Qgc2hhZG93ID0gbmV3IFJvb3RDb25zdHJ1Y3QoKTtcbiAgICB0YWdBc1Byb2plY3Qoc2hhZG93KTtcbiAgICBzdXBlcihzaGFkb3cpO1xuXG4gICAgdGhpcy5uZXdUYXJnZXROYW1lID0gbmV3LnRhcmdldC5uYW1lO1xuXG4gICAgLy8gSGFuZCB0aGUgY2FsbGVyIGEgZ3VhcmRlZCBwcm94eS4gYHRoaXNgIGhlcmUgaXMgc3RpbGwgdGhlIGJhcmUgb2JqZWN0O1xuICAgIC8vIHJldHVybmluZyBpdCBtYWtlcyB0aGUgcHJveHkgdGhlIGluc3RhbmNlIHNlZW4gYnkgYG5ld2AuIEJlY2F1c2UgdGhlIGJhc2VcbiAgICAvLyBjb25zdHJ1Y3RvciByZXR1cm5zIGFuIG9iamVjdCwgc3ViY2xhc3MgY29uc3RydWN0b3JzIHRyYW5zcGFyZW50bHkgYWRvcHRcbiAgICAvLyB0aGUgcHJveHkgYXMgdGhlaXIgYHRoaXNgIHRvby5cbiAgICByZXR1cm4gZ3VhcmREZXRhY2hlZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBhdHRhY2goKWAgaGFzIGJlZW4gY2FsbGVkLiBBIGNvbnZlbmllbmNlIGZvciB0ZXN0cy9pbnRyb3NwZWN0aW9uO1xuICAgKiBwcmVmZXIgYHRyeUF0dGFjaCgpYCBvdmVyIHJlYWRpbmcgdGhpcyBhbmQgYnJhbmNoaW5nLlxuICAgKi9cbiAgcHVibGljIGdldCBhdHRhY2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2hlZFN0YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2plY3QtZGVwZW5kZW50IHNldHVwLiBSdW5zIG9uY2UsIGZyb20gYGF0dGFjaCgpYCwgd2hlbiBgdGhpcy5wcm9qZWN0YCBpc1xuICAgKiBmaW5hbGx5IGF2YWlsYWJsZS5cbiAgICovXG4gIHByb3RlY3RlZCBpbml0KCk6IHZvaWQge31cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBjb21wb25lbnQgdG8gYSBzY29wZS4gT25seSBub3cgZG9lcyBpdCBiZWNvbWUgdXNhYmxlLlxuICAgKlxuICAgKiBSZXR1cm5zIHRoZSByZWFsLCB1bndyYXBwZWQgY29tcG9uZW50IChub3QgdGhlIHByb3h5KS4gQSBjb21wb25lbnQgbWF5IGJlXG4gICAqIGF0dGFjaGVkIGV4YWN0bHkgb25jZTsgYXR0YWNoaW5nIGFuIGFscmVhZHktYXR0YWNoZWQgY29tcG9uZW50IHRocm93cyAoY29weVxuICAgKiBpdCBmaXJzdCB0byBhdHRhY2ggYSB2YXJpYW50IGVsc2V3aGVyZSkuIFVzZSBgdHJ5QXR0YWNoKClgIGlmIHlvdSBkb24ndCBjYXJlXG4gICAqIHdoZXRoZXIgaXQgaGFzIGFscmVhZHkgYmVlbiBhdHRhY2hlZC5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2goc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuYXR0YWNoZWRTdGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHt0aGlzLm5ld1RhcmdldE5hbWV9IGlzIGFscmVhZHkgYXR0YWNoZWQgdG8gJyR7dGhpcy5wcm9qZWN0Lm5vZGUucGF0aH0nLiBgICtcbiAgICAgICAgICBgVXNlIFxcYHRyeUF0dGFjaFxcYCBvciBcXGBjb3B5XFxgIGl0IHRvIGF0dGFjaCBhIHZhcmlhbnQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGNvbnN0cnVjdHMgaGFzIG5vIHB1YmxpYyByZXBhcmVudCwgc28gYnVpbGQgYSBmcmVzaCBub2RlIG9uIHRoZSByZWFsXG4gICAgLy8gc2NvcGUuIFRoZSBwZXItaW5zdGFuY2Ugc2hhZG93IHJvb3QgYW5kIGl0cyBvcmlnaW5hbCBub2RlIGJlY29tZSBhblxuICAgIC8vIHVucmVhY2hhYmxlIGlzbGFuZCBhbmQgYXJlIGNvbGxlY3RlZC5cbiAgICAodGhpcyBhcyBXcml0ZWFibGVQcm9wPHRoaXMsIFwibm9kZVwiPikubm9kZSA9IG5ldyBOb2RlKFxuICAgICAgdGhpcyxcbiAgICAgIHNjb3BlLFxuICAgICAgaWQgPz8gY29tcG9uZW50SWQoc2NvcGUpLFxuICAgICk7XG5cbiAgICAvLyBUaGUgY29tcG9uZW50IGFscmVhZHkgY2FycmllcyB0aGUgY29tcG9uZW50IHRhZyAoc2V0IGJ5IHRoZSBiYXNlXG4gICAgLy8gY29uc3RydWN0b3IsIHdoaWNoIGlzIGlkZW1wb3RlbnQgYWdhaW5zdCB0aGUgc2FtZSBvYmplY3QpOyByZS1hZGQgdGhlXG4gICAgLy8gbWV0YWRhdGEgdG8gdGhlIG5ldyBub2RlIGFuZCByZXNvbHZlIHRoZSByZWFsIHByb2plY3QuXG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwidHlwZVwiLCBcImNvbXBvbmVudFwiKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJjb25zdHJ1Y3RcIiwgdGhpcy5uZXdUYXJnZXROYW1lKTtcbiAgICAodGhpcyBhcyBXcml0ZWFibGVQcm9wPHRoaXMsIFwicHJvamVjdFwiPikucHJvamVjdCA9IGZpbmRDbG9zZXN0UHJvamVjdChcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5uZXdUYXJnZXROYW1lLFxuICAgICk7XG5cbiAgICB0aGlzLmF0dGFjaGVkU3RhdGUgPSB0cnVlO1xuICAgIC8vIEZsaXAgdGhlIGd1YXJkIGludG8gdHJhbnNwYXJlbnQgcGFzcy10aHJvdWdoIGZvciBhbnkgcHJveHkgaGFuZGxlcyB0aGVcbiAgICAvLyBjYWxsZXIgc3RpbGwgaG9sZHMuIFN5bWJvbCBrZXksIHNvIHRoZSBndWFyZCBjYW4gYWx3YXlzIHJlYWQgaXQuXG4gICAgKHRoaXMgYXMgYW55KVtGVVRVUkVfQVRUQUNIRURdID0gdHJ1ZTtcblxuICAgIC8vIHByb2plY3QgaXMgbm93IGF2YWlsYWJsZSwgcnVuIHByb2plY3QtZGVwZW5kZW50IHNldHVwXG4gICAgdGhpcy5pbml0KCk7XG5cbiAgICAvLyBoYW5kIGJhY2sgdGhlIGJhcmUgb2JqZWN0IHNvIHRoZSBjYWxsZXIgY2FuIGRyb3AgdGhlIHByb3h5IGVudGlyZWx5XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIHRoZSBjb21wb25lbnQgaWYgaXQgaXNuJ3QgYWxyZWFkeSwgd2l0aG91dCBjYXJpbmcgKndoZXJlKi5cbiAgICpcbiAgICogVW5saWtlIGBhdHRhY2goKWAsIG5ldmVyIHRocm93cyBvbiBhbiBhbHJlYWR5LWF0dGFjaGVkIGNvbXBvbmVudDogaWYgYXR0YWNoZWRcbiAgICogYW55d2hlcmUgYXQgYWxsLCB0aGUgZXhpc3RpbmcgaW5zdGFuY2UgaXMgcmV0dXJuZWQgYW5kIGBzY29wZWAgaXMgaWdub3JlZC5cbiAgICogVXNlIGBhdHRhY2goKWAgd2hlbiBhdHRhY2hpbmcgdG8gYSBzcGVjaWZpYyBzY29wZSBpcyBwYXJ0IG9mIHlvdXIgY29udHJhY3RcbiAgICogYW5kIGEgcHJlLWV4aXN0aW5nIGF0dGFjaG1lbnQgZWxzZXdoZXJlIHdvdWxkIGJlIGEgYnVnLlxuICAgKi9cbiAgcHVibGljIHRyeUF0dGFjaChzY29wZTogSUNvbnN0cnVjdCwgaWQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2hlZFN0YXRlID8gdGhpcyA6IHRoaXMuYXR0YWNoKHNjb3BlLCBpZCk7XG4gIH1cbn1cbiJdfQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsMkNBQTREO0FBRTVELGtEQUsyQjtBQUUzQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztBQUNsRCxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN4QyxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLE9BQU8sU0FBUyxNQUFNLEVBQUUsQ0FBQztBQUMzQixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsc0JBQVM7O0lBQ3RDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFNO1FBQzlCLE9BQU8sSUFBQSx3QkFBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFZSxPQUFPLENBQVU7SUFFakMsWUFBWSxLQUFpQixFQUFFLEVBQVc7UUFDeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUEsMkJBQWMsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLCtC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Q0FDbkIsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLHlFQUF5RTtRQUN6RSxtRUFBbUU7UUFDbEUsSUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUV0Qyx3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosc0VBQXNFO1FBQ3RFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsS0FBaUIsRUFBRSxFQUFXO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDOztBQTNGSCwwQ0E0RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBOb2RlLCBSb290Q29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB0eXBlIHsgSW5pdFByb2plY3QsIFByb2plY3QgfSBmcm9tIFwiLi9wcm9qZWN0XCI7XG5pbXBvcnQge1xuICBpc0NvbXBvbmVudCxcbiAgZmluZENsb3Nlc3RQcm9qZWN0LFxuICB0YWdBc0NvbXBvbmVudCxcbiAgdGFnQXNQcm9qZWN0LFxufSBmcm9tIFwiLi91dGlsL2NvbnN0cnVjdHNcIjtcblxuY29uc3QgYXV0b0lkcyA9IG5ldyBXZWFrTWFwPElDb25zdHJ1Y3QsIG51bWJlcj4oKTtcbmNvbnN0IGNvbXBvbmVudElkID0gKHNjb3BlOiBJQ29uc3RydWN0KSA9PiB7XG4gIGNvbnN0IG5leHRJZCA9IChhdXRvSWRzLmdldChzY29wZSkgPz8gMCkgKyAxO1xuICBhdXRvSWRzLnNldChzY29wZSwgbmV4dElkKTtcbiAgcmV0dXJuIGBBdXRvSWQke25leHRJZH1gO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHJvamVjdCBjb21wb25lbnQuXG4gKiBAcGFyYW0gcHJvamVjdFxuICogQHBhcmFtIGlkIFVuaXF1ZSBpZCBvZiB0aGUgY29tcG9uZW50LiBJZiBub3QgcHJvdmlkZWQsIGFuIHVuc3RhYmxlIEF1dG9JZCBpcyBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGVzdCB3aGV0aGVyIHRoZSBnaXZlbiBjb25zdHJ1Y3QgaXMgYSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ29tcG9uZW50KHg6IGFueSk6IHggaXMgQ29tcG9uZW50IHtcbiAgICByZXR1cm4gaXNDb21wb25lbnQoeCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogUHJvamVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogSUNvbnN0cnVjdCwgaWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQgfHwgYCR7bmV3LnRhcmdldC5uYW1lfSMke2NvbXBvbmVudElkKHNjb3BlKX1gKTtcbiAgICB0YWdBc0NvbXBvbmVudCh0aGlzKTtcbiAgICB0aGlzLm5vZGUuYWRkTWV0YWRhdGEoXCJ0eXBlXCIsIFwiY29tcG9uZW50XCIpO1xuICAgIHRoaXMubm9kZS5hZGRNZXRhZGF0YShcImNvbnN0cnVjdFwiLCBuZXcudGFyZ2V0Lm5hbWUpO1xuXG4gICAgdGhpcy5wcm9qZWN0ID0gZmluZENsb3Nlc3RQcm9qZWN0KHNjb3BlLCBuZXcudGFyZ2V0Lm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBiZWZvcmUgc3ludGhlc2lzLlxuICAgKi9cbiAgcHVibGljIHByZVN5bnRoZXNpemUoKSB7fVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyBmaWxlcyB0byB0aGUgcHJvamVjdCBvdXRwdXQgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHN5bnRoZXNpemUoKSB7fVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYWZ0ZXIgc3ludGhlc2lzLiBPcmRlciBpcyAqbm90KiBndWFyYW50ZWVkLlxuICAgKi9cbiAgcHVibGljIHBvc3RTeW50aGVzaXplKCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIG9uY2UsIHJpZ2h0IGFmdGVyIGBzeW50aGVzaXplKClgLCBvbmx5IHdoZW4gdGhlIHByb2plY3QgaXMgY3JlYXRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqXG4gICAqIEl0IGRvZXMgbm90IHJ1biBvbiBsYXRlciBgcHJvamVuYCBpbnZvY2F0aW9ucy4gSXQgb25seSBmaXJlcyBmb3IgYHByb2plbiBuZXdgIChvciBgUHJvamVjdHMuY3JlYXRlUHJvamVjdGApLlxuICAgKiBVc2UgaXQgZm9yIGRldGVybWluaXN0aWMsIG9uZS1vZmYgZmlsZSBnZW5lcmF0aW9uLiBPcmRlciBhY3Jvc3MgY29tcG9uZW50cyBpcyBub3QgZ3VhcmFudGVlZC5cbiAgICpcbiAgICogQHBhcmFtIGluaXRQcm9qZWN0IERldGFpbHMgYWJvdXQgaG93IHRoZSBwcm9qZWN0IHdhcyBjcmVhdGVkLCBlLmcuIGl0cyB0eXBlIGFuZCB0aGUgb3JpZ2luYWwgQ0xJIGFyZ3MuXG4gICAqL1xuICBwdWJsaWMgcHJvamVjdENyZWF0aW9uKGluaXRQcm9qZWN0OiBJbml0UHJvamVjdCkge1xuICAgIGluaXRQcm9qZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBvbmNlLCByaWdodCBhZnRlciBgcG9zdFN5bnRoZXNpemUoKWAsIG9ubHkgd2hlbiB0aGUgcHJvamVjdCBpcyBjcmVhdGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICpcbiAgICogSXQgZG9lcyBub3QgcnVuIG9uIGxhdGVyIGBwcm9qZW5gIGludm9jYXRpb25zLiBJdCBvbmx5IGZpcmVzIGZvciBgcHJvamVuIG5ld2AgKG9yIGBQcm9qZWN0cy5jcmVhdGVQcm9qZWN0YCkuXG4gICAqIEl0IGlzIGFsc28gc2tpcHBlZCB3aGVuIHBvc3Qtc3ludGhlc2lzIHN0ZXBzIGFyZSBkaXNhYmxlZCwgZS5nLiBgLS1uby1wb3N0YCBvciBgUFJPSkVOX0RJU0FCTEVfUE9TVGAuXG4gICAqIFVzZSBpdCBmb3Igb25lLW9mZiBzZXR1cCB0aGF0IGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHRoZSB1c2VyLCBsaWtlIHJ1bm5pbmcgYSB0YXNrIHRvIGdpdmUgdGhlIHVzZXIgaW1tZWRpYXRlXG4gICAqIGZlZWRiYWNrIG9uIHRoZWlyIG5ldyBwcm9qZWN0LiBPcmRlciBhY3Jvc3MgY29tcG9uZW50cyBpcyBub3QgZ3VhcmFudGVlZC5cbiAgICpcbiAgICogQHBhcmFtIGluaXRQcm9qZWN0IERldGFpbHMgYWJvdXQgaG93IHRoZSBwcm9qZWN0IHdhcyBjcmVhdGVkLCBlLmcuIGl0cyB0eXBlIGFuZCB0aGUgb3JpZ2luYWwgQ0xJIGFyZ3MuXG4gICAqL1xuICBwdWJsaWMgcG9zdFByb2plY3RDcmVhdGlvbihpbml0UHJvamVjdDogSW5pdFByb2plY3QpIHtcbiAgICBpbml0UHJvamVjdDtcbiAgfVxufVxuXG4vKipcbiAqIEludGVybmFsIGZsYWcga2V5IHJlYWQgYnkgdGhlIGRldGFjaGVkLWd1YXJkIHByb3h5LiBBIHN5bWJvbCBzbyBpdCBuZXZlclxuICogY29sbGlkZXMgd2l0aCBhIHJlYWwgKHN0cmluZy1rZXllZCkgbWVtYmVyIGFuZCBpcyBhbHdheXMgcmVhZGFibGUgdGhyb3VnaCB0aGVcbiAqIGd1YXJkIChzeW1ib2wgYWNjZXNzIGlzIG5ldmVyIGJsb2NrZWQpLlxuICovXG5jb25zdCBGVVRVUkVfQVRUQUNIRUQgPSBTeW1ib2wuZm9yKFwicHJvamVuLmZ1dHVyZS5hdHRhY2hlZFwiKTtcblxuLyoqXG4gKiBUaGUgbWVtYmVycyBhIGRldGFjaGVkIGZ1dHVyZSBjb21wb25lbnQgaXMgYWxsb3dlZCB0byBleHBvc2UuIFJlYWRpbmcgYW55dGhpbmdcbiAqIGVsc2UgYmVmb3JlIGF0dGFjaCB0aHJvd3MuIChgY29weWAgaXMgdGhlIGNvcHlhYmxlIGNhcGFiaWxpdHkgbWV0aG9kIGFcbiAqIGNvcHlhYmxlIHN1YmNsYXNzIGFkZHMsIHBlciB0aGUgYHJlY3JlYXRlKClgIGNvbnZlbnRpb24uKVxuICovXG5jb25zdCBERVRBQ0hFRF9BTExPV0xJU1QgPSBuZXcgU2V0PFByb3BlcnR5S2V5PihbXG4gIFwiYXR0YWNoXCIsXG4gIFwidHJ5QXR0YWNoXCIsXG4gIFwiYXR0YWNoZWRcIixcbiAgXCJjb3B5XCIsXG4gIFwiY29uc3RydWN0b3JcIixcbiAgXCJ0b1N0cmluZ1wiLFxuXSk7XG5cbi8qKlxuICogV3JhcCBhIGZyZXNobHkgY29uc3RydWN0ZWQge0BsaW5rIEZ1dHVyZUNvbXBvbmVudH0gaW4gYSBndWFyZCBwcm94eS5cbiAqXG4gKiBUd28gam9iczpcbiAqXG4gKiAxLiBCbG9jayB1c2UgYmVmb3JlIGF0dGFjaC4gV2hpbGUgZGV0YWNoZWQsIGFueSBwcm9wZXJ0eSByZWFkIG91dHNpZGVcbiAqICAgIHtAbGluayBERVRBQ0hFRF9BTExPV0xJU1R9IChhbmQgb3V0c2lkZSBzeW1ib2wga2V5cywgd2hpY2ggYWx3YXlzIHBhc3Mgc29cbiAqICAgIGBpbnN0YW5jZW9mYCwganNpaSBhbmQgaW5zcGVjdGlvbiBrZWVwIHdvcmtpbmcpIHRocm93cyBpbnN0ZWFkIG9mIHNpbGVudGx5XG4gKiAgICByZXR1cm5pbmcgc2hhZG93LXRyZWUgc3RhdGUuXG4gKiAyLiBcIkRyb3BcIiBpdHNlbGYgb24gYXR0YWNoLiBPbmNlIGF0dGFjaGVkLCB0aGUgZ3VhcmQgaXMgYSB0cmFuc3BhcmVudFxuICogICAgcGFzcy10aHJvdWdoOiBhIHNpbmdsZSBib29sZWFuIGNoZWNrLCB0aGVuIGBSZWZsZWN0YC4gRXZlcnkgbWV0aG9kIGl0XG4gKiAgICByZXR1cm5zIGlzIGJvdW5kIHRvIHRoZSAqcmVhbCogdGFyZ2V0LCBzbyB0aGUgbW9tZW50IHlvdSBjYWxsIG9uZSBtZXRob2RcbiAqICAgIHRoZSB3b3JrIGNvbnRpbnVlcyBvbiB0aGUgYmFyZSBvYmplY3Qgd2l0aCBubyBmdXJ0aGVyIHByb3h5IHRyYXBzLlxuICpcbiAqIE9ubHkgYGdldGAgaXMgZ3VhcmRlZC4gYHNldGAgaXMgaW50ZW50aW9uYWxseSBsZWZ0IG9wZW4gc28gYSBzdWJjbGFzc1xuICogY29uc3RydWN0b3IgY2FuIGFzc2lnbiBpdHMgb3duIGZpZWxkcyAoZS5nLiBgdGhpcy5vcHRpb25zID0gb3B0aW9uc2ApLlxuICovXG5mdW5jdGlvbiBndWFyZERldGFjaGVkPFQgZXh0ZW5kcyBvYmplY3Q+KHRhcmdldDogVCk6IFQge1xuICBjb25zdCBib3VuZENhY2hlID0gbmV3IE1hcDxQcm9wZXJ0eUtleSwgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KCk7XG4gIGNvbnN0IGhhbmRsZXI6IFByb3h5SGFuZGxlcjxUPiA9IHtcbiAgICBnZXQodCwgcHJvcCkge1xuICAgICAgLy8gbmV2ZXIgcHJlc2VudCBhcyBhIHRoZW5hYmxlLCBvciBgYXdhaXQgZnV0dXJlQ29tcG9uZW50YCB3b3VsZCBoYW5nL3Rocm93XG4gICAgICBpZiAocHJvcCA9PT0gXCJ0aGVuXCIpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXR0YWNoZWQgPSAodCBhcyBhbnkpW0ZVVFVSRV9BVFRBQ0hFRF0gPT09IHRydWU7XG4gICAgICBjb25zdCBhbGxvd2VkID1cbiAgICAgICAgYXR0YWNoZWQgfHwgdHlwZW9mIHByb3AgIT09IFwic3RyaW5nXCIgfHwgREVUQUNIRURfQUxMT1dMSVNULmhhcyhwcm9wKTtcblxuICAgICAgaWYgKCFhbGxvd2VkKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSAodCBhcyBhbnkpLm5ld1RhcmdldE5hbWUgPz8gdC5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENhbm5vdCBhY2Nlc3MgJyR7U3RyaW5nKHByb3ApfScgb24gJHtuYW1lfTogYSBmdXR1cmUgY29tcG9uZW50IGlzIGAgK1xuICAgICAgICAgICAgYG5vdCB1c2FibGUgdW50aWwgaXQgaXMgYXR0YWNoZWQuIENhbGwgYXR0YWNoKHNjb3BlKSBmaXJzdCwgb3IgcGFzcyBgICtcbiAgICAgICAgICAgIGBpdCB0byBhIFByb2plY3Qgd2hpY2ggYXR0YWNoZXMgaXQgZm9yIHlvdS5gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBiaW5kIGZ1bmN0aW9ucyB0byB0aGUgKnJlYWwqIHRhcmdldCBzbyB0aGF0LCBvbmNlIGludm9rZWQsIGFsbCBpbnRlcm5hbFxuICAgICAgLy8gYHRoaXNgIGFjY2VzcyBoYXBwZW5zIG9uIHRoZSBiYXJlIG9iamVjdCB3aXRoIG5vIHByb3h5IGludm9sdmVtZW50LlxuICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0LCBwcm9wLCB0KTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBsZXQgYm91bmQgPSBib3VuZENhY2hlLmdldChwcm9wKTtcbiAgICAgICAgaWYgKCFib3VuZCkge1xuICAgICAgICAgIGJvdW5kID0gKHZhbHVlIGFzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55KS5iaW5kKHQpO1xuICAgICAgICAgIGJvdW5kQ2FjaGUuc2V0KHByb3AsIGJvdW5kKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYm91bmQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIG5ldyBQcm94eSh0YXJnZXQsIGhhbmRsZXIpO1xufVxuXG4vKipcbiAqIE1ha2UgYSBzcGVjaWZpYyBwcm9wZXJ0eSB3cml0YWJsZSBhZ2Fpbi5cbiAqL1xudHlwZSBXcml0ZWFibGVQcm9wPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiB7XG4gIC1yZWFkb25seSBbUCBpbiBLXTogVFtQXTtcbn07XG5cbi8qKlxuICogQSB7QGxpbmsgQ29tcG9uZW50fSB0aGF0IGlzIGNyZWF0ZWQgKmRldGFjaGVkKiBmcm9tIGFueSBwcm9qZWN0IGFuZCBhdHRhY2hlZFxuICogdG8gb25lIGxhdGVyIHZpYSB7QGxpbmsgRnV0dXJlQ29tcG9uZW50LmF0dGFjaH0uXG4gKlxuICogTGlrZSBhIHJlZ3VsYXIgY29tcG9uZW50LCBidXQgY29uc3RydWN0ZWQgd2l0aG91dCBhIHByb2plY3QuIEl0IGltcHJvdmVzIG9uIGFcbiAqIG5haXZlIGRlZmVycmVkIGNvbXBvbmVudCBpbiB0aHJlZSB3YXlzOlxuICpcbiAqIC0gVXNlLWJlZm9yZS1hdHRhY2ggaXMgYW4gZXJyb3IsIG5vdCBhIHNpbGVudCBmb290Z3VuLiBUaGUgY29uc3RydWN0b3IgaGFuZHNcbiAqICAgdGhlIGNhbGxlciBhIGd1YXJkIHByb3h5OyB0b3VjaGluZyBgcHJvamVjdGAsIGBub2RlYCwgYHN5bnRoZXNpemUoKWAgb3IgYW55XG4gKiAgIHN1YmNsYXNzIGZlYXR1cmUgYmVmb3JlIGBhdHRhY2goKWAgdGhyb3dzLlxuICogLSBObyBnbG9iYWwgc2hhZG93LXRyZWUgbGVhay4gRWFjaCBpbnN0YW5jZSBnZXRzIGl0cyBvd24gdGhyb3dhd2F5IHNoYWRvd1xuICogICByb290LCBzbyBkZXRhY2hlZCBjb21wb25lbnRzIG5ldmVyIHNoYXJlIGFuIGlkIGNvdW50ZXIgYW5kIHRoZSByb290IGJlY29tZXNcbiAqICAgZ2FyYmFnZSBvbmNlIHRoZSBjb21wb25lbnQgaXMgcmVwYXJlbnRlZCBvbiBhdHRhY2guXG4gKiAtIGBhdHRhY2goKWAgcmV0dXJucyB0aGUgdW53cmFwcGVkIGNvbXBvbmVudCwgc28gY2FsbGVycyBjYW4gb3B0IG91dCBvZiB0aGVcbiAqICAgcHJveHkgZW50aXJlbHkuXG4gKlxuICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIG5vIGFyZ3VtZW50cyAoYHN1cGVyKClgKS4gQSBzdWJjbGFzcyB0aGF0IG5lZWRzIG9wdGlvbnNcbiAqIGNhcHR1cmVzIHRoZW0gaXRzZWxmLCByZWFkaW5nIHRoZSBsb2NhbCBwYXJhbWV0ZXIgaW5zaWRlIGl0cyBjb25zdHJ1Y3RvciAtIE5PVFxuICogYHRoaXMub3B0aW9uc2AsIHdoaWNoIHRoZSBndWFyZCBibG9ja3MgdW50aWwgYXR0YWNoLlxuICpcbiAqIGBgYHRzXG4gKiBjbGFzcyBXb3JrZXIgZXh0ZW5kcyBGdXR1cmVDb21wb25lbnQge1xuICogICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFdvcmtlck9wdGlvbnM7XG4gKiAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdvcmtlck9wdGlvbnMgPSB7fSkge1xuICogICAgIHN1cGVyKCk7XG4gKiAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9uczsgLy8gc2V0OiBhbGxvd2VkXG4gKiAgIH1cbiAqICAgcHJvdGVjdGVkIGluaXQoKSB7XG4gKiAgICAgLy8gdGhpcy5wcm9qZWN0IGlzIGF2YWlsYWJsZSBoZXJlXG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBjb25zdCB3ID0gbmV3IFdvcmtlcih7IHJldHJpZXM6IDMgfSk7XG4gKiAvLyB3LnByb2plY3Q7ICAgICAgICAgICAgICAgICAgLy8gdGhyb3dzOiBub3QgYXR0YWNoZWQgeWV0XG4gKiBjb25zdCByZWFsID0gdy5hdHRhY2gocHJvamVjdCk7IC8vIHJlcGFyZW50cywgcnVucyBpbml0KCksIHJldHVybnMgdGhlIGJhcmUgaW5zdGFuY2VcbiAqIGBgYFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRnV0dXJlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBuZXdUYXJnZXROYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgYXR0YWNoZWRTdGF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEVhY2ggZnV0dXJlIGNvbXBvbmVudCBnZXRzIGl0cyBPV04gc2hhZG93IHJvb3QuIFVubGlrZSBhIHNpbmdsZSBnbG9iYWxcbiAgICAvLyBzaGFkb3cgdHJlZSwgZGV0YWNoZWQgY29tcG9uZW50cyBuZXZlciBjb2xsaWRlIG9uIGFuIGlkIGNvdW50ZXIsIGFuZCB0aGVcbiAgICAvLyByb290IGlzIGNvbGxlY3RlZCBvbmNlIHdlIHJlcGFyZW50IG9uIGF0dGFjaCgpLlxuICAgIGNvbnN0IHNoYWRvdyA9IG5ldyBSb290Q29uc3RydWN0KCk7XG4gICAgdGFnQXNQcm9qZWN0KHNoYWRvdyk7XG4gICAgc3VwZXIoc2hhZG93KTtcblxuICAgIHRoaXMubmV3VGFyZ2V0TmFtZSA9IG5ldy50YXJnZXQubmFtZTtcblxuICAgIC8vIEhhbmQgdGhlIGNhbGxlciBhIGd1YXJkZWQgcHJveHkuIGB0aGlzYCBoZXJlIGlzIHN0aWxsIHRoZSBiYXJlIG9iamVjdDtcbiAgICAvLyByZXR1cm5pbmcgaXQgbWFrZXMgdGhlIHByb3h5IHRoZSBpbnN0YW5jZSBzZWVuIGJ5IGBuZXdgLiBCZWNhdXNlIHRoZSBiYXNlXG4gICAgLy8gY29uc3RydWN0b3IgcmV0dXJucyBhbiBvYmplY3QsIHN1YmNsYXNzIGNvbnN0cnVjdG9ycyB0cmFuc3BhcmVudGx5IGFkb3B0XG4gICAgLy8gdGhlIHByb3h5IGFzIHRoZWlyIGB0aGlzYCB0b28uXG4gICAgcmV0dXJuIGd1YXJkRGV0YWNoZWQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBgYXR0YWNoKClgIGhhcyBiZWVuIGNhbGxlZC4gQSBjb252ZW5pZW5jZSBmb3IgdGVzdHMvaW50cm9zcGVjdGlvbjtcbiAgICogcHJlZmVyIGB0cnlBdHRhY2goKWAgb3ZlciByZWFkaW5nIHRoaXMgYW5kIGJyYW5jaGluZy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXR0YWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9qZWN0LWRlcGVuZGVudCBzZXR1cC4gUnVucyBvbmNlLCBmcm9tIGBhdHRhY2goKWAsIHdoZW4gYHRoaXMucHJvamVjdGAgaXNcbiAgICogZmluYWxseSBhdmFpbGFibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdCgpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCB0aGUgY29tcG9uZW50IHRvIGEgc2NvcGUuIE9ubHkgbm93IGRvZXMgaXQgYmVjb21lIHVzYWJsZS5cbiAgICpcbiAgICogUmV0dXJucyB0aGUgcmVhbCwgdW53cmFwcGVkIGNvbXBvbmVudCAobm90IHRoZSBwcm94eSkuIEEgY29tcG9uZW50IG1heSBiZVxuICAgKiBhdHRhY2hlZCBleGFjdGx5IG9uY2U7IGF0dGFjaGluZyBhbiBhbHJlYWR5LWF0dGFjaGVkIGNvbXBvbmVudCB0aHJvd3MgKGNvcHlcbiAgICogaXQgZmlyc3QgdG8gYXR0YWNoIGEgdmFyaWFudCBlbHNld2hlcmUpLiBVc2UgYHRyeUF0dGFjaCgpYCBpZiB5b3UgZG9uJ3QgY2FyZVxuICAgKiB3aGV0aGVyIGl0IGhhcyBhbHJlYWR5IGJlZW4gYXR0YWNoZWQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoKHNjb3BlOiBJQ29uc3RydWN0LCBpZD86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmF0dGFjaGVkU3RhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5uZXdUYXJnZXROYW1lfSBpcyBhbHJlYWR5IGF0dGFjaGVkIHRvICcke3RoaXMucHJvamVjdC5ub2RlLnBhdGh9Jy4gYCArXG4gICAgICAgICAgYFVzZSBcXGB0cnlBdHRhY2hcXGAgb3IgXFxgY29weVxcYCBpdCB0byBhdHRhY2ggYSB2YXJpYW50LmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBjb25zdHJ1Y3RzIGhhcyBubyBwdWJsaWMgcmVwYXJlbnQsIHNvIGJ1aWxkIGEgZnJlc2ggbm9kZSBvbiB0aGUgcmVhbFxuICAgIC8vIHNjb3BlLiBUaGUgcGVyLWluc3RhbmNlIHNoYWRvdyByb290IGFuZCBpdHMgb3JpZ2luYWwgbm9kZSBiZWNvbWUgYW5cbiAgICAvLyB1bnJlYWNoYWJsZSBpc2xhbmQgYW5kIGFyZSBjb2xsZWN0ZWQuXG4gICAgKHRoaXMgYXMgV3JpdGVhYmxlUHJvcDx0aGlzLCBcIm5vZGVcIj4pLm5vZGUgPSBuZXcgTm9kZShcbiAgICAgIHRoaXMsXG4gICAgICBzY29wZSxcbiAgICAgIGlkID8/IGNvbXBvbmVudElkKHNjb3BlKSxcbiAgICApO1xuXG4gICAgLy8gVGhlIGNvbXBvbmVudCBhbHJlYWR5IGNhcnJpZXMgdGhlIGNvbXBvbmVudCB0YWcgKHNldCBieSB0aGUgYmFzZVxuICAgIC8vIGNvbnN0cnVjdG9yLCB3aGljaCBpcyBpZGVtcG90ZW50IGFnYWluc3QgdGhlIHNhbWUgb2JqZWN0KTsgcmUtYWRkIHRoZVxuICAgIC8vIG1ldGFkYXRhIHRvIHRoZSBuZXcgbm9kZSBhbmQgcmVzb2x2ZSB0aGUgcmVhbCBwcm9qZWN0LlxuICAgIHRoaXMubm9kZS5hZGRNZXRhZGF0YShcInR5cGVcIiwgXCJjb21wb25lbnRcIik7XG4gICAgdGhpcy5ub2RlLmFkZE1ldGFkYXRhKFwiY29uc3RydWN0XCIsIHRoaXMubmV3VGFyZ2V0TmFtZSk7XG4gICAgKHRoaXMgYXMgV3JpdGVhYmxlUHJvcDx0aGlzLCBcInByb2plY3RcIj4pLnByb2plY3QgPSBmaW5kQ2xvc2VzdFByb2plY3QoXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMubmV3VGFyZ2V0TmFtZSxcbiAgICApO1xuXG4gICAgdGhpcy5hdHRhY2hlZFN0YXRlID0gdHJ1ZTtcbiAgICAvLyBGbGlwIHRoZSBndWFyZCBpbnRvIHRyYW5zcGFyZW50IHBhc3MtdGhyb3VnaCBmb3IgYW55IHByb3h5IGhhbmRsZXMgdGhlXG4gICAgLy8gY2FsbGVyIHN0aWxsIGhvbGRzLiBTeW1ib2wga2V5LCBzbyB0aGUgZ3VhcmQgY2FuIGFsd2F5cyByZWFkIGl0LlxuICAgICh0aGlzIGFzIGFueSlbRlVUVVJFX0FUVEFDSEVEXSA9IHRydWU7XG5cbiAgICAvLyBwcm9qZWN0IGlzIG5vdyBhdmFpbGFibGUsIHJ1biBwcm9qZWN0LWRlcGVuZGVudCBzZXR1cFxuICAgIHRoaXMuaW5pdCgpO1xuXG4gICAgLy8gaGFuZCBiYWNrIHRoZSBiYXJlIG9iamVjdCBzbyB0aGUgY2FsbGVyIGNhbiBkcm9wIHRoZSBwcm94eSBlbnRpcmVseVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCB0aGUgY29tcG9uZW50IGlmIGl0IGlzbid0IGFscmVhZHksIHdpdGhvdXQgY2FyaW5nICp3aGVyZSouXG4gICAqXG4gICAqIFVubGlrZSBgYXR0YWNoKClgLCBuZXZlciB0aHJvd3Mgb24gYW4gYWxyZWFkeS1hdHRhY2hlZCBjb21wb25lbnQ6IGlmIGF0dGFjaGVkXG4gICAqIGFueXdoZXJlIGF0IGFsbCwgdGhlIGV4aXN0aW5nIGluc3RhbmNlIGlzIHJldHVybmVkIGFuZCBgc2NvcGVgIGlzIGlnbm9yZWQuXG4gICAqIFVzZSBgYXR0YWNoKClgIHdoZW4gYXR0YWNoaW5nIHRvIGEgc3BlY2lmaWMgc2NvcGUgaXMgcGFydCBvZiB5b3VyIGNvbnRyYWN0XG4gICAqIGFuZCBhIHByZS1leGlzdGluZyBhdHRhY2htZW50IGVsc2V3aGVyZSB3b3VsZCBiZSBhIGJ1Zy5cbiAgICovXG4gIHB1YmxpYyB0cnlBdHRhY2goc2NvcGU6IElDb25zdHJ1Y3QsIGlkPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoZWRTdGF0ZSA/IHRoaXMgOiB0aGlzLmF0dGFjaChzY29wZSwgaWQpO1xuICB9XG59XG4iXX0=
|
package/lib/dependencies.js
CHANGED
|
@@ -51,7 +51,7 @@ const json_1 = require("./json");
|
|
|
51
51
|
* `nodeProject.addDeps()` or use the generic API of `project.deps`:
|
|
52
52
|
*/
|
|
53
53
|
class Dependencies extends component_1.Component {
|
|
54
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.101.
|
|
54
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Dependencies", version: "0.101.9" };
|
|
55
55
|
/**
|
|
56
56
|
* The project-relative path of the deps manifest file.
|
|
57
57
|
*/
|
package/lib/dev-env.js
CHANGED
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* Options for specifying the Docker image of the container.
|
|
7
7
|
*/
|
|
8
8
|
class DevEnvironmentDockerImage {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DevEnvironmentDockerImage", version: "0.101.9" };
|
|
10
10
|
/**
|
|
11
11
|
* A publicly available Docker image.
|
|
12
12
|
* @example 'ubuntu:latest'
|
|
@@ -7,7 +7,7 @@ const docker_compose_1 = require("./docker-compose");
|
|
|
7
7
|
* A docker-compose service.
|
|
8
8
|
*/
|
|
9
9
|
class DockerComposeService {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerComposeService", version: "0.101.9" };
|
|
11
11
|
/**
|
|
12
12
|
* Name of the service.
|
|
13
13
|
*/
|
|
@@ -11,7 +11,7 @@ const yaml_1 = require("../yaml");
|
|
|
11
11
|
* Create a docker-compose YAML file.
|
|
12
12
|
*/
|
|
13
13
|
class DockerCompose extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.101.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.DockerCompose", version: "0.101.9" };
|
|
15
15
|
/**
|
|
16
16
|
* Depends on a service name.
|
|
17
17
|
*/
|
package/lib/file.js
CHANGED
|
@@ -45,7 +45,7 @@ const util_1 = require("./util");
|
|
|
45
45
|
const constructs_1 = require("./util/constructs");
|
|
46
46
|
const diff_1 = require("./util/diff");
|
|
47
47
|
class FileBase extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.101.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.FileBase", version: "0.101.9" };
|
|
49
49
|
/**
|
|
50
50
|
* The file path, relative to the project's outdir.
|
|
51
51
|
*/
|
package/lib/gitattributes.js
CHANGED
|
@@ -32,7 +32,7 @@ var EndOfLine;
|
|
|
32
32
|
* @see https://git-scm.com/docs/gitattributes
|
|
33
33
|
*/
|
|
34
34
|
class GitAttributesFile extends file_1.FileBase {
|
|
35
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.GitAttributesFile", version: "0.101.
|
|
35
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.GitAttributesFile", version: "0.101.9" };
|
|
36
36
|
attributes = new Map();
|
|
37
37
|
/**
|
|
38
38
|
* The default end of line character for text files.
|
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
* Manage the versions used for GitHub Actions used in steps
|
|
7
7
|
*/
|
|
8
8
|
class GitHubActionsProvider {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubActionsProvider", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubActionsProvider", version: "0.101.9" };
|
|
10
10
|
actions = new Map();
|
|
11
11
|
/**
|
|
12
12
|
* Define an override for a given action.
|
|
@@ -9,7 +9,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
9
9
|
* Auto approve pull requests that meet a criteria
|
|
10
10
|
*/
|
|
11
11
|
class AutoApprove extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoApprove", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoApprove", version: "0.101.9" };
|
|
13
13
|
label;
|
|
14
14
|
constructor(github, options = {}) {
|
|
15
15
|
super(github.project);
|
package/lib/github/auto-merge.js
CHANGED
|
@@ -19,7 +19,7 @@ const component_1 = require("../component");
|
|
|
19
19
|
* @see https://mergify.com/
|
|
20
20
|
*/
|
|
21
21
|
class AutoMerge extends component_1.Component {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoMerge", version: "0.101.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoMerge", version: "0.101.9" };
|
|
23
23
|
lazyConditions = new Array();
|
|
24
24
|
constructor(github, options = {}) {
|
|
25
25
|
super(github.project);
|
package/lib/github/auto-queue.js
CHANGED
|
@@ -54,7 +54,7 @@ var MergeMethod;
|
|
|
54
54
|
* PRs will be merged once they pass required checks.
|
|
55
55
|
*/
|
|
56
56
|
class AutoQueue extends component_1.Component {
|
|
57
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.101.
|
|
57
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.AutoQueue", version: "0.101.9" };
|
|
58
58
|
constructor(scope, options = {}) {
|
|
59
59
|
super(scope);
|
|
60
60
|
const workflowEngine = github_1.GitHub.of(this.project);
|
package/lib/github/dependabot.js
CHANGED
|
@@ -166,7 +166,7 @@ var VersioningStrategy;
|
|
|
166
166
|
* on the lockfile itself will be proposed.
|
|
167
167
|
*/
|
|
168
168
|
class Dependabot extends component_1.Component {
|
|
169
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.101.
|
|
169
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Dependabot", version: "0.101.9" };
|
|
170
170
|
/**
|
|
171
171
|
* The raw dependabot configuration.
|
|
172
172
|
* @see https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
@@ -15,7 +15,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
15
15
|
* @see https://github.com/actions/dependency-review-action
|
|
16
16
|
*/
|
|
17
17
|
class DependencyReview extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.DependencyReview", version: "0.101.9" };
|
|
19
19
|
constructor(github, options = {}) {
|
|
20
20
|
super(github.project);
|
|
21
21
|
const commentSummary = options.commentSummaryInPr ?? "always";
|
|
@@ -41,7 +41,7 @@ const Case = __importStar(require("case"));
|
|
|
41
41
|
*/
|
|
42
42
|
class GithubCredentials {
|
|
43
43
|
options;
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.101.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubCredentials", version: "0.101.9" };
|
|
45
45
|
/**
|
|
46
46
|
* Provide API access through a GitHub personal access token.
|
|
47
47
|
*
|
|
@@ -21,7 +21,7 @@ const vscode_1 = require("../vscode");
|
|
|
21
21
|
* "engines" can be used to implement our CI/CD solutions.
|
|
22
22
|
*/
|
|
23
23
|
class GitHubProject extends project_1.Project {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.101.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.101.9" };
|
|
25
25
|
/**
|
|
26
26
|
* Access all github components.
|
|
27
27
|
*
|
package/lib/github/github.js
CHANGED
|
@@ -15,7 +15,7 @@ const workflow_steps_1 = require("./workflow-steps");
|
|
|
15
15
|
const workflows_1 = require("./workflows");
|
|
16
16
|
const component_1 = require("../component");
|
|
17
17
|
class GitHub extends component_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHub", version: "0.101.9" };
|
|
19
19
|
/**
|
|
20
20
|
* Returns the `GitHub` component of a project or `undefined` if the project
|
|
21
21
|
* does not have a GitHub component.
|
|
@@ -10,7 +10,7 @@ const github_1 = require("./github");
|
|
|
10
10
|
*/
|
|
11
11
|
class MergeQueue extends component_1.Component {
|
|
12
12
|
options;
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.MergeQueue", version: "0.101.9" };
|
|
14
14
|
constructor(scope, options = {}) {
|
|
15
15
|
super(scope);
|
|
16
16
|
this.options = options;
|
package/lib/github/mergify.js
CHANGED
|
@@ -6,7 +6,7 @@ const component_1 = require("../component");
|
|
|
6
6
|
const util_1 = require("../util");
|
|
7
7
|
const yaml_1 = require("../yaml");
|
|
8
8
|
class Mergify extends component_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.101.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Mergify", version: "0.101.9" };
|
|
10
10
|
rules = new Array();
|
|
11
11
|
queues = new Array();
|
|
12
12
|
// The actual YAML file will only be created if at least 1 rule is added.
|
|
@@ -7,7 +7,7 @@ const textfile_1 = require("../textfile");
|
|
|
7
7
|
* Template for GitHub pull requests.
|
|
8
8
|
*/
|
|
9
9
|
class PullRequestTemplate extends textfile_1.TextFile {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestTemplate", version: "0.101.9" };
|
|
11
11
|
/**
|
|
12
12
|
* Returns the `PullRequestTemplate` instance associated with a project or `undefined` if
|
|
13
13
|
* there is no PullRequestTemplate.
|
|
@@ -9,7 +9,7 @@ const component_1 = require("../component");
|
|
|
9
9
|
const json_1 = require("../json");
|
|
10
10
|
const release_1 = require("../release");
|
|
11
11
|
class PullRequestBackport extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestBackport", version: "0.101.9" };
|
|
13
13
|
file;
|
|
14
14
|
workflow;
|
|
15
15
|
constructor(scope, options = {}) {
|
|
@@ -13,7 +13,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
13
13
|
class PullRequestLint extends component_1.Component {
|
|
14
14
|
github;
|
|
15
15
|
options;
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestLint", version: "0.101.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.PullRequestLint", version: "0.101.9" };
|
|
17
17
|
constructor(github, options = {}) {
|
|
18
18
|
super(github.project);
|
|
19
19
|
this.github = github;
|
package/lib/github/stale.js
CHANGED
|
@@ -18,7 +18,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
18
18
|
* @see https://github.com/actions/stale
|
|
19
19
|
*/
|
|
20
20
|
class Stale extends component_1.Component {
|
|
21
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Stale", version: "0.101.
|
|
21
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.Stale", version: "0.101.9" };
|
|
22
22
|
constructor(github, options = {}) {
|
|
23
23
|
super(github.project);
|
|
24
24
|
const stale = github.addWorkflow("stale");
|
|
@@ -13,7 +13,7 @@ const util_1 = require("./private/util");
|
|
|
13
13
|
* @implements {Job}
|
|
14
14
|
*/
|
|
15
15
|
class TaskWorkflowJob extends component_1.Component {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflowJob", version: "0.101.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflowJob", version: "0.101.9" };
|
|
17
17
|
runsOn;
|
|
18
18
|
runsOnGroup;
|
|
19
19
|
steps;
|
|
@@ -9,7 +9,7 @@ const DEFAULT_JOB_ID = "build";
|
|
|
9
9
|
* A GitHub workflow for common build tasks within a project.
|
|
10
10
|
*/
|
|
11
11
|
class TaskWorkflow extends workflows_1.GithubWorkflow {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflow", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.TaskWorkflow", version: "0.101.9" };
|
|
13
13
|
jobId;
|
|
14
14
|
artifactsDirectory;
|
|
15
15
|
constructor(github, options) {
|
|
@@ -15,7 +15,7 @@ const RUNNER_TEMP = "${{ runner.temp }}";
|
|
|
15
15
|
* A set of utility functions for creating GitHub actions in workflows.
|
|
16
16
|
*/
|
|
17
17
|
class WorkflowActions {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowActions", version: "0.101.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowActions", version: "0.101.9" };
|
|
19
19
|
/**
|
|
20
20
|
* Creates a .patch file from the current git diff and uploads it as an
|
|
21
21
|
* artifact. Use `checkoutWithPatch` to download and apply in another job.
|
|
@@ -10,7 +10,7 @@ const runner_options_1 = require("../runner-options");
|
|
|
10
10
|
* A set of utility functions for creating jobs in GitHub Workflows.
|
|
11
11
|
*/
|
|
12
12
|
class WorkflowJobs {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowJobs", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowJobs", version: "0.101.9" };
|
|
14
14
|
/**
|
|
15
15
|
* Creates a pull request with the changes of a patch file.
|
|
16
16
|
*
|
|
@@ -25,7 +25,7 @@ var CheckoutSubmodules;
|
|
|
25
25
|
* A collection of very commonly used, individual, GitHub Workflow Job steps.
|
|
26
26
|
*/
|
|
27
27
|
class WorkflowSteps {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowSteps", version: "0.101.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowSteps", version: "0.101.9" };
|
|
29
29
|
/**
|
|
30
30
|
* Checks out a repository.
|
|
31
31
|
*
|
package/lib/github/workflows.js
CHANGED
|
@@ -16,7 +16,7 @@ const yaml_1 = require("../yaml");
|
|
|
16
16
|
* @see https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
|
|
17
17
|
*/
|
|
18
18
|
class GithubWorkflow extends component_1.Component {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubWorkflow", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GithubWorkflow", version: "0.101.9" };
|
|
20
20
|
/**
|
|
21
21
|
* The name of the workflow. GitHub displays the names of your workflows under your repository's
|
|
22
22
|
* "Actions" tab.
|
|
@@ -45,7 +45,7 @@ const yaml_1 = require("../yaml");
|
|
|
45
45
|
* @see https://docs.gitlab.com/ee/ci/yaml/
|
|
46
46
|
*/
|
|
47
47
|
class CiConfiguration extends component_1.Component {
|
|
48
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.CiConfiguration", version: "0.101.
|
|
48
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.CiConfiguration", version: "0.101.9" };
|
|
49
49
|
/**
|
|
50
50
|
* The name of the configuration.
|
|
51
51
|
*/
|
|
@@ -8,7 +8,7 @@ const nested_configuration_1 = require("./nested-configuration");
|
|
|
8
8
|
* A GitLab CI for the main `.gitlab-ci.yml` file.
|
|
9
9
|
*/
|
|
10
10
|
class GitlabConfiguration extends configuration_1.CiConfiguration {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.101.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.GitlabConfiguration", version: "0.101.9" };
|
|
12
12
|
nestedTemplates = {};
|
|
13
13
|
constructor(project, options) {
|
|
14
14
|
super(project, "gitlab-ci", options);
|
|
@@ -7,7 +7,7 @@ const configuration_1 = require("./configuration");
|
|
|
7
7
|
* A GitLab CI for templates that are created and included in the `.gitlab-ci.yml` file.
|
|
8
8
|
*/
|
|
9
9
|
class NestedConfiguration extends configuration_1.CiConfiguration {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.gitlab.NestedConfiguration", version: "0.101.9" };
|
|
11
11
|
parent;
|
|
12
12
|
constructor(project, parent, name, options) {
|
|
13
13
|
super(project, name, options);
|
package/lib/gitpod.js
CHANGED
|
@@ -106,7 +106,7 @@ var GitpodPortVisibility;
|
|
|
106
106
|
* The Gitpod component which emits .gitpod.yml
|
|
107
107
|
*/
|
|
108
108
|
class Gitpod extends component_1.Component {
|
|
109
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Gitpod", version: "0.101.
|
|
109
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Gitpod", version: "0.101.9" };
|
|
110
110
|
dockerImage;
|
|
111
111
|
prebuilds;
|
|
112
112
|
tasks = new Array();
|
package/lib/ignore-file.js
CHANGED
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const file_1 = require("./file");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
7
|
class IgnoreFile extends file_1.FileBase {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IgnoreFile", version: "0.101.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IgnoreFile", version: "0.101.9" };
|
|
9
9
|
_patterns;
|
|
10
10
|
filterCommentLines;
|
|
11
11
|
filterEmptyLines;
|
package/lib/ini.js
CHANGED
|
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
|
|
|
41
41
|
* Represents an INI file.
|
|
42
42
|
*/
|
|
43
43
|
class IniFile extends object_file_1.ObjectFile {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IniFile", version: "0.101.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.IniFile", version: "0.101.9" };
|
|
45
45
|
constructor(project, filePath, options) {
|
|
46
46
|
super(project, filePath, options);
|
|
47
47
|
}
|
package/lib/java/java-project.js
CHANGED
|
@@ -16,7 +16,7 @@ const util_1 = require("../util");
|
|
|
16
16
|
* @pjid java
|
|
17
17
|
*/
|
|
18
18
|
class JavaProject extends github_1.GitHubProject {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.JavaProject", version: "0.101.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.JavaProject", version: "0.101.9" };
|
|
20
20
|
/**
|
|
21
21
|
* API for managing `pom.xml`.
|
|
22
22
|
*/
|
package/lib/java/junit.js
CHANGED
|
@@ -10,7 +10,7 @@ const TESTDIR = (0, path_1.join)("src", "test", "java");
|
|
|
10
10
|
* Implements JUnit-based testing.
|
|
11
11
|
*/
|
|
12
12
|
class Junit extends component_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Junit", version: "0.101.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Junit", version: "0.101.9" };
|
|
14
14
|
constructor(project, options) {
|
|
15
15
|
super(project);
|
|
16
16
|
const pom = options.pom;
|
|
@@ -7,7 +7,7 @@ const component_1 = require("../component");
|
|
|
7
7
|
* Adds the maven-compiler plugin to a POM file and the `compile` task.
|
|
8
8
|
*/
|
|
9
9
|
class MavenCompile extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenCompile", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenCompile", version: "0.101.9" };
|
|
11
11
|
constructor(project, pom, options = {}) {
|
|
12
12
|
super(project);
|
|
13
13
|
project.gitignore.exclude("target");
|
|
@@ -7,7 +7,7 @@ const component_1 = require("../component");
|
|
|
7
7
|
* Configures a maven project to produce a .jar archive with sources and javadocs.
|
|
8
8
|
*/
|
|
9
9
|
class MavenPackaging extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenPackaging", version: "0.101.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenPackaging", version: "0.101.9" };
|
|
11
11
|
/**
|
|
12
12
|
* The directory containing the package output, relative to the project outdir
|
|
13
13
|
*/
|
package/lib/java/maven-sample.js
CHANGED
|
@@ -9,7 +9,7 @@ const sample_file_1 = require("../sample-file");
|
|
|
9
9
|
* Java code sample.
|
|
10
10
|
*/
|
|
11
11
|
class MavenSample extends component_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenSample", version: "0.101.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.MavenSample", version: "0.101.9" };
|
|
13
13
|
constructor(project, options) {
|
|
14
14
|
super(project);
|
|
15
15
|
const pkg = options.package.split(".");
|
package/lib/java/pom.js
CHANGED
|
@@ -13,7 +13,7 @@ const POM_XML_ATTRS = {
|
|
|
13
13
|
"@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
|
|
14
14
|
};
|
|
15
15
|
class UpdatePolicy {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.UpdatePolicy", version: "0.101.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.UpdatePolicy", version: "0.101.9" };
|
|
17
17
|
static ALWAYS = "always";
|
|
18
18
|
static DAILY = "daily";
|
|
19
19
|
static NEVER = "never";
|
|
@@ -37,7 +37,7 @@ var ChecksumPolicy;
|
|
|
37
37
|
* details used by Maven to build the project.
|
|
38
38
|
*/
|
|
39
39
|
class Pom extends component_1.Component {
|
|
40
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Pom", version: "0.101.
|
|
40
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.java.Pom", version: "0.101.9" };
|
|
41
41
|
/**
|
|
42
42
|
* The name of the pom file.
|
|
43
43
|
*/
|
package/lib/java/projenrc.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Pom } from "./pom";
|
|
2
2
|
import type { ProjectOption } from "../inventory";
|
|
3
|
-
import type { Project } from "../project";
|
|
3
|
+
import type { InitProject, Project } from "../project";
|
|
4
4
|
import { ProjenrcFile } from "../projenrc";
|
|
5
5
|
/**
|
|
6
6
|
* Options for `Projenrc`.
|
|
@@ -47,6 +47,7 @@ export declare class Projenrc extends ProjenrcFile {
|
|
|
47
47
|
*/
|
|
48
48
|
private readonly testScope;
|
|
49
49
|
constructor(project: Project, pom: Pom, options?: ProjenrcOptions);
|
|
50
|
+
projectCreation(initProject: InitProject): void;
|
|
50
51
|
private get javaClass();
|
|
51
52
|
private get javaPackage();
|
|
52
53
|
/**
|