projen 0.101.7 → 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.
Files changed (163) hide show
  1. package/.jsii +439 -88
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +1 -1
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +3 -3
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/build/build-workflow.js +1 -1
  18. package/lib/cdk/auto-discover-base.js +2 -2
  19. package/lib/cdk/construct-lib.js +1 -1
  20. package/lib/cdk/integration-test-base.js +1 -1
  21. package/lib/cdk/jsii-build.js +1 -1
  22. package/lib/cdk/jsii-docgen.js +1 -1
  23. package/lib/cdk/jsii-project.js +1 -1
  24. package/lib/cdk8s/auto-discover.js +2 -2
  25. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  26. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  27. package/lib/cdk8s/cdk8s-construct.js +1 -1
  28. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  29. package/lib/cdk8s/cdk8s-deps.js +1 -1
  30. package/lib/cdk8s/integration-test.js +1 -1
  31. package/lib/cdktf/cdktf-construct.js +1 -1
  32. package/lib/circleci/circleci.js +1 -1
  33. package/lib/cli/cmds/new.js +1 -8
  34. package/lib/component.d.ts +21 -1
  35. package/lib/component.js +27 -3
  36. package/lib/dependencies.js +1 -1
  37. package/lib/dev-env.js +1 -1
  38. package/lib/docker-compose/docker-compose-service.js +1 -1
  39. package/lib/docker-compose/docker-compose.js +1 -1
  40. package/lib/file.js +1 -1
  41. package/lib/gitattributes.js +1 -1
  42. package/lib/github/actions-provider.js +1 -1
  43. package/lib/github/auto-approve.js +1 -1
  44. package/lib/github/auto-merge.js +6 -7
  45. package/lib/github/auto-queue.js +1 -1
  46. package/lib/github/dependabot.js +1 -1
  47. package/lib/github/dependency-review.js +1 -1
  48. package/lib/github/github-credentials.js +1 -1
  49. package/lib/github/github-project.js +1 -1
  50. package/lib/github/github.js +1 -1
  51. package/lib/github/merge-queue.js +1 -1
  52. package/lib/github/mergify.d.ts +32 -1
  53. package/lib/github/mergify.js +5 -2
  54. package/lib/github/pr-template.js +1 -1
  55. package/lib/github/pull-request-backport.js +1 -1
  56. package/lib/github/pull-request-lint.js +1 -1
  57. package/lib/github/stale.js +1 -1
  58. package/lib/github/task-workflow-job.js +1 -1
  59. package/lib/github/task-workflow.js +1 -1
  60. package/lib/github/workflow-actions.js +1 -1
  61. package/lib/github/workflow-jobs.js +1 -1
  62. package/lib/github/workflow-steps.js +1 -1
  63. package/lib/github/workflows.js +1 -1
  64. package/lib/gitlab/configuration.js +1 -1
  65. package/lib/gitlab/gitlab-configuration.js +1 -1
  66. package/lib/gitlab/nested-configuration.js +1 -1
  67. package/lib/gitpod.js +1 -1
  68. package/lib/ignore-file.js +1 -1
  69. package/lib/ini.js +1 -1
  70. package/lib/java/java-project.js +1 -1
  71. package/lib/java/junit.js +1 -1
  72. package/lib/java/maven-compile.js +1 -1
  73. package/lib/java/maven-packaging.js +1 -1
  74. package/lib/java/maven-sample.js +1 -1
  75. package/lib/java/pom.js +2 -2
  76. package/lib/java/projenrc.d.ts +2 -1
  77. package/lib/java/projenrc.js +6 -9
  78. package/lib/javascript/biome/biome.d.ts +5 -1
  79. package/lib/javascript/biome/biome.js +8 -2
  80. package/lib/javascript/bundler.js +1 -1
  81. package/lib/javascript/eslint.d.ts +5 -1
  82. package/lib/javascript/eslint.js +8 -2
  83. package/lib/javascript/jest.js +4 -4
  84. package/lib/javascript/license-checker.js +1 -1
  85. package/lib/javascript/node-package.js +1 -1
  86. package/lib/javascript/node-project.js +1 -1
  87. package/lib/javascript/npm-config.js +1 -1
  88. package/lib/javascript/pnpm-workspace-config.js +2 -2
  89. package/lib/javascript/pnpm-workspace.js +1 -1
  90. package/lib/javascript/prettier.js +1 -1
  91. package/lib/javascript/projenrc.d.ts +2 -1
  92. package/lib/javascript/projenrc.js +6 -8
  93. package/lib/javascript/render-options.d.ts +15 -1
  94. package/lib/javascript/render-options.js +7 -3
  95. package/lib/javascript/typescript-config.js +2 -2
  96. package/lib/javascript/upgrade-dependencies.js +2 -2
  97. package/lib/javascript/yarnrc.js +1 -1
  98. package/lib/json-patch.js +1 -1
  99. package/lib/json.js +1 -1
  100. package/lib/license.js +1 -1
  101. package/lib/logger.js +1 -1
  102. package/lib/logging.js +3 -2
  103. package/lib/makefile.js +1 -1
  104. package/lib/object-file.js +1 -1
  105. package/lib/project-build.js +1 -1
  106. package/lib/project-tree.js +1 -1
  107. package/lib/project.d.ts +19 -5
  108. package/lib/project.js +34 -11
  109. package/lib/projects.js +7 -5
  110. package/lib/projenrc-json.d.ts +2 -1
  111. package/lib/projenrc-json.js +6 -8
  112. package/lib/projenrc.js +1 -1
  113. package/lib/python/pip.js +1 -1
  114. package/lib/python/poetry.js +2 -2
  115. package/lib/python/projenrc.d.ts +2 -1
  116. package/lib/python/projenrc.js +6 -9
  117. package/lib/python/pyproject-toml-file.js +1 -1
  118. package/lib/python/pytest-sample.js +1 -1
  119. package/lib/python/pytest.js +1 -1
  120. package/lib/python/python-project.js +1 -1
  121. package/lib/python/python-sample.js +1 -1
  122. package/lib/python/requirements-file.js +1 -1
  123. package/lib/python/setuppy.js +1 -1
  124. package/lib/python/setuptools.js +1 -1
  125. package/lib/python/uv.js +1 -1
  126. package/lib/python/venv.js +1 -1
  127. package/lib/readme.js +1 -1
  128. package/lib/release/publisher.js +1 -1
  129. package/lib/release/release-trigger.js +1 -1
  130. package/lib/release/release.js +1 -1
  131. package/lib/renovatebot.js +1 -1
  132. package/lib/run-task.cjs +245 -49
  133. package/lib/sample-file.js +2 -2
  134. package/lib/script-runner.js +1 -1
  135. package/lib/source-code.js +1 -1
  136. package/lib/task-shell.js +1 -1
  137. package/lib/task.js +1 -1
  138. package/lib/tasks.js +1 -1
  139. package/lib/testing.js +1 -1
  140. package/lib/textfile.js +1 -1
  141. package/lib/toml.js +1 -1
  142. package/lib/typescript/projenrc-ts.d.ts +2 -1
  143. package/lib/typescript/projenrc-ts.js +6 -8
  144. package/lib/typescript/projenrc.d.ts +3 -1
  145. package/lib/typescript/projenrc.js +7 -9
  146. package/lib/typescript/typescript-runner.js +1 -1
  147. package/lib/typescript/typescript-typedoc.js +1 -1
  148. package/lib/typescript/typescript.js +5 -5
  149. package/lib/util/exec.d.ts +7 -0
  150. package/lib/util/exec.js +36 -13
  151. package/lib/version.js +2 -2
  152. package/lib/vscode/devcontainer.js +1 -1
  153. package/lib/vscode/extensions.js +1 -1
  154. package/lib/vscode/launch-config.js +1 -1
  155. package/lib/vscode/settings.js +1 -1
  156. package/lib/vscode/vscode.js +1 -1
  157. package/lib/web/next.js +3 -3
  158. package/lib/web/postcss.js +1 -1
  159. package/lib/web/react.js +3 -3
  160. package/lib/web/tailwind.js +1 -1
  161. package/lib/xmlfile.js +1 -1
  162. package/lib/yaml.js +1 -1
  163. package/package.json +1 -1
@@ -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.7" };
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.7" };
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=
@@ -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.7" };
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.7" };
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.7" };
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.7" };
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.7" };
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
  */
@@ -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.7" };
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.7" };
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.7" };
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);
@@ -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.7" };
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);
@@ -54,11 +54,10 @@ class AutoMerge extends component_1.Component {
54
54
  // squash all commits into a single commit when merging
55
55
  mergeMethod: "squash",
56
56
  // use PR title+body as the commit message
57
- commitMessageTemplate: [
58
- "{{ title }} (#{{ number }})",
59
- "",
60
- "{{ body }}",
61
- ].join("\n"),
57
+ commitMessageFormat: {
58
+ title: "pr-title",
59
+ body: "pr-body",
60
+ },
62
61
  });
63
62
  this.project.addPackageIgnore("/.mergify.yml");
64
63
  }
@@ -85,4 +84,4 @@ class AutoMerge extends component_1.Component {
85
84
  }
86
85
  }
87
86
  exports.AutoMerge = AutoMerge;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1tZXJnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvYXV0by1tZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsNENBQXlDO0FBNEJ6Qzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEsU0FBVSxTQUFRLHFCQUFTOztJQUNyQixjQUFjLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7SUFFbkUsWUFBWSxNQUFjLEVBQUUsVUFBNEIsRUFBRTtRQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsTUFBTTtZQUM5QyxDQUFDLENBQUMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsTUFBTSxXQUFXLEdBQUc7WUFDbEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1FBRXJELG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sUUFBUSxHQUNaLE9BQU8sQ0FBQyxRQUFRLElBQUksa0RBQWtELENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFFakQsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLFdBQVc7WUFDcEIsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQVE7U0FDbkQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsWUFBWSxFQUFFLE9BQU87WUFDckIsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQVE7WUFDdkQsdURBQXVEO1lBQ3ZELFdBQVcsRUFBRSxRQUFRO1lBQ3JCLDBDQUEwQztZQUMxQyxxQkFBcUIsRUFBRTtnQkFDckIsNkJBQTZCO2dCQUM3QixFQUFFO2dCQUNGLFlBQVk7YUFDYixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsR0FBRyxVQUFvQjtRQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsS0FBMEI7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRW5DLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUEvRUgsOEJBZ0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvTWVyZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiBhcHByb3ZlZCBjb2RlIHJldmlld3MuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVkUmV2aWV3cz86IG51bWJlcjtcblxuICAvKipcbiAgICogTGlzdCBvZiBsYWJlbHMgdGhhdCB3aWxsIHByZXZlbnQgYXV0by1tZXJnaW5nLlxuICAgKiBAZGVmYXVsdCBbJ2RvLW5vdC1tZXJnZSddXG4gICAqL1xuICByZWFkb25seSBibG9ja2luZ0xhYmVscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBtZXJnaWZ5IHJ1bGVcbiAgICogQGRlZmF1bHQgJ0F1dG9tYXRpYyBtZXJnZSBvbiBhcHByb3ZhbCBhbmQgc3VjY2Vzc2Z1bCBidWlsZCdcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBtZXJnaWZ5IHF1ZXVlXG4gICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEF1dG9tYXRpY2FsbHkgbWVyZ2UgUHVsbCBSZXF1ZXN0cyB1c2luZyBNZXJnaWZ5XG4gKlxuICogPiBbIU5PVEVdXG4gKiA+IEdpdEh1YiBub3cgbmF0aXZlbHkgcHJvdmlkZXMgdGhlIHNhbWUgZmVhdHVyZXMsIHNvIHlvdSBkb24ndCBuZWVkIE1lcmdpZnlcbiAqID4gYW55bW9yZS4gU2VlIGBHaXRIdWJPcHRpb25zLm1lcmdlUXVldWVgIGFuZCBgTWVyZ2VRdWV1ZU9wdGlvbnMuYXV0b1F1ZXVlYC5cbiAqXG4gKiBJZiBgYnVpbGRKb2JgIGlzIHNwZWNpZmllZCwgdGhlIHNwZWNpZmllZCBHaXRIdWIgd29ya2Zsb3cgam9iIElEIGlzIHJlcXVpcmVkXG4gKiB0byBzdWNjZWVkIGluIG9yZGVyIGZvciB0aGUgUFIgdG8gYmUgbWVyZ2VkLlxuICpcbiAqIGBhcHByb3ZlZFJldmlld3NgIHNwZWNpZmllZCB0aGUgbnVtYmVyIG9mIGNvZGUgcmV2aWV3IGFwcHJvdmFscyByZXF1aXJlZCBmb3JcbiAqIHRoZSBQUiB0byBiZSBtZXJnZWQuXG4gKlxuICogQHNlZSBodHRwczovL21lcmdpZnkuY29tL1xuICovXG5leHBvcnQgY2xhc3MgQXV0b01lcmdlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsYXp5Q29uZGl0aW9ucyA9IG5ldyBBcnJheTxJQWRkQ29uZGl0aW9uc0xhdGVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKGdpdGh1YjogR2l0SHViLCBvcHRpb25zOiBBdXRvTWVyZ2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihnaXRodWIucHJvamVjdCk7XG5cbiAgICBjb25zdCBtZXJnaWZ5ID0gZ2l0aHViLm1lcmdpZnk7XG4gICAgaWYgKCFtZXJnaWZ5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhdXRvIG1lcmdpbmcgcmVxdWlyZXMgbWVyZ2lmeSB0byBiZSBlbmFibGVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2NraW5nTGFiZWxzID0gb3B0aW9ucy5ibG9ja2luZ0xhYmVscyA/PyBbXCJkby1ub3QtbWVyZ2VcIl07XG4gICAgY29uc3QgYmxvY2tpbmdDb25kaXRpb24gPSBibG9ja2luZ0xhYmVscz8ubGVuZ3RoXG4gICAgICA/IFtgLWxhYmVsfj0oJHtibG9ja2luZ0xhYmVscy5qb2luKFwifFwiKX0pYF1cbiAgICAgIDogW107XG5cbiAgICBjb25zdCBtZXJnZUFjdGlvbiA9IHtcbiAgICAgIHF1ZXVlOiB7XG4gICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgYXBwcm92ZWRSZXZpZXdzID0gb3B0aW9ucy5hcHByb3ZlZFJldmlld3MgPz8gMTtcblxuICAgIC8vIGFkZCBpbml0aWFsIGNvbmRpdGlvbnMgKGFkZGl0aW9uYWwgY29uZGl0aW9ucyBjYW4gYmUgYWRkZWQgbGF0ZXIpXG4gICAgdGhpcy5hZGRDb25kaXRpb25zKGAjYXBwcm92ZWQtcmV2aWV3cy1ieT49JHthcHByb3ZlZFJldmlld3N9YCk7XG4gICAgdGhpcy5hZGRDb25kaXRpb25zKC4uLmJsb2NraW5nQ29uZGl0aW9uKTtcblxuICAgIGNvbnN0IHJ1bGVOYW1lID1cbiAgICAgIG9wdGlvbnMucnVsZU5hbWUgPz8gXCJBdXRvbWF0aWMgbWVyZ2Ugb24gYXBwcm92YWwgYW5kIHN1Y2Nlc3NmdWwgYnVpbGRcIjtcbiAgICBjb25zdCBxdWV1ZU5hbWUgPSBvcHRpb25zLnF1ZXVlTmFtZSA/PyBcImRlZmF1bHRcIjtcblxuICAgIG1lcmdpZnkuYWRkUnVsZSh7XG4gICAgICBuYW1lOiBydWxlTmFtZSxcbiAgICAgIGFjdGlvbnM6IG1lcmdlQWN0aW9uLFxuICAgICAgY29uZGl0aW9uczogKCgpID0+IHRoaXMucmVuZGVyQ29uZGl0aW9ucygpKSBhcyBhbnksXG4gICAgfSk7XG5cbiAgICBtZXJnaWZ5LmFkZFF1ZXVlKHtcbiAgICAgIG5hbWU6IHF1ZXVlTmFtZSxcbiAgICAgIHVwZGF0ZU1ldGhvZDogXCJtZXJnZVwiLFxuICAgICAgcXVldWVDb25kaXRpb25zOiAoKCkgPT4gdGhpcy5yZW5kZXJDb25kaXRpb25zKCkpIGFzIGFueSxcbiAgICAgIC8vIHNxdWFzaCBhbGwgY29tbWl0cyBpbnRvIGEgc2luZ2xlIGNvbW1pdCB3aGVuIG1lcmdpbmdcbiAgICAgIG1lcmdlTWV0aG9kOiBcInNxdWFzaFwiLFxuICAgICAgLy8gdXNlIFBSIHRpdGxlK2JvZHkgYXMgdGhlIGNvbW1pdCBtZXNzYWdlXG4gICAgICBjb21taXRNZXNzYWdlVGVtcGxhdGU6IFtcbiAgICAgICAgXCJ7eyB0aXRsZSB9fSAoI3t7IG51bWJlciB9fSlcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJ7eyBib2R5IH19XCIsXG4gICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb2plY3QuYWRkUGFja2FnZUlnbm9yZShcIi8ubWVyZ2lmeS55bWxcIik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBjb25kaXRpb25zIHRvIHRoZSBhdXRvIG1lcmdlIHJ1bGUuXG4gICAqIEBwYXJhbSBjb25kaXRpb25zIFRoZSBjb25kaXRpb25zIHRvIGFkZCAobWVyZ2lmeSBzeW50YXgpXG4gICAqL1xuICBwdWJsaWMgYWRkQ29uZGl0aW9ucyguLi5jb25kaXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYWRkQ29uZGl0aW9uc0xhdGVyKHsgcmVuZGVyOiAoKSA9PiBjb25kaXRpb25zIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY29uZGl0aW9ucyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgb25seSBkdXJpbmcgc3ludGhlc2lzLlxuICAgKiBAcGFyYW0gbGF0ZXIgVGhlIGxhdGVyXG4gICAqL1xuICBwdWJsaWMgYWRkQ29uZGl0aW9uc0xhdGVyKGxhdGVyOiBJQWRkQ29uZGl0aW9uc0xhdGVyKSB7XG4gICAgdGhpcy5sYXp5Q29uZGl0aW9ucy5wdXNoKGxhdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29uZGl0aW9ucygpIHtcbiAgICBjb25zdCBvdXRwdXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBsYXRlciBvZiB0aGlzLmxhenlDb25kaXRpb25zKSB7XG4gICAgICBvdXRwdXQucHVzaCguLi5sYXRlci5yZW5kZXIoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBZGRDb25kaXRpb25zTGF0ZXIge1xuICByZW5kZXIoKTogc3RyaW5nW107XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1tZXJnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvYXV0by1tZXJnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsNENBQXlDO0FBNEJ6Qzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEsU0FBVSxTQUFRLHFCQUFTOztJQUNyQixjQUFjLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7SUFFbkUsWUFBWSxNQUFjLEVBQUUsVUFBNEIsRUFBRTtRQUN4RCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsTUFBTTtZQUM5QyxDQUFDLENBQUMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsTUFBTSxXQUFXLEdBQUc7WUFDbEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1FBRXJELG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXpDLE1BQU0sUUFBUSxHQUNaLE9BQU8sQ0FBQyxRQUFRLElBQUksa0RBQWtELENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFFakQsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLFdBQVc7WUFDcEIsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQVE7U0FDbkQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsWUFBWSxFQUFFLE9BQU87WUFDckIsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQVE7WUFDdkQsdURBQXVEO1lBQ3ZELFdBQVcsRUFBRSxRQUFRO1lBQ3JCLDBDQUEwQztZQUMxQyxtQkFBbUIsRUFBRTtnQkFDbkIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxDQUFDLEdBQUcsVUFBb0I7UUFDMUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGtCQUFrQixDQUFDLEtBQTBCO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBOUVILDhCQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b01lcmdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgYXBwcm92ZWQgY29kZSByZXZpZXdzLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZlZFJldmlld3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbGFiZWxzIHRoYXQgd2lsbCBwcmV2ZW50IGF1dG8tbWVyZ2luZy5cbiAgICogQGRlZmF1bHQgWydkby1ub3QtbWVyZ2UnXVxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tpbmdMYWJlbHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgbWVyZ2lmeSBydWxlXG4gICAqIEBkZWZhdWx0ICdBdXRvbWF0aWMgbWVyZ2Ugb24gYXBwcm92YWwgYW5kIHN1Y2Nlc3NmdWwgYnVpbGQnXG4gICAqL1xuICByZWFkb25seSBydWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgbWVyZ2lmeSBxdWV1ZVxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWNhbGx5IG1lcmdlIFB1bGwgUmVxdWVzdHMgdXNpbmcgTWVyZ2lmeVxuICpcbiAqID4gWyFOT1RFXVxuICogPiBHaXRIdWIgbm93IG5hdGl2ZWx5IHByb3ZpZGVzIHRoZSBzYW1lIGZlYXR1cmVzLCBzbyB5b3UgZG9uJ3QgbmVlZCBNZXJnaWZ5XG4gKiA+IGFueW1vcmUuIFNlZSBgR2l0SHViT3B0aW9ucy5tZXJnZVF1ZXVlYCBhbmQgYE1lcmdlUXVldWVPcHRpb25zLmF1dG9RdWV1ZWAuXG4gKlxuICogSWYgYGJ1aWxkSm9iYCBpcyBzcGVjaWZpZWQsIHRoZSBzcGVjaWZpZWQgR2l0SHViIHdvcmtmbG93IGpvYiBJRCBpcyByZXF1aXJlZFxuICogdG8gc3VjY2VlZCBpbiBvcmRlciBmb3IgdGhlIFBSIHRvIGJlIG1lcmdlZC5cbiAqXG4gKiBgYXBwcm92ZWRSZXZpZXdzYCBzcGVjaWZpZWQgdGhlIG51bWJlciBvZiBjb2RlIHJldmlldyBhcHByb3ZhbHMgcmVxdWlyZWQgZm9yXG4gKiB0aGUgUFIgdG8gYmUgbWVyZ2VkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9tZXJnaWZ5LmNvbS9cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dG9NZXJnZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGF6eUNvbmRpdGlvbnMgPSBuZXcgQXJyYXk8SUFkZENvbmRpdGlvbnNMYXRlcj4oKTtcblxuICBjb25zdHJ1Y3RvcihnaXRodWI6IEdpdEh1Yiwgb3B0aW9uczogQXV0b01lcmdlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoZ2l0aHViLnByb2plY3QpO1xuXG4gICAgY29uc3QgbWVyZ2lmeSA9IGdpdGh1Yi5tZXJnaWZ5O1xuICAgIGlmICghbWVyZ2lmeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXV0byBtZXJnaW5nIHJlcXVpcmVzIG1lcmdpZnkgdG8gYmUgZW5hYmxlZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBibG9ja2luZ0xhYmVscyA9IG9wdGlvbnMuYmxvY2tpbmdMYWJlbHMgPz8gW1wiZG8tbm90LW1lcmdlXCJdO1xuICAgIGNvbnN0IGJsb2NraW5nQ29uZGl0aW9uID0gYmxvY2tpbmdMYWJlbHM/Lmxlbmd0aFxuICAgICAgPyBbYC1sYWJlbH49KCR7YmxvY2tpbmdMYWJlbHMuam9pbihcInxcIil9KWBdXG4gICAgICA6IFtdO1xuXG4gICAgY29uc3QgbWVyZ2VBY3Rpb24gPSB7XG4gICAgICBxdWV1ZToge1xuICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGFwcHJvdmVkUmV2aWV3cyA9IG9wdGlvbnMuYXBwcm92ZWRSZXZpZXdzID8/IDE7XG5cbiAgICAvLyBhZGQgaW5pdGlhbCBjb25kaXRpb25zIChhZGRpdGlvbmFsIGNvbmRpdGlvbnMgY2FuIGJlIGFkZGVkIGxhdGVyKVxuICAgIHRoaXMuYWRkQ29uZGl0aW9ucyhgI2FwcHJvdmVkLXJldmlld3MtYnk+PSR7YXBwcm92ZWRSZXZpZXdzfWApO1xuICAgIHRoaXMuYWRkQ29uZGl0aW9ucyguLi5ibG9ja2luZ0NvbmRpdGlvbik7XG5cbiAgICBjb25zdCBydWxlTmFtZSA9XG4gICAgICBvcHRpb25zLnJ1bGVOYW1lID8/IFwiQXV0b21hdGljIG1lcmdlIG9uIGFwcHJvdmFsIGFuZCBzdWNjZXNzZnVsIGJ1aWxkXCI7XG4gICAgY29uc3QgcXVldWVOYW1lID0gb3B0aW9ucy5xdWV1ZU5hbWUgPz8gXCJkZWZhdWx0XCI7XG5cbiAgICBtZXJnaWZ5LmFkZFJ1bGUoe1xuICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICBhY3Rpb25zOiBtZXJnZUFjdGlvbixcbiAgICAgIGNvbmRpdGlvbnM6ICgoKSA9PiB0aGlzLnJlbmRlckNvbmRpdGlvbnMoKSkgYXMgYW55LFxuICAgIH0pO1xuXG4gICAgbWVyZ2lmeS5hZGRRdWV1ZSh7XG4gICAgICBuYW1lOiBxdWV1ZU5hbWUsXG4gICAgICB1cGRhdGVNZXRob2Q6IFwibWVyZ2VcIixcbiAgICAgIHF1ZXVlQ29uZGl0aW9uczogKCgpID0+IHRoaXMucmVuZGVyQ29uZGl0aW9ucygpKSBhcyBhbnksXG4gICAgICAvLyBzcXVhc2ggYWxsIGNvbW1pdHMgaW50byBhIHNpbmdsZSBjb21taXQgd2hlbiBtZXJnaW5nXG4gICAgICBtZXJnZU1ldGhvZDogXCJzcXVhc2hcIixcbiAgICAgIC8vIHVzZSBQUiB0aXRsZStib2R5IGFzIHRoZSBjb21taXQgbWVzc2FnZVxuICAgICAgY29tbWl0TWVzc2FnZUZvcm1hdDoge1xuICAgICAgICB0aXRsZTogXCJwci10aXRsZVwiLFxuICAgICAgICBib2R5OiBcInByLWJvZHlcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb2plY3QuYWRkUGFja2FnZUlnbm9yZShcIi8ubWVyZ2lmeS55bWxcIik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBjb25kaXRpb25zIHRvIHRoZSBhdXRvIG1lcmdlIHJ1bGUuXG4gICAqIEBwYXJhbSBjb25kaXRpb25zIFRoZSBjb25kaXRpb25zIHRvIGFkZCAobWVyZ2lmeSBzeW50YXgpXG4gICAqL1xuICBwdWJsaWMgYWRkQ29uZGl0aW9ucyguLi5jb25kaXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuYWRkQ29uZGl0aW9uc0xhdGVyKHsgcmVuZGVyOiAoKSA9PiBjb25kaXRpb25zIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgY29uZGl0aW9ucyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgb25seSBkdXJpbmcgc3ludGhlc2lzLlxuICAgKiBAcGFyYW0gbGF0ZXIgVGhlIGxhdGVyXG4gICAqL1xuICBwdWJsaWMgYWRkQ29uZGl0aW9uc0xhdGVyKGxhdGVyOiBJQWRkQ29uZGl0aW9uc0xhdGVyKSB7XG4gICAgdGhpcy5sYXp5Q29uZGl0aW9ucy5wdXNoKGxhdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29uZGl0aW9ucygpIHtcbiAgICBjb25zdCBvdXRwdXQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBsYXRlciBvZiB0aGlzLmxhenlDb25kaXRpb25zKSB7XG4gICAgICBvdXRwdXQucHVzaCguLi5sYXRlci5yZW5kZXIoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBZGRDb25kaXRpb25zTGF0ZXIge1xuICByZW5kZXIoKTogc3RyaW5nW107XG59XG4iXX0=
@@ -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.7" };
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);
@@ -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.7" };
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.7" };
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.7" };
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.7" };
24
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.GitHubProject", version: "0.101.9" };
25
25
  /**
26
26
  * Access all github components.
27
27
  *
@@ -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.7" };
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.7" };
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;
@@ -10,6 +10,31 @@ export interface MergifyConditionalOperator {
10
10
  readonly and?: MergifyCondition[];
11
11
  }
12
12
  export type MergifyCondition = string | MergifyConditionalOperator;
13
+ /**
14
+ * Declarative configuration for Mergify `commit_message_format`.
15
+ * @see https://docs.mergify.com/workflow/actions/merge/#customizing-the-commit-message
16
+ */
17
+ export interface MergifyCommitMessageFormat {
18
+ /**
19
+ * Commit title format.
20
+ *
21
+ * - `inherit`: use the GitHub repository default merge commit title format
22
+ * - `pr-title`: use the pull request title (with the PR number appended)
23
+ */
24
+ readonly title?: "inherit" | "pr-title";
25
+ /**
26
+ * Commit body format.
27
+ *
28
+ * - `inherit`: use the GitHub repository default merge commit body format
29
+ * - `pr-body`: use the pull request body
30
+ * - `empty`: set the commit body to be empty
31
+ */
32
+ readonly body?: "inherit" | "pr-body" | "empty";
33
+ /**
34
+ * Optional list of trailers to append to the commit message.
35
+ */
36
+ readonly trailers?: Array<"co-authored-by" | "approved-by" | "merged-by">;
37
+ }
13
38
  export interface MergifyRule {
14
39
  /**
15
40
  * The name of the rule. This is not used by the engine directly,
@@ -71,10 +96,16 @@ export interface MergifyQueue {
71
96
  * @see https://docs.mergify.com/conditions/#conditions
72
97
  */
73
98
  readonly mergeConditions?: MergifyCondition[];
99
+ /**
100
+ * When merging with the merge or squash method, configure the title, body, and trailers of the resulting commit.
101
+ * @see https://docs.mergify.com/workflow/actions/merge/#customizing-the-commit-message
102
+ */
103
+ readonly commitMessageFormat?: MergifyCommitMessageFormat;
74
104
  /**
75
105
  * Template to use as the commit message when using the merge or squash merge method.
106
+ * @deprecated Use `commitMessageFormat` instead.
76
107
  */
77
- readonly commitMessageTemplate: string;
108
+ readonly commitMessageTemplate?: string;
78
109
  }
79
110
  /**
80
111
  * Configure Mergify.
@@ -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.7" };
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.
@@ -40,9 +40,12 @@ class Mergify extends component_1.Component {
40
40
  this.createYamlFile();
41
41
  }
42
42
  addQueue(queue) {
43
+ if (queue.commitMessageFormat && queue.commitMessageTemplate) {
44
+ throw new Error("Only one of 'commitMessageFormat' or 'commitMessageTemplate' may be specified, not both. Remove the deprecated 'commitMessageTemplate'.");
45
+ }
43
46
  this.queues.push(queue);
44
47
  this.createYamlFile();
45
48
  }
46
49
  }
47
50
  exports.Mergify = Mergify;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvbWVyZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsNENBQXlDO0FBQ3pDLGtDQUF3QztBQUN4QyxrQ0FBbUM7QUFzR25DLE1BQWEsT0FBUSxTQUFRLHFCQUFTOztJQUNuQixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztJQUNqQyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWdCLENBQUM7SUFDcEQseUVBQXlFO0lBQ2pFLFFBQVEsQ0FBWTtJQUU1QixZQUFZLE1BQWMsRUFBRSxVQUEwQixFQUFFO1FBQ3RELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRTtnQkFDekQsR0FBRyxFQUFFO29CQUNILFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxvQkFBYSxFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDbEUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQzlCLFdBQVcsRUFBRTt3QkFDWCxtQkFBbUIsRUFBRSxDQUFDO3FCQUN2QjtpQkFDRjtnQkFDRCx1RUFBdUU7Z0JBQ3ZFLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWlCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOztBQTFDSCwwQkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdpdEh1YiB9IGZyb20gXCIuL2dpdGh1YlwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgc25ha2VDYXNlS2V5cyB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gXCIuLi95YW1sXCI7XG5cbi8qKlxuICogVGhlIE1lcmdpZnkgY29uZGl0aW9uYWwgb3BlcmF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgYXJlOiBgb3JgIGFuZCBgYW5kYC5cbiAqIE5vdGU6IFRoZSBudW1iZXIgb2YgbmVzdGVkIGNvbmRpdGlvbnMgaXMgbGltaXRlZCB0byAzLlxuICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5pby9jb25kaXRpb25zLyNjb21iaW5pbmctY29uZGl0aW9ucy13aXRoLW9wZXJhdG9yc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlDb25kaXRpb25hbE9wZXJhdG9yIHtcbiAgcmVhZG9ubHkgb3I/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG4gIHJlYWRvbmx5IGFuZD86IE1lcmdpZnlDb25kaXRpb25bXTtcbn1cblxuZXhwb3J0IHR5cGUgTWVyZ2lmeUNvbmRpdGlvbiA9IHN0cmluZyB8IE1lcmdpZnlDb25kaXRpb25hbE9wZXJhdG9yO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlSdWxlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBydWxlLiBUaGlzIGlzIG5vdCB1c2VkIGJ5IHRoZSBlbmdpbmUgZGlyZWN0bHksXG4gICAqIGJ1dCBpcyB1c2VkIHdoZW4gcmVwb3J0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBDb25kaXRpb25zIHN0cmluZyB0aGF0IG11c3QgbWF0Y2ggYWdhaW5zdCB0aGVcbiAgICogcHVsbCByZXF1ZXN0IGZvciB0aGUgcnVsZSB0byBiZSBhcHBsaWVkLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmlvL2NvbmRpdGlvbnMvI2NvbmRpdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM6IE1lcmdpZnlDb25kaXRpb25bXTtcbiAgLyoqXG4gICAqIEEgZGljdGlvbmFyeSBtYWRlIG9mIEFjdGlvbnMgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIG9uIHRoZVxuICAgKiBtYXRjaGluZyBwdWxsIHJlcXVlc3RzLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmlvL2FjdGlvbnMvI2FjdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnM6IHsgW2FjdGlvbjogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2lmeVF1ZXVlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBxdWV1ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTWVyZ2UgbWV0aG9kIHRvIHVzZS5cbiAgICpcbiAgICogUG9zc2libGUgdmFsdWVzIGFyZSBgbWVyZ2VgLCBgc3F1YXNoYCwgYHJlYmFzZWAgb3IgYGZhc3QtZm9yd2FyZGAuXG4gICAqIGBmYXN0LWZvcndhcmRgIGlzIG5vdCBzdXBwb3J0ZWQgb24gcXVldWVzIHdpdGggYHNwZWN1bGF0aXZlX2NoZWNrc2AgPiAxLCBgYmF0Y2hfc2l6ZWAgPiAxLCBvciB3aXRoIGBhbGxvd19pbnBsYWNlX2NoZWNrc2Agc2V0IHRvIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm1lcmdlXCJcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gdXNlIHRvIHVwZGF0ZSB0aGUgcHVsbCByZXF1ZXN0IHdpdGggaXRzIGJhc2UgYnJhbmNoIHdoZW4gdGhlIHNwZWN1bGF0aXZlIGNoZWNrIGlzIGRvbmUgaW4tcGxhY2UuXG4gICAqXG4gICAqIFBvc3NpYmxlIHZhbHVlczpcbiAgICogIC0gYG1lcmdlYCB0byBtZXJnZSB0aGUgYmFzZSBicmFuY2ggaW50byB0aGUgcHVsbCByZXF1ZXN0LlxuICAgKiAgLSBgcmViYXNlYCB0byByZWJhc2UgdGhlIHB1bGwgcmVxdWVzdCBhZ2FpbnN0IGl0cyBiYXNlIGJyYW5jaC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBgcmViYXNlYCBtZXRob2QgaGFzIHNvbWUgZHJhd2JhY2tzLCBzZWUgTWVyZ2lmeSBkb2NzIGZvciBkZXRhaWxzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9hY3Rpb25zL3F1ZXVlLyNxdWV1ZS1ydWxlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBtZXJnZWAgZm9yIGFsbCBtZXJnZSBtZXRob2RzIGV4Y2VwdCBgZmFzdC1mb3J3YXJkYCB3aGVyZSBgcmViYXNlYCBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVNZXRob2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvbmRpdGlvbnMgdGhhdCBuZWVkcyB0byBtYXRjaCB0byBxdWV1ZSB0aGUgcHVsbCByZXF1ZXN0LlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBxdWV1ZUNvbmRpdGlvbnM/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvbmRpdGlvbnMgdG8gbWF0Y2ggdG8gZ2V0IHRoZSBxdWV1ZWQgcHVsbCByZXF1ZXN0IG1lcmdlZC5cbiAgICogVGhpcyBhdXRvbWF0aWNhbGx5IGluY2x1ZGVzIHRoZSBxdWV1ZUNvbmRpdGlvbnMuXG4gICAqIEluIGNhc2Ugb2Ygc3BlY3VsYXRpdmUgbWVyZ2UgcHVsbCByZXF1ZXN0LCB0aGUgbWVyZ2UgY29uZGl0aW9ucyBhcmUgZXZhbHVhdGVkIGFnYWluc3QgdGhlIHRlbXBvcmFyeSBwdWxsIHJlcXVlc3QgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBtZXJnZUNvbmRpdGlvbnM/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIHVzZSBhcyB0aGUgY29tbWl0IG1lc3NhZ2Ugd2hlbiB1c2luZyB0aGUgbWVyZ2Ugb3Igc3F1YXNoIG1lcmdlIG1ldGhvZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdE1lc3NhZ2VUZW1wbGF0ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZSBNZXJnaWZ5LlxuICpcbiAqIFRoaXMgY3VycmVudGx5IG9ubHkgb2ZmZXJzIGEgc3Vic2V0IG9mIG9wdGlvbnMgYXZhaWxhYmxlLlxuICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vY29uZmlndXJhdGlvbi9maWxlLWZvcm1hdC9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQdWxsIHJlcXVlc3QgYXV0b21hdGlvbiBydWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogTWVyZ2lmeVJ1bGVbXTtcbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFibGUgbWVyZ2UgcXVldWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVzPzogTWVyZ2lmeVF1ZXVlW107XG59XG5cbmV4cG9ydCBjbGFzcyBNZXJnaWZ5IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBydWxlcyA9IG5ldyBBcnJheTxNZXJnaWZ5UnVsZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWV1ZXMgPSBuZXcgQXJyYXk8TWVyZ2lmeVF1ZXVlPigpO1xuICAvLyBUaGUgYWN0dWFsIFlBTUwgZmlsZSB3aWxsIG9ubHkgYmUgY3JlYXRlZCBpZiBhdCBsZWFzdCAxIHJ1bGUgaXMgYWRkZWQuXG4gIHByaXZhdGUgeWFtbEZpbGU/OiBZYW1sRmlsZTtcblxuICBjb25zdHJ1Y3RvcihnaXRodWI6IEdpdEh1Yiwgb3B0aW9uczogTWVyZ2lmeU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcnVsZSBvZiBvcHRpb25zLnJ1bGVzID8/IFtdKSB7XG4gICAgICB0aGlzLmFkZFJ1bGUocnVsZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBxdWV1ZSBvZiBvcHRpb25zLnF1ZXVlcyA/PyBbXSkge1xuICAgICAgdGhpcy5hZGRRdWV1ZShxdWV1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVZYW1sRmlsZSgpIHtcbiAgICBpZiAodGhpcy55YW1sRmlsZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnlhbWxGaWxlID0gbmV3IFlhbWxGaWxlKHRoaXMucHJvamVjdCwgXCIubWVyZ2lmeS55bWxcIiwge1xuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBxdWV1ZV9ydWxlczogKCkgPT4gdGhpcy5xdWV1ZXMubWFwKChxKSA9PiBzbmFrZUNhc2VLZXlzKHEsIGZhbHNlKSksXG4gICAgICAgICAgcHVsbF9yZXF1ZXN0X3J1bGVzOiB0aGlzLnJ1bGVzLFxuICAgICAgICAgIG1lcmdlX3F1ZXVlOiB7XG4gICAgICAgICAgICBtYXhfcGFyYWxsZWxfY2hlY2tzOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIE1lcmdpZnkgbmVlZHMgdG8gcmVhZCB0aGUgZmlsZSBmcm9tIHRoZSByZXBvc2l0b3J5IGluIG9yZGVyIHRvIHdvcmsuXG4gICAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRSdWxlKHJ1bGU6IE1lcmdpZnlSdWxlKSB7XG4gICAgdGhpcy5ydWxlcy5wdXNoKHJ1bGUpO1xuICAgIHRoaXMuY3JlYXRlWWFtbEZpbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRRdWV1ZShxdWV1ZTogTWVyZ2lmeVF1ZXVlKSB7XG4gICAgdGhpcy5xdWV1ZXMucHVzaChxdWV1ZSk7XG4gICAgdGhpcy5jcmVhdGVZYW1sRmlsZSgpO1xuICB9XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvbWVyZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsNENBQXlDO0FBQ3pDLGtDQUF3QztBQUN4QyxrQ0FBbUM7QUEwSW5DLE1BQWEsT0FBUSxTQUFRLHFCQUFTOztJQUNuQixLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztJQUNqQyxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWdCLENBQUM7SUFDcEQseUVBQXlFO0lBQ2pFLFFBQVEsQ0FBWTtJQUU1QixZQUFZLE1BQWMsRUFBRSxVQUEwQixFQUFFO1FBQ3RELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRTtnQkFDekQsR0FBRyxFQUFFO29CQUNILFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxvQkFBYSxFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDbEUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQzlCLFdBQVcsRUFBRTt3QkFDWCxtQkFBbUIsRUFBRSxDQUFDO3FCQUN2QjtpQkFDRjtnQkFDRCx1RUFBdUU7Z0JBQ3ZFLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWlCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxLQUFLLENBQ2IseUlBQXlJLENBQzFJLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7O0FBaERILDBCQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2l0SHViIH0gZnJvbSBcIi4vZ2l0aHViXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBzbmFrZUNhc2VLZXlzIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IFlhbWxGaWxlIH0gZnJvbSBcIi4uL3lhbWxcIjtcblxuLyoqXG4gKiBUaGUgTWVyZ2lmeSBjb25kaXRpb25hbCBvcGVyYXRvcnMgdGhhdCBjYW4gYmUgdXNlZCBhcmU6IGBvcmAgYW5kIGBhbmRgLlxuICogTm90ZTogVGhlIG51bWJlciBvZiBuZXN0ZWQgY29uZGl0aW9ucyBpcyBsaW1pdGVkIHRvIDMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmlvL2NvbmRpdGlvbnMvI2NvbWJpbmluZy1jb25kaXRpb25zLXdpdGgtb3BlcmF0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2lmeUNvbmRpdGlvbmFsT3BlcmF0b3Ige1xuICByZWFkb25seSBvcj86IE1lcmdpZnlDb25kaXRpb25bXTtcbiAgcmVhZG9ubHkgYW5kPzogTWVyZ2lmeUNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgdHlwZSBNZXJnaWZ5Q29uZGl0aW9uID0gc3RyaW5nIHwgTWVyZ2lmeUNvbmRpdGlvbmFsT3BlcmF0b3I7XG5cbi8qKlxuICogRGVjbGFyYXRpdmUgY29uZmlndXJhdGlvbiBmb3IgTWVyZ2lmeSBgY29tbWl0X21lc3NhZ2VfZm9ybWF0YC5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLm1lcmdpZnkuY29tL3dvcmtmbG93L2FjdGlvbnMvbWVyZ2UvI2N1c3RvbWl6aW5nLXRoZS1jb21taXQtbWVzc2FnZVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2lmeUNvbW1pdE1lc3NhZ2VGb3JtYXQge1xuICAvKipcbiAgICogQ29tbWl0IHRpdGxlIGZvcm1hdC5cbiAgICpcbiAgICogLSBgaW5oZXJpdGA6IHVzZSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZGVmYXVsdCBtZXJnZSBjb21taXQgdGl0bGUgZm9ybWF0XG4gICAqIC0gYHByLXRpdGxlYDogdXNlIHRoZSBwdWxsIHJlcXVlc3QgdGl0bGUgKHdpdGggdGhlIFBSIG51bWJlciBhcHBlbmRlZClcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogXCJpbmhlcml0XCIgfCBcInByLXRpdGxlXCI7XG5cbiAgLyoqXG4gICAqIENvbW1pdCBib2R5IGZvcm1hdC5cbiAgICpcbiAgICogLSBgaW5oZXJpdGA6IHVzZSB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZGVmYXVsdCBtZXJnZSBjb21taXQgYm9keSBmb3JtYXRcbiAgICogLSBgcHItYm9keWA6IHVzZSB0aGUgcHVsbCByZXF1ZXN0IGJvZHlcbiAgICogLSBgZW1wdHlgOiBzZXQgdGhlIGNvbW1pdCBib2R5IHRvIGJlIGVtcHR5XG4gICAqL1xuICByZWFkb25seSBib2R5PzogXCJpbmhlcml0XCIgfCBcInByLWJvZHlcIiB8IFwiZW1wdHlcIjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbGlzdCBvZiB0cmFpbGVycyB0byBhcHBlbmQgdG8gdGhlIGNvbW1pdCBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhaWxlcnM/OiBBcnJheTxcImNvLWF1dGhvcmVkLWJ5XCIgfCBcImFwcHJvdmVkLWJ5XCIgfCBcIm1lcmdlZC1ieVwiPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5UnVsZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZS4gVGhpcyBpcyBub3QgdXNlZCBieSB0aGUgZW5naW5lIGRpcmVjdGx5LFxuICAgKiBidXQgaXMgdXNlZCB3aGVuIHJlcG9ydGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQ29uZGl0aW9ucyBzdHJpbmcgdGhhdCBtdXN0IG1hdGNoIGFnYWluc3QgdGhlXG4gICAqIHB1bGwgcmVxdWVzdCBmb3IgdGhlIHJ1bGUgdG8gYmUgYXBwbGllZC5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5pby9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb25zOiBNZXJnaWZ5Q29uZGl0aW9uW107XG4gIC8qKlxuICAgKiBBIGRpY3Rpb25hcnkgbWFkZSBvZiBBY3Rpb25zIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBvbiB0aGVcbiAgICogbWF0Y2hpbmcgcHVsbCByZXF1ZXN0cy5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5pby9hY3Rpb25zLyNhY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25zOiB7IFthY3Rpb246IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlRdWV1ZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lcmdlIG1ldGhvZCB0byB1c2UuXG4gICAqXG4gICAqIFBvc3NpYmxlIHZhbHVlcyBhcmUgYG1lcmdlYCwgYHNxdWFzaGAsIGByZWJhc2VgIG9yIGBmYXN0LWZvcndhcmRgLlxuICAgKiBgZmFzdC1mb3J3YXJkYCBpcyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlcyB3aXRoIGBzcGVjdWxhdGl2ZV9jaGVja3NgID4gMSwgYGJhdGNoX3NpemVgID4gMSwgb3Igd2l0aCBgYWxsb3dfaW5wbGFjZV9jaGVja3NgIHNldCB0byBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtZXJnZVwiXG4gICAqL1xuICByZWFkb25seSBtZXJnZU1ldGhvZD86IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIHRvIHVzZSB0byB1cGRhdGUgdGhlIHB1bGwgcmVxdWVzdCB3aXRoIGl0cyBiYXNlIGJyYW5jaCB3aGVuIHRoZSBzcGVjdWxhdGl2ZSBjaGVjayBpcyBkb25lIGluLXBsYWNlLlxuICAgKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqICAtIGBtZXJnZWAgdG8gbWVyZ2UgdGhlIGJhc2UgYnJhbmNoIGludG8gdGhlIHB1bGwgcmVxdWVzdC5cbiAgICogIC0gYHJlYmFzZWAgdG8gcmViYXNlIHRoZSBwdWxsIHJlcXVlc3QgYWdhaW5zdCBpdHMgYmFzZSBicmFuY2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgYHJlYmFzZWAgbWV0aG9kIGhhcyBzb21lIGRyYXdiYWNrcywgc2VlIE1lcmdpZnkgZG9jcyBmb3IgZGV0YWlscy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vYWN0aW9ucy9xdWV1ZS8jcXVldWUtcnVsZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBgbWVyZ2VgIGZvciBhbGwgbWVyZ2UgbWV0aG9kcyBleGNlcHQgYGZhc3QtZm9yd2FyZGAgd2hlcmUgYHJlYmFzZWAgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlTWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBjb25kaXRpb25zIHRoYXQgbmVlZHMgdG8gbWF0Y2ggdG8gcXVldWUgdGhlIHB1bGwgcmVxdWVzdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vY29uZGl0aW9ucy8jY29uZGl0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVDb25kaXRpb25zPzogTWVyZ2lmeUNvbmRpdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBjb25kaXRpb25zIHRvIG1hdGNoIHRvIGdldCB0aGUgcXVldWVkIHB1bGwgcmVxdWVzdCBtZXJnZWQuXG4gICAqIFRoaXMgYXV0b21hdGljYWxseSBpbmNsdWRlcyB0aGUgcXVldWVDb25kaXRpb25zLlxuICAgKiBJbiBjYXNlIG9mIHNwZWN1bGF0aXZlIG1lcmdlIHB1bGwgcmVxdWVzdCwgdGhlIG1lcmdlIGNvbmRpdGlvbnMgYXJlIGV2YWx1YXRlZCBhZ2FpbnN0IHRoZSB0ZW1wb3JhcnkgcHVsbCByZXF1ZXN0IGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIG9uZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vY29uZGl0aW9ucy8jY29uZGl0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2VDb25kaXRpb25zPzogTWVyZ2lmeUNvbmRpdGlvbltdO1xuXG4gIC8qKlxuICAgKiBXaGVuIG1lcmdpbmcgd2l0aCB0aGUgbWVyZ2Ugb3Igc3F1YXNoIG1ldGhvZCwgY29uZmlndXJlIHRoZSB0aXRsZSwgYm9keSwgYW5kIHRyYWlsZXJzIG9mIHRoZSByZXN1bHRpbmcgY29tbWl0LlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS93b3JrZmxvdy9hY3Rpb25zL21lcmdlLyNjdXN0b21pemluZy10aGUtY29tbWl0LW1lc3NhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdE1lc3NhZ2VGb3JtYXQ/OiBNZXJnaWZ5Q29tbWl0TWVzc2FnZUZvcm1hdDtcblxuICAvKipcbiAgICogVGVtcGxhdGUgdG8gdXNlIGFzIHRoZSBjb21taXQgbWVzc2FnZSB3aGVuIHVzaW5nIHRoZSBtZXJnZSBvciBzcXVhc2ggbWVyZ2UgbWV0aG9kLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGNvbW1pdE1lc3NhZ2VGb3JtYXRgIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBjb21taXRNZXNzYWdlVGVtcGxhdGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJlIE1lcmdpZnkuXG4gKlxuICogVGhpcyBjdXJyZW50bHkgb25seSBvZmZlcnMgYSBzdWJzZXQgb2Ygb3B0aW9ucyBhdmFpbGFibGUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9jb25maWd1cmF0aW9uL2ZpbGUtZm9ybWF0L1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFB1bGwgcmVxdWVzdCBhdXRvbWF0aW9uIHJ1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZXM/OiBNZXJnaWZ5UnVsZVtdO1xuICAvKipcbiAgICogVGhlIGF2YWlsYWJsZSBtZXJnZSBxdWV1ZXMuXG4gICAqL1xuICByZWFkb25seSBxdWV1ZXM/OiBNZXJnaWZ5UXVldWVbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE1lcmdpZnkgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bGVzID0gbmV3IEFycmF5PE1lcmdpZnlSdWxlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXVlcyA9IG5ldyBBcnJheTxNZXJnaWZ5UXVldWU+KCk7XG4gIC8vIFRoZSBhY3R1YWwgWUFNTCBmaWxlIHdpbGwgb25seSBiZSBjcmVhdGVkIGlmIGF0IGxlYXN0IDEgcnVsZSBpcyBhZGRlZC5cbiAgcHJpdmF0ZSB5YW1sRmlsZT86IFlhbWxGaWxlO1xuXG4gIGNvbnN0cnVjdG9yKGdpdGh1YjogR2l0SHViLCBvcHRpb25zOiBNZXJnaWZ5T3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoZ2l0aHViLnByb2plY3QpO1xuXG4gICAgZm9yIChjb25zdCBydWxlIG9mIG9wdGlvbnMucnVsZXMgPz8gW10pIHtcbiAgICAgIHRoaXMuYWRkUnVsZShydWxlKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHF1ZXVlIG9mIG9wdGlvbnMucXVldWVzID8/IFtdKSB7XG4gICAgICB0aGlzLmFkZFF1ZXVlKHF1ZXVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVlhbWxGaWxlKCkge1xuICAgIGlmICh0aGlzLnlhbWxGaWxlID09IG51bGwpIHtcbiAgICAgIHRoaXMueWFtbEZpbGUgPSBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCBcIi5tZXJnaWZ5LnltbFwiLCB7XG4gICAgICAgIG9iajoge1xuICAgICAgICAgIHF1ZXVlX3J1bGVzOiAoKSA9PiB0aGlzLnF1ZXVlcy5tYXAoKHEpID0+IHNuYWtlQ2FzZUtleXMocSwgZmFsc2UpKSxcbiAgICAgICAgICBwdWxsX3JlcXVlc3RfcnVsZXM6IHRoaXMucnVsZXMsXG4gICAgICAgICAgbWVyZ2VfcXVldWU6IHtcbiAgICAgICAgICAgIG1heF9wYXJhbGxlbF9jaGVja3M6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gTWVyZ2lmeSBuZWVkcyB0byByZWFkIHRoZSBmaWxlIGZyb20gdGhlIHJlcG9zaXRvcnkgaW4gb3JkZXIgdG8gd29yay5cbiAgICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZFJ1bGUocnVsZTogTWVyZ2lmeVJ1bGUpIHtcbiAgICB0aGlzLnJ1bGVzLnB1c2gocnVsZSk7XG4gICAgdGhpcy5jcmVhdGVZYW1sRmlsZSgpO1xuICB9XG5cbiAgcHVibGljIGFkZFF1ZXVlKHF1ZXVlOiBNZXJnaWZ5UXVldWUpIHtcbiAgICBpZiAocXVldWUuY29tbWl0TWVzc2FnZUZvcm1hdCAmJiBxdWV1ZS5jb21taXRNZXNzYWdlVGVtcGxhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPbmx5IG9uZSBvZiAnY29tbWl0TWVzc2FnZUZvcm1hdCcgb3IgJ2NvbW1pdE1lc3NhZ2VUZW1wbGF0ZScgbWF5IGJlIHNwZWNpZmllZCwgbm90IGJvdGguIFJlbW92ZSB0aGUgZGVwcmVjYXRlZCAnY29tbWl0TWVzc2FnZVRlbXBsYXRlJy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5xdWV1ZXMucHVzaChxdWV1ZSk7XG4gICAgdGhpcy5jcmVhdGVZYW1sRmlsZSgpO1xuICB9XG59XG4iXX0=
@@ -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.7" };
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.7" };
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.7" };
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;
@@ -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.7" };
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.7" };
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.7" };
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.7" };
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.7" };
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.7" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.github.WorkflowSteps", version: "0.101.9" };
29
29
  /**
30
30
  * Checks out a repository.
31
31
  *
@@ -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.7" };
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.7" };
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
  */