@xpertss/projen-types 0.0.19 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +69 -30
- package/API.md +44 -4
- package/README.md +4 -2
- package/lib/actions/action-build-workflow.js +1 -1
- package/lib/actions/action-dogfood-workflow.d.ts +12 -2
- package/lib/actions/action-dogfood-workflow.js +3 -3
- package/lib/actions/action-sonar-workflow.d.ts +7 -0
- package/lib/actions/action-sonar-workflow.js +4 -2
- package/lib/actions/github-action-project.d.ts +10 -2
- package/lib/actions/github-action-project.js +3 -2
- package/lib/cdk/app-runtime-scaffold.js +1 -1
- package/lib/cdk/cdk-app-project.js +1 -1
- package/lib/cdk/cdk-infra-project.js +1 -1
- package/lib/cdk/cdk-typescript-base.js +1 -1
- package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
- package/lib/cdk/components/edge-networking-constructs.js +1 -1
- package/lib/cdk/database-component.js +1 -1
- package/lib/common/projen-drift-check-workflow.js +1 -1
- package/lib/common/workflow-change-notice-workflow.js +1 -1
- package/lib/java/components/cdk-deploy-hook.js +1 -1
- package/lib/java/components/code-index-workflow.js +1 -1
- package/lib/java/components/docker-publish.js +1 -1
- package/lib/java/components/flyway-migration.js +1 -1
- package/lib/java/components/github-packages-publish.js +1 -1
- package/lib/java/components/maven-central-publish.js +1 -1
- package/lib/java/components/maven-upgrade-report.js +1 -1
- package/lib/java/java-app-project.js +1 -1
- package/lib/java/java-library-project.js +1 -1
- package/lib/java/java-maven-base.js +1 -1
- package/lib/java/java-service-project.js +1 -1
- package/lib/java/java-spring-boot-project.js +1 -1
- package/lib/java/maven/maven-module.js +1 -1
- package/lib/java/maven/maven-pom.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -491,6 +491,7 @@ const project = new GitHubActionProject({
|
|
|
491
491
|
name: 'auto-commit',
|
|
492
492
|
description: 'Stage a folder and, only if it changed, commit and push it',
|
|
493
493
|
sonarHostUrl: 'https://sonarcloud.io', // required, no default - your SonarCloud URL
|
|
494
|
+
sonarOrganization: 'xpertss', // default - your SonarCloud org key
|
|
494
495
|
dogfood: {
|
|
495
496
|
// Two scenario steps: the "changed" path and the "no-op" path are both
|
|
496
497
|
// load-bearing behavior for this action (a double-commit or a
|
|
@@ -688,11 +689,12 @@ Plain strings (`'dev'`) are shorthand for `{ name: 'dev' }`.
|
|
|
688
689
|
| `name` | - (required) | Project name |
|
|
689
690
|
| `description` | - | One-line description; used in the default README template and recorded in the private `package.json` |
|
|
690
691
|
| `sonarHostUrl` | - (required) | URL of your SonarCloud instance (e.g. `https://sonarcloud.io`); must be reachable from github.com-hosted runners |
|
|
692
|
+
| `sonarOrganization` | `xpertss` | SonarCloud org key (`sonar.organization`); required by the Scanner CLI, not derived from the token |
|
|
691
693
|
| `sonarTokenSecret` | `SONAR_TOKEN` | GitHub secret holding the Sonar token |
|
|
692
694
|
| `sonarPullRequestGate` | `true` | Whether `sonar.yml` also runs on `pull_request` as a pass/fail gate |
|
|
693
695
|
| `dogfood` | - (a `test-dogfood.yml` that fails until you declare one) | `ActionDogfoodOptions` - the scenario that exercises the action end-to-end via `uses: ./` |
|
|
694
696
|
| `license` | `MIT` | SPDX identifier for the generated `LICENSE` |
|
|
695
|
-
| `gheTokenSecret` | `PROJEN_GITHUB_TOKEN` | GitHub secret holding projen's PAT |
|
|
697
|
+
| `gheTokenSecret` | `PROJEN_GITHUB_TOKEN` | GitHub secret holding projen's PAT (drift-check PR comments); a dogfood that passes a `token` input must reference this secret in the step's `inputs` |
|
|
696
698
|
|
|
697
699
|
`ActionDogfoodOptions`/`ActionDogfoodStep` - the dogfood scenario (`test-dogfood.yml`):
|
|
698
700
|
|
|
@@ -707,7 +709,7 @@ interface ActionDogfoodStep {
|
|
|
707
709
|
readonly id?: string; // step id for the `uses: ./` call; default: a slug of `name`
|
|
708
710
|
readonly fixtureSteps?: string[]; // shell, before the invocation (default: none)
|
|
709
711
|
readonly inputs?: Record<string, string>; // `with:` for this invocation (default: none)
|
|
710
|
-
|
|
712
|
+
readonly assertions: string[]; // shell, after the invocation - required; the step runs under set -euo pipefail so any failing line fails the job
|
|
711
713
|
}
|
|
712
714
|
```
|
|
713
715
|
|
|
@@ -20,7 +20,7 @@ const ACTIONLINT_SHA256 = '8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc
|
|
|
20
20
|
* the release build job, so the lint commands exist in exactly one place.
|
|
21
21
|
*/
|
|
22
22
|
class ActionBuildWorkflow extends projen_1.Component {
|
|
23
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionBuildWorkflow", version: "0.0.
|
|
23
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionBuildWorkflow", version: "0.0.20" };
|
|
24
24
|
task;
|
|
25
25
|
workflow;
|
|
26
26
|
constructor(scope) {
|
|
@@ -26,13 +26,23 @@ export interface ActionDogfoodStep {
|
|
|
26
26
|
* @default {}
|
|
27
27
|
*/
|
|
28
28
|
readonly inputs?: Record<string, string>;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Shell assertions after this invocation - the job fails unless every one
|
|
31
|
+
* exits 0. The generated step runs under `set -euo pipefail`, so a failing
|
|
32
|
+
* assertion fails the step immediately rather than being masked by a later,
|
|
33
|
+
* passing one.
|
|
34
|
+
*/
|
|
30
35
|
readonly assertions: string[];
|
|
31
36
|
}
|
|
32
37
|
export interface ActionDogfoodOptions {
|
|
33
38
|
/** One or more scenario steps, run in order, in the dogfood job. */
|
|
34
39
|
readonly scenario: ActionDogfoodStep[];
|
|
35
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Shell cleanup, run once at the end with `if: always()` so repeated runs
|
|
42
|
+
* start clean. Intentionally **best-effort**: unlike the assert step it does
|
|
43
|
+
* *not* run under `set -e`, so a failing line (e.g. deleting an already
|
|
44
|
+
* deleted ref) does not fail the job.
|
|
45
|
+
*/
|
|
36
46
|
readonly cleanup: string[];
|
|
37
47
|
}
|
|
38
48
|
/**
|
|
@@ -41,7 +41,7 @@ const UNCONFIGURED_STEPS = [
|
|
|
41
41
|
* error: if you wrote a scenario by hand, you can write its cleanup too.
|
|
42
42
|
*/
|
|
43
43
|
class ActionDogfoodWorkflow extends projen_1.Component {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionDogfoodWorkflow", version: "0.0.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionDogfoodWorkflow", version: "0.0.20" };
|
|
45
45
|
workflow;
|
|
46
46
|
constructor(scope, options) {
|
|
47
47
|
super(scope, 'ActionDogfoodWorkflow');
|
|
@@ -81,7 +81,7 @@ class ActionDogfoodWorkflow extends projen_1.Component {
|
|
|
81
81
|
});
|
|
82
82
|
steps.push({
|
|
83
83
|
name: `${step.name}: assert`,
|
|
84
|
-
run: step.assertions.join('\n'),
|
|
84
|
+
run: ['set -euo pipefail', ...step.assertions].join('\n'),
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
87
|
if (options) {
|
|
@@ -113,4 +113,4 @@ class ActionDogfoodWorkflow extends projen_1.Component {
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
exports.ActionDogfoodWorkflow = ActionDogfoodWorkflow;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRvZ2Zvb2Qtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9ucy9hY3Rpb24tZG9nZm9vZC13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQTJDO0FBQzNDLGlFQUFpRTtBQUVqRSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLHFFQUFxRTtBQUNyRSxvREFBb0Q7QUFDcEQsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUM7QUFxQzlDLHlFQUF5RTtBQUN6RSx1RUFBdUU7QUFDdkUsOENBQThDO0FBQzlDLFNBQVMsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUk7U0FDZCxXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFVRCx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLDRFQUE0RTtBQUM1RSwwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLHNEQUFzRDtBQUN0RCxNQUFNLGtCQUFrQixHQUFhO0lBQ25DLDBGQUEwRjtJQUMxRixvSUFBb0k7SUFDcEksUUFBUTtDQUNULENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLGtCQUFTOztJQUNsQyxRQUFRLENBQXdCO0lBRWhELFlBQVksS0FBMkIsRUFBRSxPQUE4QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRSxDQUNwRSxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQStCLE9BQU87WUFDL0MsQ0FBQyxDQUFDLENBQUMsZUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxDQUFDLENBQUM7Z0JBQ0E7b0JBQ0UsSUFBSSxFQUFFLGlDQUFpQztvQkFDdkMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ25DO2FBQ0YsQ0FBQztRQUVKLENBQUMsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDaEQsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLFdBQVc7b0JBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2xDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDckUsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7Z0JBQ3JDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLGtCQUFrQjtnQkFDcEMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDNUMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVO2dCQUM1QixHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2hDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzlELElBQUEsc0NBQW1CLEVBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNsQiwrREFBK0QsQ0FDaEUsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2YsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN2RSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxPQUFPO2dCQUNsQixDQUFDLENBQUM7b0JBQ0EsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUs7b0JBQzlDLFlBQVksRUFBRSxlQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2lCQUNuRDtnQkFDRCxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQ3JELEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJGSCxzREFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBOaWdodGx5IGVudmlyb25tZW50LXJlZ3Jlc3Npb24gY2FuYXJ5IChBRC0wMDEvRjAwNik6IHJlLXJ1bnMgdGhlIHNhbWVcbi8vIHNjZW5hcmlvIGFnYWluc3Qgc2V0dGxlZCBgbWFpbmAgaW4gdG9kYXkncyBydW5uZXIgaW1hZ2UsIGluZGVwZW5kZW50IG9mXG4vLyB0aGUgcHVsbF9yZXF1ZXN0IGdhdGUuIFF1aWV0IFVUQyBob3VyOyBhIGNvbXBvbmVudCBjb25zdGFudCwgbm90IGFcbi8vIHByb2plY3Qgb3B0aW9uIC0gdXBncmFkaW5nIGl0IGlzIGEgcmV2aWV3ZWQgZGlmZi5cbmNvbnN0IE5JR0hUTFlfRE9HRk9PRF9TQ0hFRFVMRSA9ICcxNyAzICogKiAqJztcblxuLyoqXG4gKiBPbmUgaW52b2NhdGlvbiBvZiB0aGUgYWN0aW9uIHdpdGhpbiB0aGUgZG9nZm9vZCBzY2VuYXJpbzogb3B0aW9uYWwgZml4dHVyZVxuICogc2V0dXAsIHRoZSBgdXNlczogLi9gIGNhbGwgd2l0aCB0aGlzIHN0ZXAncyBpbnB1dHMsIHRoZW4gdGhpcyBzdGVwJ3NcbiAqIGFzc2VydGlvbnMuIE1vc3QgYWN0aW9ucyBuZWVkIGV4YWN0bHkgb25lOyBhY3Rpb25zIHdpdGggYSByZS1ydW4vbm8tb3BcbiAqIGJlaGF2aW9yIHRvIHZlcmlmeSAoZS5nLiBGMDA2J3MgcmV1c2UtdGhlLVBSIHBhdGgsIEYwMDcncyBuby1vcC1jb21taXRcbiAqIHBhdGgpIGRlY2xhcmUgdHdvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkRvZ2Zvb2RTdGVwIHtcbiAgLyoqIExhYmVsIHVzZWQgdG8gbmFtZSB0aGlzIHN0ZXAtZ3JvdXAncyBnZW5lcmF0ZWQgd29ya2Zsb3cgc3RlcHMuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3RlcCBpZCBmb3IgdGhlIGB1c2VzOiAuL2AgaW52b2NhdGlvbiwgc28gYSBsYXRlciBhc3NlcnRpb24gY2FuXG4gICAqIHJlZmVyZW5jZSB0aGlzIHN0ZXAncyBvdXRwdXRzIHZpYSBgJHt7IHN0ZXBzLjxpZD4ub3V0cHV0cy48bmFtZT4gfX1gLlxuICAgKiBAZGVmYXVsdCAtIGEgc2x1ZyBkZXJpdmVkIGZyb20gYG5hbWVgLCBkaXNhbWJpZ3VhdGVkIGJ5IHBvc2l0aW9uXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hlbGwgc3RlcHMgZXhlY3V0ZWQgYmVmb3JlIHRoaXMgaW52b2NhdGlvbiwgdG8gcHJvZHVjZSBvciBhbHRlclxuICAgKiBmaXh0dXJlIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZml4dHVyZVN0ZXBzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGB3aXRoOmAgaW5wdXRzIGZvciB0aGlzIGludm9jYXRpb24ncyBsb2NhbCBgdXNlczogLi9gIGNhbGwuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKiBTaGVsbCBhc3NlcnRpb25zIGFmdGVyIHRoaXMgaW52b2NhdGlvbiAtIHRoZSBqb2IgZmFpbHMgdW5sZXNzIGV2ZXJ5IG9uZSBleGl0cyAwLiAqL1xuICByZWFkb25seSBhc3NlcnRpb25zOiBzdHJpbmdbXTtcbn1cblxuLy8gTG93ZXJjYXNlLCBub24tYWxwaGFudW1lcmljcyBjb2xsYXBzZWQgdG8gYSBzaW5nbGUgYC1gLCB0cmltbWVkIC0gdGhlblxuLy8gZGlzYW1iaWd1YXRlZCBieSBwb3NpdGlvbiBzbyB0d28gc3RlcHMgc2hhcmluZyBhIG5hbWUgKG9yIGFuIHVubmFtZWRcbi8vIHNsdWcsIGUuZy4gcHVuY3R1YXRpb24tb25seSkgbmV2ZXIgY29sbGlkZS5cbmZ1bmN0aW9uIHNsdWcobmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZSA9IG5hbWVcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJylcbiAgICAucmVwbGFjZSgvXi0rfC0rJC9nLCAnJyk7XG4gIHJldHVybiBgJHtiYXNlIHx8ICdzdGVwJ30tJHtpbmRleH1gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkRvZ2Zvb2RPcHRpb25zIHtcbiAgLyoqIE9uZSBvciBtb3JlIHNjZW5hcmlvIHN0ZXBzLCBydW4gaW4gb3JkZXIsIGluIHRoZSBkb2dmb29kIGpvYi4gKi9cbiAgcmVhZG9ubHkgc2NlbmFyaW86IEFjdGlvbkRvZ2Zvb2RTdGVwW107XG5cbiAgLyoqIFNoZWxsIGNsZWFudXAsIHJ1biBvbmNlIGF0IHRoZSBlbmQgd2l0aCBgaWY6IGFsd2F5cygpYCwgc28gcmVwZWF0ZWQgcnVucyBzdGFydCBjbGVhbi4gKi9cbiAgcmVhZG9ubHkgY2xlYW51cDogc3RyaW5nW107XG59XG5cbi8vIFRoZSBzdGFuZC1pbiBzY2VuYXJpbyB1c2VkIHdoZW4gYSBwcm9qZWN0IGRlY2xhcmVzIG5vIGBkb2dmb29kYCBhdCBhbGxcbi8vIChlLmcuIGEgcmVwbyBgcHJvamVuIG5ld2AganVzdCBzY2FmZm9sZGVkKS4gVGhlIHdvcmtmbG93IGlzIHN0aWxsXG4vLyBnZW5lcmF0ZWQgYW5kIHN0aWxsIHJ1bnMgb24gZXZlcnkgUFIgLSBpdCBqdXN0IGZhaWxzLCB0ZWxsaW5nIHlvdSB3aGF0IHRvXG4vLyB3cml0ZS4gQUQtMDAxJ3MgcnVsZSBpcyB0aGF0IGEgZG9nZm9vZCBtdXN0IG5ldmVyIGJlICpzaWxlbnRseSogYWJzZW50O1xuLy8gdGhyb3dpbmcgZHVyaW5nIHN5bnRoIGluc3RlYWQgd291bGQgbWFrZSB0aGUgcHJvamVjdCB0eXBlIHVuc2NhZmZvbGRhYmxlLFxuLy8gc2luY2UgYHByb2plbiBuZXdgIGhhcyBubyB3YXkgdG8gc3VwcGx5IGEgc2NlbmFyaW8uXG5jb25zdCBVTkNPTkZJR1VSRURfU1RFUFM6IHN0cmluZ1tdID0gW1xuICAnZWNobyBcIjo6ZXJyb3I6OnRoaXMgYWN0aW9uIGhhcyBubyBkb2dmb29kIHNjZW5hcmlvLCBzbyBub3RoaW5nIGV4ZXJjaXNlcyBpdCBlbmQtdG8tZW5kLlwiJyxcbiAgJ2VjaG8gXCJBZGQgZG9nZm9vZDogeyBzY2VuYXJpbzogWy4uLl0sIGNsZWFudXA6IFsuLi5dIH0gdG8gLnByb2plbnJjLnRzIGFuZCBydW4gbnB4IHByb2plbiAtIHNlZSB0aGUgQHhwZXJ0c3MvcHJvamVuLXR5cGVzIFJFQURNRS5cIicsXG4gICdleGl0IDEnLFxuXTtcblxuLyoqXG4gKiBQZXIgQUQtMDAxJ3MgZG9nZm9vZCB0ZXN0OiB0aGUgY29tcG9zaXRlIGFjdGlvbiBpcyBydW4gKiphZ2FpbnN0IHRoaXNcbiAqIHJlcG8qKiwgZW5kLXRvLWVuZCwgdmlhIGEgbG9jYWwgYHVzZXM6IC4vYCByZWZlcmVuY2UgLSBubyBleHRlcm5hbCBoYXJuZXNzLlxuICogQnVpbGRzIGB0ZXN0LWRvZ2Zvb2QueW1sYCBmcm9tIGFuIG9yZGVyZWQgYHNjZW5hcmlvYCBvZiBpbnZvY2F0aW9uIHN0ZXBzXG4gKiAoc2VlIGBBY3Rpb25Eb2dmb29kU3RlcGApIGZvbGxvd2VkIGJ5IGEgc2hhcmVkIGNsZWFudXAgc3RlcC5cbiAqXG4gKiBPbWl0dGluZyBgb3B0aW9uc2AgZ2VuZXJhdGVzIHRoZSB3b3JrZmxvdyB3aXRoIGEgc2luZ2xlIGZhaWxpbmcgc3RlcCAoc2VlXG4gKiBgVU5DT05GSUdVUkVEX1NURVBTYCkuIEEgKnBhcnRpYWxseSogZGVjbGFyZWQgZG9nZm9vZCBpcyBzdGlsbCBhIHN5bnRoXG4gKiBlcnJvcjogaWYgeW91IHdyb3RlIGEgc2NlbmFyaW8gYnkgaGFuZCwgeW91IGNhbiB3cml0ZSBpdHMgY2xlYW51cCB0b28uXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Eb2dmb29kV29ya2Zsb3cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3c6IGdpdGh1Yi5HaXRodWJXb3JrZmxvdztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogZ2l0aHViLkdpdEh1YlByb2plY3QsIG9wdGlvbnM/OiBBY3Rpb25Eb2dmb29kT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCAnQWN0aW9uRG9nZm9vZFdvcmtmbG93Jyk7XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgaWYgKCFvcHRpb25zLnNjZW5hcmlvIHx8IG9wdGlvbnMuc2NlbmFyaW8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnQWN0aW9uRG9nZm9vZFdvcmtmbG93IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBkb2dmb29kLnNjZW5hcmlvIHN0ZXAnLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFvcHRpb25zLmNsZWFudXAgfHwgb3B0aW9ucy5jbGVhbnVwLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FjdGlvbkRvZ2Zvb2RXb3JrZmxvdyByZXF1aXJlcyBkb2dmb29kLmNsZWFudXAnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IHNjb3BlLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBY3Rpb25Eb2dmb29kV29ya2Zsb3cgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uIHRvIGJlIGVuYWJsZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGVwczogZ2l0aHViLndvcmtmbG93cy5Kb2JTdGVwW10gPSBvcHRpb25zXG4gICAgICA/IFtnaXRodWIuV29ya2Zsb3dTdGVwcy5jaGVja291dCgpXVxuICAgICAgOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRG9nZm9vZCBzY2VuYXJpbyBub3QgY29uZmlndXJlZCcsXG4gICAgICAgICAgcnVuOiBVTkNPTkZJR1VSRURfU1RFUFMuam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgKG9wdGlvbnM/LnNjZW5hcmlvID8/IFtdKS5mb3JFYWNoKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHN0ZXAuZml4dHVyZVN0ZXBzICYmIHN0ZXAuZml4dHVyZVN0ZXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgICAgbmFtZTogYCR7c3RlcC5uYW1lfTogZml4dHVyZWAsXG4gICAgICAgICAgcnVuOiBzdGVwLmZpeHR1cmVTdGVwcy5qb2luKCdcXG4nKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc0lucHV0cyA9IHN0ZXAuaW5wdXRzICYmIE9iamVjdC5rZXlzKHN0ZXAuaW5wdXRzKS5sZW5ndGggPiAwO1xuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIGlkOiBzdGVwLmlkID8/IHNsdWcoc3RlcC5uYW1lLCBpbmRleCksXG4gICAgICAgIG5hbWU6IGAke3N0ZXAubmFtZX06IHJ1biB0aGUgYWN0aW9uYCxcbiAgICAgICAgdXNlczogJy4vJyxcbiAgICAgICAgLi4uKGhhc0lucHV0cyA/IHsgd2l0aDogc3RlcC5pbnB1dHMgfSA6IHt9KSxcbiAgICAgIH0pO1xuXG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogYCR7c3RlcC5uYW1lfTogYXNzZXJ0YCxcbiAgICAgICAgcnVuOiBzdGVwLmFzc2VydGlvbnMuam9pbignXFxuJyksXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0NsZWFudXAnLFxuICAgICAgICBpZjogJ2Fsd2F5cygpJyxcbiAgICAgICAgcnVuOiBvcHRpb25zLmNsZWFudXAuam9pbignXFxuJyksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLndvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyhnaCwgJ3Rlc3QtZG9nZm9vZCcpO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLndvcmtmbG93LmZpbGUsXG4gICAgICAnRW5kLXRvLWVuZCBkb2dmb29kIHRlc3QgcnVubmluZyB0aGUgYWN0aW9uIGFnYWluc3QgdGhpcyByZXBvLicsXG4gICAgKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgICAgcHVsbFJlcXVlc3Q6IHsgYnJhbmNoZXM6IFsnbWFpbiddIH0sXG4gICAgICAvLyBObyBuaWdodGx5IGNhbmFyeSB3aGlsZSB1bmNvbmZpZ3VyZWQ6IHRoZSBQUiBydW4gaXMgdGhlIHNpZ25hbCwgYW5kXG4gICAgICAvLyBhIGNyb24gdGhhdCBhbHdheXMgZmFpbHMgaXMganVzdCBhIGRhaWx5IG5vdGlmaWNhdGlvbiBub2JvZHkgcmVhZHMuXG4gICAgICAuLi4ob3B0aW9ucyA/IHsgc2NoZWR1bGU6IFt7IGNyb246IE5JR0hUTFlfRE9HRk9PRF9TQ0hFRFVMRSB9XSB9IDoge30pLFxuICAgIH0pO1xuICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKCdkb2dmb29kJywge1xuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIHBlcm1pc3Npb25zOiBvcHRpb25zXG4gICAgICAgID8ge1xuICAgICAgICAgIGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH1cbiAgICAgICAgOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgc3RlcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWRvZ2Zvb2Qtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9ucy9hY3Rpb24tZG9nZm9vZC13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQTJDO0FBQzNDLGlFQUFpRTtBQUVqRSx3RUFBd0U7QUFDeEUsMEVBQTBFO0FBQzFFLHFFQUFxRTtBQUNyRSxvREFBb0Q7QUFDcEQsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUM7QUEwQzlDLHlFQUF5RTtBQUN6RSx1RUFBdUU7QUFDdkUsOENBQThDO0FBQzlDLFNBQVMsSUFBSSxDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUk7U0FDZCxXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFlRCx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLDRFQUE0RTtBQUM1RSwwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLHNEQUFzRDtBQUN0RCxNQUFNLGtCQUFrQixHQUFhO0lBQ25DLDBGQUEwRjtJQUMxRixvSUFBb0k7SUFDcEksUUFBUTtDQUNULENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLGtCQUFTOztJQUNsQyxRQUFRLENBQXdCO0lBRWhELFlBQVksS0FBMkIsRUFBRSxPQUE4QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxD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RUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN2RSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxPQUFPO2dCQUNsQixDQUFDLENBQUM7b0JBQ0EsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUs7b0JBQzlDLFlBQVksRUFBRSxlQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2lCQUNuRDtnQkFDRCxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQ3JELEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDOztBQXJGSCxzREFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGdpdGh1YiB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBOaWdodGx5IGVudmlyb25tZW50LXJlZ3Jlc3Npb24gY2FuYXJ5IChBRC0wMDEvRjAwNik6IHJlLXJ1bnMgdGhlIHNhbWVcbi8vIHNjZW5hcmlvIGFnYWluc3Qgc2V0dGxlZCBgbWFpbmAgaW4gdG9kYXkncyBydW5uZXIgaW1hZ2UsIGluZGVwZW5kZW50IG9mXG4vLyB0aGUgcHVsbF9yZXF1ZXN0IGdhdGUuIFF1aWV0IFVUQyBob3VyOyBhIGNvbXBvbmVudCBjb25zdGFudCwgbm90IGFcbi8vIHByb2plY3Qgb3B0aW9uIC0gdXBncmFkaW5nIGl0IGlzIGEgcmV2aWV3ZWQgZGlmZi5cbmNvbnN0IE5JR0hUTFlfRE9HRk9PRF9TQ0hFRFVMRSA9ICcxNyAzICogKiAqJztcblxuLyoqXG4gKiBPbmUgaW52b2NhdGlvbiBvZiB0aGUgYWN0aW9uIHdpdGhpbiB0aGUgZG9nZm9vZCBzY2VuYXJpbzogb3B0aW9uYWwgZml4dHVyZVxuICogc2V0dXAsIHRoZSBgdXNlczogLi9gIGNhbGwgd2l0aCB0aGlzIHN0ZXAncyBpbnB1dHMsIHRoZW4gdGhpcyBzdGVwJ3NcbiAqIGFzc2VydGlvbnMuIE1vc3QgYWN0aW9ucyBuZWVkIGV4YWN0bHkgb25lOyBhY3Rpb25zIHdpdGggYSByZS1ydW4vbm8tb3BcbiAqIGJlaGF2aW9yIHRvIHZlcmlmeSAoZS5nLiBGMDA2J3MgcmV1c2UtdGhlLVBSIHBhdGgsIEYwMDcncyBuby1vcC1jb21taXRcbiAqIHBhdGgpIGRlY2xhcmUgdHdvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkRvZ2Zvb2RTdGVwIHtcbiAgLyoqIExhYmVsIHVzZWQgdG8gbmFtZSB0aGlzIHN0ZXAtZ3JvdXAncyBnZW5lcmF0ZWQgd29ya2Zsb3cgc3RlcHMuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3RlcCBpZCBmb3IgdGhlIGB1c2VzOiAuL2AgaW52b2NhdGlvbiwgc28gYSBsYXRlciBhc3NlcnRpb24gY2FuXG4gICAqIHJlZmVyZW5jZSB0aGlzIHN0ZXAncyBvdXRwdXRzIHZpYSBgJHt7IHN0ZXBzLjxpZD4ub3V0cHV0cy48bmFtZT4gfX1gLlxuICAgKiBAZGVmYXVsdCAtIGEgc2x1ZyBkZXJpdmVkIGZyb20gYG5hbWVgLCBkaXNhbWJpZ3VhdGVkIGJ5IHBvc2l0aW9uXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hlbGwgc3RlcHMgZXhlY3V0ZWQgYmVmb3JlIHRoaXMgaW52b2NhdGlvbiwgdG8gcHJvZHVjZSBvciBhbHRlclxuICAgKiBmaXh0dXJlIHN0YXRlLlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZml4dHVyZVN0ZXBzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGB3aXRoOmAgaW5wdXRzIGZvciB0aGlzIGludm9jYXRpb24ncyBsb2NhbCBgdXNlczogLi9gIGNhbGwuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBTaGVsbCBhc3NlcnRpb25zIGFmdGVyIHRoaXMgaW52b2NhdGlvbiAtIHRoZSBqb2IgZmFpbHMgdW5sZXNzIGV2ZXJ5IG9uZVxuICAgKiBleGl0cyAwLiBUaGUgZ2VuZXJhdGVkIHN0ZXAgcnVucyB1bmRlciBgc2V0IC1ldW8gcGlwZWZhaWxgLCBzbyBhIGZhaWxpbmdcbiAgICogYXNzZXJ0aW9uIGZhaWxzIHRoZSBzdGVwIGltbWVkaWF0ZWx5IHJhdGhlciB0aGFuIGJlaW5nIG1hc2tlZCBieSBhIGxhdGVyLFxuICAgKiBwYXNzaW5nIG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGFzc2VydGlvbnM6IHN0cmluZ1tdO1xufVxuXG4vLyBMb3dlcmNhc2UsIG5vbi1hbHBoYW51bWVyaWNzIGNvbGxhcHNlZCB0byBhIHNpbmdsZSBgLWAsIHRyaW1tZWQgLSB0aGVuXG4vLyBkaXNhbWJpZ3VhdGVkIGJ5IHBvc2l0aW9uIHNvIHR3byBzdGVwcyBzaGFyaW5nIGEgbmFtZSAob3IgYW4gdW5uYW1lZFxuLy8gc2x1ZywgZS5nLiBwdW5jdHVhdGlvbi1vbmx5KSBuZXZlciBjb2xsaWRlLlxuZnVuY3Rpb24gc2x1ZyhuYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBiYXNlID0gbmFtZVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKVxuICAgIC5yZXBsYWNlKC9eLSt8LSskL2csICcnKTtcbiAgcmV0dXJuIGAke2Jhc2UgfHwgJ3N0ZXAnfS0ke2luZGV4fWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRG9nZm9vZE9wdGlvbnMge1xuICAvKiogT25lIG9yIG1vcmUgc2NlbmFyaW8gc3RlcHMsIHJ1biBpbiBvcmRlciwgaW4gdGhlIGRvZ2Zvb2Qgam9iLiAqL1xuICByZWFkb25seSBzY2VuYXJpbzogQWN0aW9uRG9nZm9vZFN0ZXBbXTtcblxuICAvKipcbiAgICogU2hlbGwgY2xlYW51cCwgcnVuIG9uY2UgYXQgdGhlIGVuZCB3aXRoIGBpZjogYWx3YXlzKClgIHNvIHJlcGVhdGVkIHJ1bnNcbiAgICogc3RhcnQgY2xlYW4uIEludGVudGlvbmFsbHkgKipiZXN0LWVmZm9ydCoqOiB1bmxpa2UgdGhlIGFzc2VydCBzdGVwIGl0IGRvZXNcbiAgICogKm5vdCogcnVuIHVuZGVyIGBzZXQgLWVgLCBzbyBhIGZhaWxpbmcgbGluZSAoZS5nLiBkZWxldGluZyBhbiBhbHJlYWR5XG4gICAqIGRlbGV0ZWQgcmVmKSBkb2VzIG5vdCBmYWlsIHRoZSBqb2IuXG4gICAqL1xuICByZWFkb25seSBjbGVhbnVwOiBzdHJpbmdbXTtcbn1cblxuLy8gVGhlIHN0YW5kLWluIHNjZW5hcmlvIHVzZWQgd2hlbiBhIHByb2plY3QgZGVjbGFyZXMgbm8gYGRvZ2Zvb2RgIGF0IGFsbFxuLy8gKGUuZy4gYSByZXBvIGBwcm9qZW4gbmV3YCBqdXN0IHNjYWZmb2xkZWQpLiBUaGUgd29ya2Zsb3cgaXMgc3RpbGxcbi8vIGdlbmVyYXRlZCBhbmQgc3RpbGwgcnVucyBvbiBldmVyeSBQUiAtIGl0IGp1c3QgZmFpbHMsIHRlbGxpbmcgeW91IHdoYXQgdG9cbi8vIHdyaXRlLiBBRC0wMDEncyBydWxlIGlzIHRoYXQgYSBkb2dmb29kIG11c3QgbmV2ZXIgYmUgKnNpbGVudGx5KiBhYnNlbnQ7XG4vLyB0aHJvd2luZyBkdXJpbmcgc3ludGggaW5zdGVhZCB3b3VsZCBtYWtlIHRoZSBwcm9qZWN0IHR5cGUgdW5zY2FmZm9sZGFibGUsXG4vLyBzaW5jZSBgcHJvamVuIG5ld2AgaGFzIG5vIHdheSB0byBzdXBwbHkgYSBzY2VuYXJpby5cbmNvbnN0IFVOQ09ORklHVVJFRF9TVEVQUzogc3RyaW5nW10gPSBbXG4gICdlY2hvIFwiOjplcnJvcjo6dGhpcyBhY3Rpb24gaGFzIG5vIGRvZ2Zvb2Qgc2NlbmFyaW8sIHNvIG5vdGhpbmcgZXhlcmNpc2VzIGl0IGVuZC10by1lbmQuXCInLFxuICAnZWNobyBcIkFkZCBkb2dmb29kOiB7IHNjZW5hcmlvOiBbLi4uXSwgY2xlYW51cDogWy4uLl0gfSB0byAucHJvamVucmMudHMgYW5kIHJ1biBucHggcHJvamVuIC0gc2VlIHRoZSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgUkVBRE1FLlwiJyxcbiAgJ2V4aXQgMScsXG5dO1xuXG4vKipcbiAqIFBlciBBRC0wMDEncyBkb2dmb29kIHRlc3Q6IHRoZSBjb21wb3NpdGUgYWN0aW9uIGlzIHJ1biAqKmFnYWluc3QgdGhpc1xuICogcmVwbyoqLCBlbmQtdG8tZW5kLCB2aWEgYSBsb2NhbCBgdXNlczogLi9gIHJlZmVyZW5jZSAtIG5vIGV4dGVybmFsIGhhcm5lc3MuXG4gKiBCdWlsZHMgYHRlc3QtZG9nZm9vZC55bWxgIGZyb20gYW4gb3JkZXJlZCBgc2NlbmFyaW9gIG9mIGludm9jYXRpb24gc3RlcHNcbiAqIChzZWUgYEFjdGlvbkRvZ2Zvb2RTdGVwYCkgZm9sbG93ZWQgYnkgYSBzaGFyZWQgY2xlYW51cCBzdGVwLlxuICpcbiAqIE9taXR0aW5nIGBvcHRpb25zYCBnZW5lcmF0ZXMgdGhlIHdvcmtmbG93IHdpdGggYSBzaW5nbGUgZmFpbGluZyBzdGVwIChzZWVcbiAqIGBVTkNPTkZJR1VSRURfU1RFUFNgKS4gQSAqcGFydGlhbGx5KiBkZWNsYXJlZCBkb2dmb29kIGlzIHN0aWxsIGEgc3ludGhcbiAqIGVycm9yOiBpZiB5b3Ugd3JvdGUgYSBzY2VuYXJpbyBieSBoYW5kLCB5b3UgY2FuIHdyaXRlIGl0cyBjbGVhbnVwIHRvby5cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbkRvZ2Zvb2RXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvdzogZ2l0aHViLkdpdGh1YldvcmtmbG93O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBnaXRodWIuR2l0SHViUHJvamVjdCwgb3B0aW9ucz86IEFjdGlvbkRvZ2Zvb2RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsICdBY3Rpb25Eb2dmb29kV29ya2Zsb3cnKTtcblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2NlbmFyaW8gfHwgb3B0aW9ucy5zY2VuYXJpby5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICdBY3Rpb25Eb2dmb29kV29ya2Zsb3cgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGRvZ2Zvb2Quc2NlbmFyaW8gc3RlcCcsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIW9wdGlvbnMuY2xlYW51cCB8fCBvcHRpb25zLmNsZWFudXAubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWN0aW9uRG9nZm9vZFdvcmtmbG93IHJlcXVpcmVzIGRvZ2Zvb2QuY2xlYW51cCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdoID0gc2NvcGUuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0FjdGlvbkRvZ2Zvb2RXb3JrZmxvdyByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IG9wdGlvbnNcbiAgICAgID8gW2dpdGh1Yi5Xb3JrZmxvd1N0ZXBzLmNoZWNrb3V0KCldXG4gICAgICA6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEb2dmb29kIHNjZW5hcmlvIG5vdCBjb25maWd1cmVkJyxcbiAgICAgICAgICBydW46IFVOQ09ORklHVVJFRF9TVEVQUy5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAob3B0aW9ucz8uc2NlbmFyaW8gPz8gW10pLmZvckVhY2goKHN0ZXAsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoc3RlcC5maXh0dXJlU3RlcHMgJiYgc3RlcC5maXh0dXJlU3RlcHMubGVuZ3RoID4gMCkge1xuICAgICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBgJHtzdGVwLm5hbWV9OiBmaXh0dXJlYCxcbiAgICAgICAgICBydW46IHN0ZXAuZml4dHVyZVN0ZXBzLmpvaW4oJ1xcbicpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaGFzSW5wdXRzID0gc3RlcC5pbnB1dHMgJiYgT2JqZWN0LmtleXMoc3RlcC5pbnB1dHMpLmxlbmd0aCA+IDA7XG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgaWQ6IHN0ZXAuaWQgPz8gc2x1ZyhzdGVwLm5hbWUsIGluZGV4KSxcbiAgICAgICAgbmFtZTogYCR7c3RlcC5uYW1lfTogcnVuIHRoZSBhY3Rpb25gLFxuICAgICAgICB1c2VzOiAnLi8nLFxuICAgICAgICAuLi4oaGFzSW5wdXRzID8geyB3aXRoOiBzdGVwLmlucHV0cyB9IDoge30pLFxuICAgICAgfSk7XG5cbiAgICAgIHN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiBgJHtzdGVwLm5hbWV9OiBhc3NlcnRgLFxuICAgICAgICBydW46IFsnc2V0IC1ldW8gcGlwZWZhaWwnLCAuLi5zdGVwLmFzc2VydGlvbnNdLmpvaW4oJ1xcbicpLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdDbGVhbnVwJyxcbiAgICAgICAgaWY6ICdhbHdheXMoKScsXG4gICAgICAgIHJ1bjogb3B0aW9ucy5jbGVhbnVwLmpvaW4oJ1xcbicpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuR2l0aHViV29ya2Zsb3coZ2gsICd0ZXN0LWRvZ2Zvb2QnKTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgdGhpcy53b3JrZmxvdy5maWxlLFxuICAgICAgJ0VuZC10by1lbmQgZG9nZm9vZCB0ZXN0IHJ1bm5pbmcgdGhlIGFjdGlvbiBhZ2FpbnN0IHRoaXMgcmVwby4nLFxuICAgICk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7XG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICAgIHB1bGxSZXF1ZXN0OiB7IGJyYW5jaGVzOiBbJ21haW4nXSB9LFxuICAgICAgLy8gTm8gbmlnaHRseSBjYW5hcnkgd2hpbGUgdW5jb25maWd1cmVkOiB0aGUgUFIgcnVuIGlzIHRoZSBzaWduYWwsIGFuZFxuICAgICAgLy8gYSBjcm9uIHRoYXQgYWx3YXlzIGZhaWxzIGlzIGp1c3QgYSBkYWlseSBub3RpZmljYXRpb24gbm9ib2R5IHJlYWRzLlxuICAgICAgLi4uKG9wdGlvbnMgPyB7IHNjaGVkdWxlOiBbeyBjcm9uOiBOSUdIVExZX0RPR0ZPT0RfU0NIRURVTEUgfV0gfSA6IHt9KSxcbiAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignZG9nZm9vZCcsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogb3B0aW9uc1xuICAgICAgICA/IHtcbiAgICAgICAgICBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIHB1bGxSZXF1ZXN0czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9XG4gICAgICAgIDogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHN0ZXBzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -5,6 +5,13 @@ export interface ActionSonarWorkflowOptions {
|
|
|
5
5
|
* Required, no default - a guessed server is worse than a loud failure.
|
|
6
6
|
*/
|
|
7
7
|
readonly sonarHostUrl: string;
|
|
8
|
+
/**
|
|
9
|
+
* SonarCloud organization key (`sonar.organization`). Mandatory for the
|
|
10
|
+
* Scanner CLI on SonarCloud - it is not derived from the token, so a scan
|
|
11
|
+
* without it always fails.
|
|
12
|
+
* @default "xpertss"
|
|
13
|
+
*/
|
|
14
|
+
readonly sonarOrganization?: string;
|
|
8
15
|
/** @default "SONAR_TOKEN" */
|
|
9
16
|
readonly sonarTokenSecret?: string;
|
|
10
17
|
/**
|
|
@@ -15,7 +15,7 @@ const SONAR_SCANNER_SHA256 = 'bb8f709f9cb73352f8d1260a3b3c506c0f41146754bc630762
|
|
|
15
15
|
* inclusions may skip `action.yml` outside `.github/`.
|
|
16
16
|
*/
|
|
17
17
|
class ActionSonarWorkflow extends projen_1.Component {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionSonarWorkflow", version: "0.0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ActionSonarWorkflow", version: "0.0.20" };
|
|
19
19
|
workflow;
|
|
20
20
|
constructor(scope, options) {
|
|
21
21
|
super(scope, 'ActionSonarWorkflow');
|
|
@@ -28,6 +28,7 @@ class ActionSonarWorkflow extends projen_1.Component {
|
|
|
28
28
|
}
|
|
29
29
|
const sonarTokenSecret = options.sonarTokenSecret ?? 'SONAR_TOKEN';
|
|
30
30
|
const pullRequestGate = options.sonarPullRequestGate ?? true;
|
|
31
|
+
const sonarOrganization = options.sonarOrganization ?? 'xpertss';
|
|
31
32
|
this.workflow = new projen_1.github.GithubWorkflow(gh, 'sonar');
|
|
32
33
|
(0, workflow_purpose_1.noteWorkflowPurpose)(this.workflow.file, 'Static-analysis scan of the action on the org SonarCloud.');
|
|
33
34
|
this.workflow.on({
|
|
@@ -53,6 +54,7 @@ echo "/tmp/sonar-scanner-${SONAR_SCANNER_VERSION}-linux-x64/bin" >> "$GITHUB_PAT
|
|
|
53
54
|
name: 'Scan',
|
|
54
55
|
run: `sonar-scanner \\
|
|
55
56
|
-Dsonar.host.url=${options.sonarHostUrl} \\
|
|
57
|
+
-Dsonar.organization=${sonarOrganization} \\
|
|
56
58
|
-Dsonar.projectKey=${scope.name} \\
|
|
57
59
|
-Dsonar.projectVersion="$(git describe --tags --always)" \\
|
|
58
60
|
-Dsonar.inclusions=.github/workflows/**,action.yml,**/*.sh \\
|
|
@@ -63,4 +65,4 @@ echo "/tmp/sonar-scanner-${SONAR_SCANNER_VERSION}-linux-x64/bin" >> "$GITHUB_PAT
|
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
exports.ActionSonarWorkflow = ActionSonarWorkflow;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXNvbmFyLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvYWN0aW9uLXNvbmFyLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBMkM7QUFDM0MsaUVBQWlFO0FBRWpFLDZFQUE2RTtBQUM3RSx1REFBdUQ7QUFDdkQsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQUM7QUFDM0MsTUFBTSxvQkFBb0IsR0FDeEIsa0VBQWtFLENBQUM7QUEyQnJFOzs7OztHQUtHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUzs7SUFDaEMsUUFBUSxDQUF3QjtJQUVoRCxZQUNFLEtBQTJCLEVBQzNCLE9BQW1DO1FBRW5DLEtBQUssQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUNiLCtEQUErRCxDQUNoRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLGFBQWEsQ0FBQztRQUNuRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDO1FBQzdELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixJQUFJLFNBQVMsQ0FBQztRQUVqRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBQSxzQ0FBbUIsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLDJEQUEyRCxDQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2hELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtZQUM5RCxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLGdCQUFnQixLQUFLLEVBQUU7WUFDM0QsS0FBSyxFQUFFO2dCQUNMLGVBQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUMvQjtvQkFDRSxJQUFJLEVBQUUsdUJBQXVCO29CQUM3QixHQUFHLEVBQUU7MEhBQzJHLHFCQUFxQjtRQUN2SSxvQkFBb0I7OzJCQUVELHFCQUFxQjtDQUMvQztpQkFDUTtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixHQUFHLEVBQUU7cUJBQ00sT0FBTyxDQUFDLFlBQVk7eUJBQ2hCLGlCQUFpQjt1QkFDbkIsS0FBSyxDQUFDLElBQUk7OztnQ0FHRDtpQkFDdkI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNURILGtEQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IG5vdGVXb3JrZmxvd1B1cnBvc2UgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctcHVycG9zZSc7XG5cbi8vIFBpbm5lZCByZWxlYXNlICsgdmVyaWZpZWQgU0hBLTI1NiAobGludXgteDY0KSAtIHVwZ3JhZGUgaXMgYSByZXZpZXdlZCBkaWZmXG4vLyBvZiB0aGlzIGNvbnN0YW50LCBuZXZlciBhIGZsb2F0aW5nIHZlcnNpb24gKEFELTAwMSkuXG5jb25zdCBTT05BUl9TQ0FOTkVSX1ZFUlNJT04gPSAnOC4xLjAuNjM4OSc7XG5jb25zdCBTT05BUl9TQ0FOTkVSX1NIQTI1NiA9XG4gICdiYjhmNzA5ZjljYjczMzUyZjhkMTI2MGEzYjNjNTA2YzBmNDExNDY3NTRiYzYzMDc2MmMxMjZkNzk1NDk5ZDBiJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25Tb25hcldvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIG9yZydzIFNvbmFyQ2xvdWQgaW5zdGFuY2UgKGUuZy4gYGh0dHBzOi8vc29uYXJjbG91ZC5pb2ApLlxuICAgKiBSZXF1aXJlZCwgbm8gZGVmYXVsdCAtIGEgZ3Vlc3NlZCBzZXJ2ZXIgaXMgd29yc2UgdGhhbiBhIGxvdWQgZmFpbHVyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvbmFySG9zdFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTb25hckNsb3VkIG9yZ2FuaXphdGlvbiBrZXkgKGBzb25hci5vcmdhbml6YXRpb25gKS4gTWFuZGF0b3J5IGZvciB0aGVcbiAgICogU2Nhbm5lciBDTEkgb24gU29uYXJDbG91ZCAtIGl0IGlzIG5vdCBkZXJpdmVkIGZyb20gdGhlIHRva2VuLCBzbyBhIHNjYW5cbiAgICogd2l0aG91dCBpdCBhbHdheXMgZmFpbHMuXG4gICAqIEBkZWZhdWx0IFwieHBlcnRzc1wiXG4gICAqL1xuICByZWFkb25seSBzb25hck9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJTT05BUl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IHNvbmFyVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHNvbmFyLnltbGAgYWxzbyBydW5zIG9uIGBwdWxsX3JlcXVlc3RgIGFzIGEgcGFzcy9mYWlsIGdhdGUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHVsbFJlcXVlc3RHYXRlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBRC0wMDEgTGF5ZXIgMjogU29uYXJDbG91ZCB2aWEgdGhlIFNjYW5uZXIgQ0xJIG9ubHkgKG5ldmVyXG4gKiBgU29uYXJTb3VyY2Uvc29uYXJxdWJlLXNjYW4tYWN0aW9uYCAtIHRoaXJkLXBhcnR5LCBhbmQgaXQgY2FycmllZCBhXG4gKiBzZWN1cml0eSBhZHZpc29yeSkuIGBzb25hci5pbmNsdXNpb25zYCBpcyBzZXQgZXhwbGljaXRseSBzaW5jZSBkZWZhdWx0XG4gKiBpbmNsdXNpb25zIG1heSBza2lwIGBhY3Rpb24ueW1sYCBvdXRzaWRlIGAuZ2l0aHViL2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Tb25hcldvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93OiBnaXRodWIuR2l0aHViV29ya2Zsb3c7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGdpdGh1Yi5HaXRIdWJQcm9qZWN0LFxuICAgIG9wdGlvbnM6IEFjdGlvblNvbmFyV29ya2Zsb3dPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgJ0FjdGlvblNvbmFyV29ya2Zsb3cnKTtcblxuICAgIGlmICghb3B0aW9ucy5zb25hckhvc3RVcmwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWN0aW9uU29uYXJXb3JrZmxvdyByZXF1aXJlcyBzb25hckhvc3RVcmwnKTtcbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IHNjb3BlLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBY3Rpb25Tb25hcldvcmtmbG93IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc29uYXJUb2tlblNlY3JldCA9IG9wdGlvbnMuc29uYXJUb2tlblNlY3JldCA/PyAnU09OQVJfVE9LRU4nO1xuICAgIGNvbnN0IHB1bGxSZXF1ZXN0R2F0ZSA9IG9wdGlvbnMuc29uYXJQdWxsUmVxdWVzdEdhdGUgPz8gdHJ1ZTtcbiAgICBjb25zdCBzb25hck9yZ2FuaXphdGlvbiA9IG9wdGlvbnMuc29uYXJPcmdhbml6YXRpb24gPz8gJ3hwZXJ0c3MnO1xuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuR2l0aHViV29ya2Zsb3coZ2gsICdzb25hcicpO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLndvcmtmbG93LmZpbGUsXG4gICAgICAnU3RhdGljLWFuYWx5c2lzIHNjYW4gb2YgdGhlIGFjdGlvbiBvbiB0aGUgb3JnIFNvbmFyQ2xvdWQuJyxcbiAgICApO1xuICAgIHRoaXMud29ya2Zsb3cub24oe1xuICAgICAgcHVzaDogeyBicmFuY2hlczogWydtYWluJ10gfSxcbiAgICAgIC4uLihwdWxsUmVxdWVzdEdhdGUgPyB7IHB1bGxSZXF1ZXN0OiB7fSB9IDoge30pLFxuICAgIH0pO1xuICAgIHRoaXMud29ya2Zsb3cuYWRkSm9iKCdzb25hcicsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIGVudjogeyBTT05BUl9UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtzb25hclRva2VuU2VjcmV0fSB9fWAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLmNoZWNrb3V0KCksXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBzb25hci1zY2FubmVyJyxcbiAgICAgICAgICBydW46IGBzZXQgLWV1byBwaXBlZmFpbFxuY3VybCAtZnNTTCAtbyAvdG1wL3NvbmFyLXNjYW5uZXIuemlwIFwiaHR0cHM6Ly9iaW5hcmllcy5zb25hcnNvdXJjZS5jb20vRGlzdHJpYnV0aW9uL3NvbmFyLXNjYW5uZXItY2xpL3NvbmFyLXNjYW5uZXItY2xpLSR7U09OQVJfU0NBTk5FUl9WRVJTSU9OfS1saW51eC14NjQuemlwXCJcbmVjaG8gXCIke1NPTkFSX1NDQU5ORVJfU0hBMjU2fSAgL3RtcC9zb25hci1zY2FubmVyLnppcFwiIHwgc2hhMjU2c3VtIC1jIC1cbnVuemlwIC1xIC90bXAvc29uYXItc2Nhbm5lci56aXAgLWQgL3RtcFxuZWNobyBcIi90bXAvc29uYXItc2Nhbm5lci0ke1NPTkFSX1NDQU5ORVJfVkVSU0lPTn0tbGludXgteDY0L2JpblwiID4+IFwiJEdJVEhVQl9QQVRIXCJcbmAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2NhbicsXG4gICAgICAgICAgcnVuOiBgc29uYXItc2Nhbm5lciBcXFxcXG4gIC1Ec29uYXIuaG9zdC51cmw9JHtvcHRpb25zLnNvbmFySG9zdFVybH0gXFxcXFxuICAtRHNvbmFyLm9yZ2FuaXphdGlvbj0ke3NvbmFyT3JnYW5pemF0aW9ufSBcXFxcXG4gIC1Ec29uYXIucHJvamVjdEtleT0ke3Njb3BlLm5hbWV9IFxcXFxcbiAgLURzb25hci5wcm9qZWN0VmVyc2lvbj1cIiQoZ2l0IGRlc2NyaWJlIC0tdGFncyAtLWFsd2F5cylcIiBcXFxcXG4gIC1Ec29uYXIuaW5jbHVzaW9ucz0uZ2l0aHViL3dvcmtmbG93cy8qKixhY3Rpb24ueW1sLCoqLyouc2ggXFxcXFxuICAtRHNvbmFyLnF1YWxpdHlnYXRlLndhaXQ9dHJ1ZWAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -10,8 +10,10 @@ export interface GitHubActionProjectOptions extends github.GitHubProjectOptions
|
|
|
10
10
|
readonly description?: string;
|
|
11
11
|
/**
|
|
12
12
|
* Name of the GitHub Actions secret holding the PAT used for
|
|
13
|
-
* projen-automation PR comments (F003) and
|
|
14
|
-
*
|
|
13
|
+
* projen-automation PR comments (F003) and the drift-check's PR comments.
|
|
14
|
+
* It is **not** wired into the dogfood automatically: a dogfood that invokes
|
|
15
|
+
* an action with a `token` input must reference this secret in the step's
|
|
16
|
+
* `inputs` (e.g. `token: '${{ secrets.PROJEN_GITHUB_TOKEN }}'`).
|
|
15
17
|
* @default "PROJEN_GITHUB_TOKEN"
|
|
16
18
|
*/
|
|
17
19
|
readonly gheTokenSecret?: string;
|
|
@@ -21,6 +23,12 @@ export interface GitHubActionProjectOptions extends github.GitHubProjectOptions
|
|
|
21
23
|
* Required, no default: a guessed server is worse than a loud failure.
|
|
22
24
|
*/
|
|
23
25
|
readonly sonarHostUrl: string;
|
|
26
|
+
/**
|
|
27
|
+
* SonarCloud organization key (`sonar.organization`), required by the
|
|
28
|
+
* Scanner CLI on SonarCloud.
|
|
29
|
+
* @default "xpertss"
|
|
30
|
+
*/
|
|
31
|
+
readonly sonarOrganization?: string;
|
|
24
32
|
/** @default "SONAR_TOKEN" */
|
|
25
33
|
readonly sonarTokenSecret?: string;
|
|
26
34
|
/**
|
|
@@ -64,7 +64,7 @@ hand-committed.
|
|
|
64
64
|
* per the action's own F### spec - this type only lints it.
|
|
65
65
|
*/
|
|
66
66
|
class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
67
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubActionProject", version: "0.0.
|
|
67
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubActionProject", version: "0.0.20" };
|
|
68
68
|
buildWorkflow;
|
|
69
69
|
dogfoodWorkflow;
|
|
70
70
|
sonarWorkflow;
|
|
@@ -139,6 +139,7 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
139
139
|
this.dogfoodWorkflow = new action_dogfood_workflow_1.ActionDogfoodWorkflow(this, options.dogfood);
|
|
140
140
|
this.sonarWorkflow = new action_sonar_workflow_1.ActionSonarWorkflow(this, {
|
|
141
141
|
sonarHostUrl: options.sonarHostUrl,
|
|
142
|
+
sonarOrganization: options.sonarOrganization,
|
|
142
143
|
sonarTokenSecret: options.sonarTokenSecret,
|
|
143
144
|
sonarPullRequestGate: options.sonarPullRequestGate,
|
|
144
145
|
});
|
|
@@ -169,4 +170,4 @@ class GitHubActionProject extends projen_1.github.GitHubProject {
|
|
|
169
170
|
}
|
|
170
171
|
}
|
|
171
172
|
exports.GitHubActionProject = GitHubActionProject;
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbi1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FNZ0I7QUFDaEIsbUVBQThEO0FBQzlELHVFQUF3RjtBQUN4RixtRUFBOEQ7QUFDOUQsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUseURBQXdEO0FBQ3hELHVGQUFpRjtBQUNqRix1REFBaUU7QUFDakUsK0ZBQXlGO0FBQ3pGLGlFQUFpRTtBQUVqRSwyRUFBMkU7QUFDM0UseUVBQXlFO0FBQ3pFLCtEQUErRDtBQUMvRCx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQVcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3RFLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUUzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLG1DQUFtQztBQUNuQyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQWdFeEMsU0FBUyxxQkFBcUIsQ0FBQyxPQUFtQztJQUNoRSxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUk7O0VBRXhCLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRTs7Ozs7a0JBS1QsT0FBTyxDQUFDLElBQUk7Ozs7Ozs7Ozs7Ozs7OztDQWU3QixDQUFDO0FBQ0YsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsZUFBTSxDQUFDLGFBQWE7O0lBQzNDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUF3QjtJQUN2QyxhQUFhLENBQXNCO0lBQ25DLE9BQU8sQ0FBa0I7SUFFekMsWUFBWSxPQUFtQztRQUM3QyxJQUFJ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WTtZQUNsQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1lBQzFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7U0FDbkQsQ0FBQyxDQUFDO1FBRUgscURBQXFEO1FBQ3JELGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUscUVBQXFFO1FBQ3JFLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsbUVBQW1FO1lBQ25FLHdEQUF3RDtZQUN4RCxrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ2hDLFdBQVcsRUFBRSxjQUFjO1lBQzNCLGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLGdCQUFnQixFQUFFO1lBQ3ZELGNBQWMsRUFBRSxnQkFBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUU7WUFDbkQsV0FBVyxFQUFFLDBCQUEwQixzQkFBc0IsRUFBRTtZQUMvRCx5QkFBeUIsRUFBRTtnQkFDekIsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRTthQUNoRDtTQUNGLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSxzRUFBc0U7UUFDdEUsa0VBQWtFO1FBQ2xFLDZDQUE2QztRQUM3QyxJQUFBLHNDQUFtQixFQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLCtCQUErQixDQUFDLEVBQ2pELHFGQUFxRixDQUN0RixDQUFDO0lBQ0osQ0FBQzs7QUExSEgsa0RBMkhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSnNvbkZpbGUsXG4gIFJlbGVhc2FibGVDb21taXRzLFxuICBZYW1sRmlsZSxcbiAgZ2l0aHViLFxuICByZWxlYXNlLFxufSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQWN0aW9uQnVpbGRXb3JrZmxvdyB9IGZyb20gJy4vYWN0aW9uLWJ1aWxkLXdvcmtmbG93JztcbmltcG9ydCB7IEFjdGlvbkRvZ2Zvb2RPcHRpb25zLCBBY3Rpb25Eb2dmb29kV29ya2Zsb3cgfSBmcm9tICcuL2FjdGlvbi1kb2dmb29kLXdvcmtmbG93JztcbmltcG9ydCB7IEFjdGlvblNvbmFyV29ya2Zsb3cgfSBmcm9tICcuL2FjdGlvbi1zb25hci13b3JrZmxvdyc7XG5pbXBvcnQgeyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9lZGl0b3Jjb25maWcnO1xuaW1wb3J0IHsgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC1hY3Rpb25zJztcbmltcG9ydCB7IGFkZExpY2Vuc2VGaWxlIH0gZnJvbSAnLi4vY29tbW9uL2xpY2Vuc2UtZmlsZSc7XG5pbXBvcnQgeyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmltcG9ydCB7IGF0dGFjaFR5cGVTY3JpcHRQcm9qZW5yYyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW5yYy10cyc7XG5pbXBvcnQgeyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1wdXJwb3NlJztcblxuLy8gYHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKWAvYHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpYCByZXNvbHZlXG4vLyB2aWEgTm9kZSdzIG5vcm1hbCBtb2R1bGUgcmVzb2x1dGlvbiwgc28gaW4gYSAqcHVibGlzaGVkKiBwYWNrYWdlIHRoZXNlXG4vLyByZWFkIHRoZSB2ZXJzaW9ucyBhY3R1YWxseSBpbnN0YWxsZWQgaW4gdGhlIGNvbnN1bWluZyByZXBvJ3Ncbi8vIG5vZGVfbW9kdWxlcyAtIGV4YWN0bHkgdGhlIFwiUFJPSkVOX1ZFUlNJT04gb2YgdGhlIHN5bnRoXCIgLyBcInZlcnNpb24gb2Zcbi8vIHRoaXMgcGFja2FnZSB0aGF0IHNjYWZmb2xkZWQgdGhlIHJlcG9cIiB0aGUgcHJpdmF0ZSBwYWNrYWdlLmpzb24nc1xuLy8gZGV2RGVwZW5kZW5jaWVzIG5lZWQgdG8gcGluIChzZWUgRjAxMCBDSS1kZXBlbmRlbmNpZXMgc2VjdGlvbikuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG4vLyBFeGFjdCBwaW4sIHJlY29yZGVkIGFzIGEgY29tcG9uZW50IGNvbnN0YW50IChBRC0wMDE6IG5vIGxhdGVzdC9tb3Zpbmdcbi8vIHRhZy9zZW12ZXIgcmFuZ2UgaW4gYW55dGhpbmcgYSBnZW5lcmF0ZWQgcmVwbyBkZXBlbmRzIG9uKS4gVXBncmFkaW5nIHRoaXNcbi8vIGlzIGEgcmV2aWV3ZWQgZGlmZiBvZiB0aGlzIGZpbGUuXG5jb25zdCBDT01NSVRfQU5EX1RBR19WRVJTSU9OID0gJzEzLjIuMSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViQWN0aW9uUHJvamVjdE9wdGlvbnNcbiAgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogT25lLWxpbmUgZGVzY3JpcHRpb24gb2YgdGhlIGFjdGlvbi4gVXNlZCBpbiB0aGUgZGVmYXVsdCBSRUFETUVcbiAgICogdGVtcGxhdGUgYW5kIHJlY29yZGVkIGluIHRoZSBwcml2YXRlIGBwYWNrYWdlLmpzb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEdpdEh1YiBBY3Rpb25zIHNlY3JldCBob2xkaW5nIHRoZSBQQVQgdXNlZCBmb3JcbiAgICogcHJvamVuLWF1dG9tYXRpb24gUFIgY29tbWVudHMgKEYwMDMpIGFuZCwgd2hlbiB0aGUgYWN0aW9uIGhhcyBhXG4gICAqIGB0b2tlbmAgaW5wdXQsIHRoZSBkb2dmb29kJ3MgaW52b2NhdGlvbiBvZiBpdC5cbiAgICogQGRlZmF1bHQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCJcbiAgICovXG4gIHJlYWRvbmx5IGdoZVRva2VuU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIG9yZydzIFNvbmFyQ2xvdWQgaW5zdGFuY2UgKGUuZy4gYGh0dHBzOi8vc29uYXJjbG91ZC5pb2ApLlxuICAgKiBNVVNUIGJlIHJlYWNoYWJsZSBmcm9tIGdpdGh1Yi5jb20taG9zdGVkIChwdWJsaWMpIHJ1bm5lcnMgKEFELTAwMSkuXG4gICAqIFJlcXVpcmVkLCBubyBkZWZhdWx0OiBhIGd1ZXNzZWQgc2VydmVyIGlzIHdvcnNlIHRoYW4gYSBsb3VkIGZhaWx1cmUuXG4gICAqL1xuICByZWFkb25seSBzb25hckhvc3RVcmw6IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJTT05BUl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IHNvbmFyVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHNvbmFyLnltbGAgYWxzbyBydW5zIG9uIGBwdWxsX3JlcXVlc3RgIGFzIGEgcGFzcy9mYWlsIGdhdGUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHVsbFJlcXVlc3RHYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRvZ2Zvb2Qgc2NlbmFyaW8gKEFELTAwMSkuIFdoYXQgZml4dHVyZSBzdGF0ZSwgd2hhdCB0byBhc3NlcnQsIGFuZFxuICAgKiBob3cgdG8gY2xlYW4gdXAgYXJlIHNwZWNpZmllZCBieSB0aGUgYWN0aW9uJ3Mgb3duIEYjIyMgc3BlYyAtIHRoZVxuICAgKiBoaWdoZXN0LXJpc2sgYmVoYXZpb3Igb2YgdGhhdCBhY3Rpb24uXG4gICAqXG4gICAqIEl0cyB0eXBlIGlzIGEgc3RydWN0LCB3aGljaCBwcm9qZW4ncyBDTEkgY2Fubm90IHJlbmRlciBpbnRvIGEgcHJvamVucmMsXG4gICAqIHNvIGl0IGNhbiBvbmx5IGJlIHdyaXR0ZW4gYnkgaGFuZCAtIGl0IGlzIHRoZXJlZm9yZSBvcHRpb25hbCwgYmVjYXVzZSBhXG4gICAqICpyZXF1aXJlZCogb3B0aW9uIGBwcm9qZW4gbmV3YCBjYW5ub3Qgc3VwcGx5IHdvdWxkIG1ha2UgdGhpcyBwcm9qZWN0XG4gICAqIHR5cGUgaW1wb3NzaWJsZSB0byBzY2FmZm9sZC4gQUQtMDAxJ3MgXCJuZXZlciBhIHNpbGVudCBuby1vcCBkb2dmb29kXCJcbiAgICogcnVsZSBpcyBlbmZvcmNlZCBpbnN0ZWFkIGJ5IHRoZSB3b3JrZmxvdyBpdCBnZW5lcmF0ZXMgaW4gdGhhdCBjYXNlOiBhXG4gICAqIHNpbmdsZSBzdGVwIHRoYXQgZmFpbHMgb24gZXZlcnkgUFIgdW50aWwgYSBzY2VuYXJpbyBpcyBkZWNsYXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdGVzdC1kb2dmb29kLnltbGAgcnVucyBvbmUgZmFpbGluZyBzdGVwIHRoYXQgdGVsbHMgeW91IHRvXG4gICAqIGRlY2xhcmUgYSBzY2VuYXJpb1xuICAgKi9cbiAgcmVhZG9ubHkgZG9nZm9vZD86IEFjdGlvbkRvZ2Zvb2RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBTUERYIGlkZW50aWZpZXIgZm9yIHRoZSBnZW5lcmF0ZWQgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcIk1JVFwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIHByb2plbi1tYW5hZ2VkIGAuZWRpdG9yY29uZmlnYC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yY29uZmlnPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFJlYWRtZUNvbnRlbnRzKG9wdGlvbnM6IEdpdEh1YkFjdGlvblByb2plY3RPcHRpb25zKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAjICR7b3B0aW9ucy5uYW1lfVxuXG4ke29wdGlvbnMuZGVzY3JpcHRpb24gPz8gJyd9XG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYHlhbWxcbi0gdXNlczogeHBlcnRzcy8ke29wdGlvbnMubmFtZX1APHJlZj5cblxcYFxcYFxcYFxuXG4jIyBCdW1waW5nXG5cbkEgXFxgZmVhdDpcXGAvXFxgZml4OlxcYCBjb21taXQgcHVzaGVkIHRvIFxcYG1haW5cXGAgaXMgcmVsZWFzZWQgYXV0b21hdGljYWxseTogYnVtcCxcbnRhZyBcXGB2WC5ZLlpcXGAsIEdpdEh1YiBSZWxlYXNlLiBTZWUgXFxgLmdpdGh1Yi93b3JrZmxvd3MvcmVsZWFzZS55bWxcXGAuXG5cbiMjIFRydXN0IGNvbnRyYWN0XG5cblRoaXMgaXMgYSBjb21wb3NpdGUgKHNoZWxsKSBhY3Rpb24gLSBubyBOb2RlL25wbSBhdCBydW50aW1lLCBubyBEb2NrZXIuIEl0c1xuQ0kgbGludCBnYXRlIChcXGBidWlsZC55bWxcXGApLCBkb2dmb29kIHRlc3QgKFxcYHRlc3QtZG9nZm9vZC55bWxcXGApLCBhbmQgU29uYXJcbnNjYW4gKFxcYHNvbmFyLnltbFxcYCkgYXJlIHNjYWZmb2xkZWQgYnkgXFxgQHhwZXJ0c3MvcHJvamVuLXR5cGVzXFxgJ1xuXFxgR2l0SHViQWN0aW9uUHJvamVjdFxcYDsgb25seSBcXGBhY3Rpb24ueW1sXFxgIGFuZCBpdHMgc2hlbGwgc2NyaXB0cyBhcmVcbmhhbmQtY29tbWl0dGVkLlxuYDtcbn1cblxuLyoqXG4gKiBTY2FmZm9sZHMgdGhlIHJlcG8gbGlmZWN5Y2xlIChBRC0wMDEpIGFyb3VuZCBhIGhhbmQtY29tbWl0dGVkLCBjb21wb3NpdGVcbiAqIChzaGVsbCkgR2l0SHViIEFjdGlvbjogdGhlIGBidWlsZGAvYHRlc3QtZG9nZm9vZGAvYHNvbmFyYC9gcmVsZWFzZWBcbiAgKiB3b3JrZmxvd3MsIHZlcnNpb25pbmcgYW5kIHJlbGVhc2UgZGlzY2lwbGluZSwgdGhlIEYwMDMgdmVyaWZ5IGNvbXBvbmVudHMsXG4gICogYW5kIHJlcG8gYm9pbGVycGxhdGUgKGEgcHJpdmF0ZSB2ZXJzaW9uLXNvdXJjZSBgcGFja2FnZS5qc29uYCwgYC55YW1sbGludGAsXG4gICogYExJQ0VOU0VgLCBhbmQgYSBgUkVBRE1FLm1kYCB0ZW1wbGF0ZSkuIFRoZVxuICogYWN0aW9uJ3Mgb3duIGNvbnRlbnRcbiAqIChgYWN0aW9uLnltbGAsIGl0cyBzaGVsbCBzY3JpcHRzLCBgdGVzdC9gIGZpeHR1cmVzKSBpcyBhdXRob3JlZCBieSBoYW5kXG4gKiBwZXIgdGhlIGFjdGlvbidzIG93biBGIyMjIHNwZWMgLSB0aGlzIHR5cGUgb25seSBsaW50cyBpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdEh1YkFjdGlvblByb2plY3QgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBidWlsZFdvcmtmbG93OiBBY3Rpb25CdWlsZFdvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgZG9nZm9vZFdvcmtmbG93OiBBY3Rpb25Eb2dmb29kV29ya2Zsb3c7XG4gIHB1YmxpYyByZWFkb25seSBzb25hcldvcmtmbG93OiBBY3Rpb25Tb25hcldvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsZWFzZTogcmVsZWFzZS5SZWxlYXNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEdpdEh1YkFjdGlvblByb2plY3RPcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnNvbmFySG9zdFVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWJBY3Rpb25Qcm9qZWN0IHJlcXVpcmVzIHNvbmFySG9zdFVybCcpO1xuICAgIH1cbiAgICAvLyBBIGRlY2xhcmVkLWJ1dC1pbmNvbXBsZXRlIGRvZ2Zvb2QgaXMgc3RpbGwgYW4gZXJyb3IgLSBzZWVcbiAgICAvLyBgQWN0aW9uRG9nZm9vZFdvcmtmbG93YCwgd2hpY2ggb3ducyB0aGF0IGNoZWNrIChhbmQgdGhlXG4gICAgLy8gbm8tZG9nZm9vZC1kZWNsYXJlZCBjYXNlKS5cblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zLCBwdWxsUmVxdWVzdExpbnQ6IGZhbHNlIH0sXG4gICAgICByZWFkbWU6IG9wdGlvbnMucmVhZG1lID8/IHsgY29udGVudHM6IGRlZmF1bHRSZWFkbWVDb250ZW50cyhvcHRpb25zKSB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2ggPSB0aGlzLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdHaXRIdWJBY3Rpb25Qcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgLy8gSmV0QnJhaW5zIElERSBzdGF0ZSAoLmlkZWEvKSBpcyBuZXZlciB0cmFja2VkIGluIGdlbmVyYXRlZCByZXBvcywgYW5kXG4gICAgLy8gbmVpdGhlciBpcyAvc3BlYy8gKGxvY2FsIHBsYW5zIGFuZCBzcGVjczsgdGhlIHBhdHRlcm4gY292ZXJzIGV2ZXJ5XG4gICAgLy8gc3ViZGlyZWN0b3J5KS5cbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLy5pZGVhLyonKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnL3NwZWMvJyk7XG5cbiAgICBpZiAob3B0aW9ucy5lZGl0b3Jjb25maWcgPz8gdHJ1ZSkge1xuICAgICAgYWRkRWRpdG9yQ29uZmlnKHRoaXMpO1xuICAgIH1cblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuXG4gICAgYWRkTGljZW5zZUZpbGUodGhpcywge1xuICAgICAgc3BkeDogb3B0aW9ucy5saWNlbnNlID8/ICdNSVQnLFxuICAgICAgY29weXJpZ2h0T3duZXI6ICd4cGVydHNzJyxcbiAgICB9KTtcblxuICAgIC8vIGAucHJvamVucmMudHNgICsgYG5weCBwcm9qZW5gLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIHR5cGUgaGVyZS4gQSBiYXJlXG4gICAgLy8gR2l0SHViUHJvamVjdCBoYXMgbm8gZGVmYXVsdCB0YXNrIHRoYXQgcnVucyBhIHByb2plbnJjIG9uIGl0cyBvd24sIHNvXG4gICAgLy8gdGhpcyBpcyB3aGF0IG1ha2VzIGBucHggcHJvamVuYCB3b3JrIGluIHRoZSBnZW5lcmF0ZWQgcmVwbyBhdCBhbGwuXG4gICAgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjKHRoaXMpO1xuXG4gICAgLy8gcHJvamVuIG1hcmtzIGdlbmVyYXRlZCBmaWxlcyByZWFkLW9ubHkgKDA0NDQpIG9uIGRpc2sgYnkgZGVmYXVsdCwgYnV0XG4gICAgLy8gdGhpcyBvbmUgbXVzdCBzdGF5IG93bmVyLXdyaXRhYmxlOiB0aGUgZG9jdW1lbnRlZCB1cGRhdGUgZmxvd1xuICAgIC8vIChgbnBtIGkgLUQgQHhwZXJ0c3MvcHJvamVuLXR5cGVzQGxhdGVzdGApIG5lZWRzIG5wbSB0byByZXdyaXRlIHRoZVxuICAgIC8vIHBpbm5lZCB2ZXJzaW9ucyBpbiBhbiBleGlzdGluZyByZXBvLiBIYW5kLWVkaXRzIGFyZSBzdGlsbCBjYXVnaHQgYnlcbiAgICAvLyB0aGUgZHJpZnQgY2hlY2suXG4gICAgbmV3IEpzb25GaWxlKHRoaXMsICdwYWNrYWdlLmpzb24nLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICBwcml2YXRlOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ3Byb2plbic6IFBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICdAeHBlcnRzcy9wcm9qZW4tdHlwZXMnOiBQUk9KRU5fVFlQRVNfVkVSU0lPTixcbiAgICAgICAgICAnY29tbWl0LWFuZC10YWctdmVyc2lvbic6IENPTU1JVF9BTkRfVEFHX1ZFUlNJT04sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgbmV3IFlhbWxGaWxlKHRoaXMsICcueWFtbGxpbnQnLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgZXh0ZW5kczogJ2RlZmF1bHQnLFxuICAgICAgICBydWxlczogeyAnbGluZS1sZW5ndGgnOiB7IG1heDogMTIwIH0gfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3cgPSBuZXcgQWN0aW9uQnVpbGRXb3JrZmxvdyh0aGlzKTtcblxuICAgIHRoaXMuZG9nZm9vZFdvcmtmbG93ID0gbmV3IEFjdGlvbkRvZ2Zvb2RXb3JrZmxvdyh0aGlzLCBvcHRpb25zLmRvZ2Zvb2QpO1xuXG4gICAgdGhpcy5zb25hcldvcmtmbG93ID0gbmV3IEFjdGlvblNvbmFyV29ya2Zsb3codGhpcywge1xuICAgICAgc29uYXJIb3N0VXJsOiBvcHRpb25zLnNvbmFySG9zdFVybCxcbiAgICAgIHNvbmFyVG9rZW5TZWNyZXQ6IG9wdGlvbnMuc29uYXJUb2tlblNlY3JldCxcbiAgICAgIHNvbmFyUHVsbFJlcXVlc3RHYXRlOiBvcHRpb25zLnNvbmFyUHVsbFJlcXVlc3RHYXRlLFxuICAgIH0pO1xuXG4gICAgLy8gYGdpdGh1YlJlbGVhc2VgIGRlZmF1bHRzIHRvIHRydWUsIHdoaWNoIGF1dG8td2lyZXNcbiAgICAvLyBgcHVibGlzaFRvR2l0SHViUmVsZWFzZXNgIC0gaXRzIGBnaCByZWxlYXNlIGNyZWF0ZSAuLi4gLS10YXJnZXRcbiAgICAvLyAkR0lUSFVCX1NIQWAgY3JlYXRlcyB0aGUgdGFnICphbmQqIHRoZSByZWxlYXNlIHRvZ2V0aGVyIGZvciBvdXJcbiAgICAvLyBjb250aW51b3VzIChwdXNoLXRvLW1haW4pIHRyaWdnZXIuIE5vIHNlcGFyYXRlIGBwdWJsaXNoVG9HaXRgIGNhbGxcbiAgICAvLyBuZWVkZWQgKHRoYXQgcGF0aCBvbmx5IGZpcmVzIGZvciBhIG1hbnVhbCByZWxlYXNlIHRyaWdnZXIpLlxuICAgIHRoaXMucmVsZWFzZSA9IG5ldyByZWxlYXNlLlJlbGVhc2UodGhpcywge1xuICAgICAgYnJhbmNoOiAnbWFpbicsXG4gICAgICAvLyBObyBidWlsZCBhcnRpZmFjdCBmb3IgYSBjb21wb3NpdGUgYWN0aW9uIChBRC0wMDEpIC0gdGhpcyBpcyBvbmx5XG4gICAgICAvLyB3aGVyZSBSZWxlYXNlIHN0YWdlcyBpdHMgb3duIHZlcnNpb24vY2hhbmdlbG9nIGZpbGVzLlxuICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiAnZGlzdCcsXG4gICAgICB0YXNrczogW3RoaXMuYnVpbGRXb3JrZmxvdy50YXNrXSxcbiAgICAgIHZlcnNpb25GaWxlOiAncGFja2FnZS5qc29uJyxcbiAgICAgIHJlbGVhc2FibGVDb21taXRzOiBSZWxlYXNhYmxlQ29tbWl0cy5mZWF0dXJlc0FuZEZpeGVzKCksXG4gICAgICByZWxlYXNlVHJpZ2dlcjogcmVsZWFzZS5SZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKCksXG4gICAgICBidW1wUGFja2FnZTogYGNvbW1pdC1hbmQtdGFnLXZlcnNpb25AJHtDT01NSVRfQU5EX1RBR19WRVJTSU9OfWAsXG4gICAgICByZWxlYXNlV29ya2Zsb3dTZXR1cFN0ZXBzOiBbXG4gICAgICAgIHsgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJywgcnVuOiAnbnBtIGNpJyB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIFRoZSByZWxlYXNlIHdvcmtmbG93IGlzIGNyZWF0ZWQgaW5zaWRlIGByZWxlYXNlLlJlbGVhc2VgIChwcm9qZW5cbiAgICAvLyBpbnRlcm5hbCksIG5vdCBieSB0aGlzIHR5cGUgLSByZWFjaCBpdHMgZmlsZSBieSBwYXRoIHRvIGFubm90YXRlIGl0XG4gICAgLy8gbGlrZSBldmVyeSBvdGhlciBnZW5lcmF0ZWQgd29ya2Zsb3cuIFRoaXMgdHlwZSBpcyBhbHdheXMgYSByb290XG4gICAgLy8gcHJvamVjdCwgc28gcHJvamVuIG5hbWVzIGl0IGByZWxlYXNlLnltbGAuXG4gICAgbm90ZVdvcmtmbG93UHVycG9zZShcbiAgICAgIHRoaXMudHJ5RmluZEZpbGUoJy5naXRodWIvd29ya2Zsb3dzL3JlbGVhc2UueW1sJyksXG4gICAgICAnQ29udGludW91cyByZWxlYXNlIG9uIHB1c2ggdG8gbWFpbjogYnVtcCB2ZXJzaW9uLCB0YWcsIGFuZCBjcmVhdGUgYSBHaXRIdWIgUmVsZWFzZS4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLWFjdGlvbi1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvZ2l0aHViLWFjdGlvbi1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FNZ0I7QUFDaEIsbUVBQThEO0FBQzlELHVFQUF3RjtBQUN4RixtRUFBOEQ7QUFDOUQsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUseURBQXdEO0FBQ3hELHVGQUFpRjtBQUNqRix1REFBaUU7QUFDakUsK0ZBQXlGO0FBQ3pGLGlFQUFpRTtBQUVqRSwyRUFBMkU7QUFDM0UseUVBQXlFO0FBQ3pFLCtEQUErRDtBQUMvRCx5RUFBeUU7QUFDekUsb0VBQW9FO0FBQ3BFLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQVcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3RFLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUUzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLG1DQUFtQztBQUNuQyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQXlFeEMsU0FBUyxxQkFBcUIsQ0FBQyxPQUFtQztJQUNoRSxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUk7O0VBRXhCLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRTs7Ozs7a0JBS1QsT0FBTyxDQUFDLElBQUk7Ozs7Ozs7Ozs7Ozs7OztDQWU3QixDQUFDO0FBQ0YsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsZUFBTSxDQUFDLGFBQWE7O0lBQzNDLGFBQWEsQ0FBc0I7SUFDbkMsZUFBZSxDQUF3QjtJQUN2QyxhQUFhLENBQXNCO0lBQ25DLE9BQU8sQ0FBa0I7SUFFekMsWUFBWSxPQUFtQztRQUM3QyxJQUFJ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WTtZQUNsQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1lBQzVDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDMUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLG9CQUFvQjtTQUNuRCxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxxRUFBcUU7UUFDckUsOERBQThEO1FBQzlELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxFQUFFLE1BQU07WUFDZCxtRUFBbUU7WUFDbkUsd0RBQXdEO1lBQ3hELGtCQUFrQixFQUFFLE1BQU07WUFDMUIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDaEMsV0FBVyxFQUFFLGNBQWM7WUFDM0IsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkQsY0FBYyxFQUFFLGdCQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRTtZQUNuRCxXQUFXLEVBQUUsMEJBQTBCLHNCQUFzQixFQUFFO1lBQy9ELHlCQUF5QixFQUFFO2dCQUN6QixFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFO2FBQ2hEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsbUVBQW1FO1FBQ25FLHNFQUFzRTtRQUN0RSxrRUFBa0U7UUFDbEUsNkNBQTZDO1FBQzdDLElBQUEsc0NBQW1CLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsK0JBQStCLENBQUMsRUFDakQscUZBQXFGLENBQ3RGLENBQUM7SUFDSixDQUFDOztBQTNISCxrREE0SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBKc29uRmlsZSxcbiAgUmVsZWFzYWJsZUNvbW1pdHMsXG4gIFlhbWxGaWxlLFxuICBnaXRodWIsXG4gIHJlbGVhc2UsXG59IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBY3Rpb25CdWlsZFdvcmtmbG93IH0gZnJvbSAnLi9hY3Rpb24tYnVpbGQtd29ya2Zsb3cnO1xuaW1wb3J0IHsgQWN0aW9uRG9nZm9vZE9wdGlvbnMsIEFjdGlvbkRvZ2Zvb2RXb3JrZmxvdyB9IGZyb20gJy4vYWN0aW9uLWRvZ2Zvb2Qtd29ya2Zsb3cnO1xuaW1wb3J0IHsgQWN0aW9uU29uYXJXb3JrZmxvdyB9IGZyb20gJy4vYWN0aW9uLXNvbmFyLXdvcmtmbG93JztcbmltcG9ydCB7IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2VkaXRvcmNvbmZpZyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgYWRkTGljZW5zZUZpbGUgfSBmcm9tICcuLi9jb21tb24vbGljZW5zZS1maWxlJztcbmltcG9ydCB7IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cnO1xuaW1wb3J0IHsgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjIH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbnJjLXRzJztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBgcmVxdWlyZSgncHJvamVuL3BhY2thZ2UuanNvbicpYC9gcmVxdWlyZSgnLi4vLi4vcGFja2FnZS5qc29uJylgIHJlc29sdmVcbi8vIHZpYSBOb2RlJ3Mgbm9ybWFsIG1vZHVsZSByZXNvbHV0aW9uLCBzbyBpbiBhICpwdWJsaXNoZWQqIHBhY2thZ2UgdGhlc2Vcbi8vIHJlYWQgdGhlIHZlcnNpb25zIGFjdHVhbGx5IGluc3RhbGxlZCBpbiB0aGUgY29uc3VtaW5nIHJlcG8nc1xuLy8gbm9kZV9tb2R1bGVzIC0gZXhhY3RseSB0aGUgXCJQUk9KRU5fVkVSU0lPTiBvZiB0aGUgc3ludGhcIiAvIFwidmVyc2lvbiBvZlxuLy8gdGhpcyBwYWNrYWdlIHRoYXQgc2NhZmZvbGRlZCB0aGUgcmVwb1wiIHRoZSBwcml2YXRlIHBhY2thZ2UuanNvbidzXG4vLyBkZXZEZXBlbmRlbmNpZXMgbmVlZCB0byBwaW4gKHNlZSBGMDEwIENJLWRlcGVuZGVuY2llcyBzZWN0aW9uKS5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBQUk9KRU5fVkVSU0lPTjogc3RyaW5nID0gcmVxdWlyZSgncHJvamVuL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1RZUEVTX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG5cbi8vIEV4YWN0IHBpbiwgcmVjb3JkZWQgYXMgYSBjb21wb25lbnQgY29uc3RhbnQgKEFELTAwMTogbm8gbGF0ZXN0L21vdmluZ1xuLy8gdGFnL3NlbXZlciByYW5nZSBpbiBhbnl0aGluZyBhIGdlbmVyYXRlZCByZXBvIGRlcGVuZHMgb24pLiBVcGdyYWRpbmcgdGhpc1xuLy8gaXMgYSByZXZpZXdlZCBkaWZmIG9mIHRoaXMgZmlsZS5cbmNvbnN0IENPTU1JVF9BTkRfVEFHX1ZFUlNJT04gPSAnMTMuMi4xJztcblxuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJBY3Rpb25Qcm9qZWN0T3B0aW9uc1xuICBleHRlbmRzIGdpdGh1Yi5HaXRIdWJQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPbmUtbGluZSBkZXNjcmlwdGlvbiBvZiB0aGUgYWN0aW9uLiBVc2VkIGluIHRoZSBkZWZhdWx0IFJFQURNRVxuICAgKiB0ZW1wbGF0ZSBhbmQgcmVjb3JkZWQgaW4gdGhlIHByaXZhdGUgYHBhY2thZ2UuanNvbmAuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgR2l0SHViIEFjdGlvbnMgc2VjcmV0IGhvbGRpbmcgdGhlIFBBVCB1c2VkIGZvclxuICAgKiBwcm9qZW4tYXV0b21hdGlvbiBQUiBjb21tZW50cyAoRjAwMykgYW5kIHRoZSBkcmlmdC1jaGVjaydzIFBSIGNvbW1lbnRzLlxuICAgKiBJdCBpcyAqKm5vdCoqIHdpcmVkIGludG8gdGhlIGRvZ2Zvb2QgYXV0b21hdGljYWxseTogYSBkb2dmb29kIHRoYXQgaW52b2tlc1xuICAgKiBhbiBhY3Rpb24gd2l0aCBhIGB0b2tlbmAgaW5wdXQgbXVzdCByZWZlcmVuY2UgdGhpcyBzZWNyZXQgaW4gdGhlIHN0ZXAnc1xuICAgKiBgaW5wdXRzYCAoZS5nLiBgdG9rZW46ICcke3sgc2VjcmV0cy5QUk9KRU5fR0lUSFVCX1RPS0VOIH19J2ApLlxuICAgKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZ2hlVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgb3JnJ3MgU29uYXJDbG91ZCBpbnN0YW5jZSAoZS5nLiBgaHR0cHM6Ly9zb25hcmNsb3VkLmlvYCkuXG4gICAqIE1VU1QgYmUgcmVhY2hhYmxlIGZyb20gZ2l0aHViLmNvbS1ob3N0ZWQgKHB1YmxpYykgcnVubmVycyAoQUQtMDAxKS5cbiAgICogUmVxdWlyZWQsIG5vIGRlZmF1bHQ6IGEgZ3Vlc3NlZCBzZXJ2ZXIgaXMgd29yc2UgdGhhbiBhIGxvdWQgZmFpbHVyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvbmFySG9zdFVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTb25hckNsb3VkIG9yZ2FuaXphdGlvbiBrZXkgKGBzb25hci5vcmdhbml6YXRpb25gKSwgcmVxdWlyZWQgYnkgdGhlXG4gICAqIFNjYW5uZXIgQ0xJIG9uIFNvbmFyQ2xvdWQuXG4gICAqIEBkZWZhdWx0IFwieHBlcnRzc1wiXG4gICAqL1xuICByZWFkb25seSBzb25hck9yZ2FuaXphdGlvbj86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJTT05BUl9UT0tFTlwiICovXG4gIHJlYWRvbmx5IHNvbmFyVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYHNvbmFyLnltbGAgYWxzbyBydW5zIG9uIGBwdWxsX3JlcXVlc3RgIGFzIGEgcGFzcy9mYWlsIGdhdGUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvbmFyUHVsbFJlcXVlc3RHYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRvZ2Zvb2Qgc2NlbmFyaW8gKEFELTAwMSkuIFdoYXQgZml4dHVyZSBzdGF0ZSwgd2hhdCB0byBhc3NlcnQsIGFuZFxuICAgKiBob3cgdG8gY2xlYW4gdXAgYXJlIHNwZWNpZmllZCBieSB0aGUgYWN0aW9uJ3Mgb3duIEYjIyMgc3BlYyAtIHRoZVxuICAgKiBoaWdoZXN0LXJpc2sgYmVoYXZpb3Igb2YgdGhhdCBhY3Rpb24uXG4gICAqXG4gICAqIEl0cyB0eXBlIGlzIGEgc3RydWN0LCB3aGljaCBwcm9qZW4ncyBDTEkgY2Fubm90IHJlbmRlciBpbnRvIGEgcHJvamVucmMsXG4gICAqIHNvIGl0IGNhbiBvbmx5IGJlIHdyaXR0ZW4gYnkgaGFuZCAtIGl0IGlzIHRoZXJlZm9yZSBvcHRpb25hbCwgYmVjYXVzZSBhXG4gICAqICpyZXF1aXJlZCogb3B0aW9uIGBwcm9qZW4gbmV3YCBjYW5ub3Qgc3VwcGx5IHdvdWxkIG1ha2UgdGhpcyBwcm9qZWN0XG4gICAqIHR5cGUgaW1wb3NzaWJsZSB0byBzY2FmZm9sZC4gQUQtMDAxJ3MgXCJuZXZlciBhIHNpbGVudCBuby1vcCBkb2dmb29kXCJcbiAgICogcnVsZSBpcyBlbmZvcmNlZCBpbnN0ZWFkIGJ5IHRoZSB3b3JrZmxvdyBpdCBnZW5lcmF0ZXMgaW4gdGhhdCBjYXNlOiBhXG4gICAqIHNpbmdsZSBzdGVwIHRoYXQgZmFpbHMgb24gZXZlcnkgUFIgdW50aWwgYSBzY2VuYXJpbyBpcyBkZWNsYXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdGVzdC1kb2dmb29kLnltbGAgcnVucyBvbmUgZmFpbGluZyBzdGVwIHRoYXQgdGVsbHMgeW91IHRvXG4gICAqIGRlY2xhcmUgYSBzY2VuYXJpb1xuICAgKi9cbiAgcmVhZG9ubHkgZG9nZm9vZD86IEFjdGlvbkRvZ2Zvb2RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBTUERYIGlkZW50aWZpZXIgZm9yIHRoZSBnZW5lcmF0ZWQgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcIk1JVFwiXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIHByb2plbi1tYW5hZ2VkIGAuZWRpdG9yY29uZmlnYC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yY29uZmlnPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFJlYWRtZUNvbnRlbnRzKG9wdGlvbnM6IEdpdEh1YkFjdGlvblByb2plY3RPcHRpb25zKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAjICR7b3B0aW9ucy5uYW1lfVxuXG4ke29wdGlvbnMuZGVzY3JpcHRpb24gPz8gJyd9XG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYHlhbWxcbi0gdXNlczogeHBlcnRzcy8ke29wdGlvbnMubmFtZX1APHJlZj5cblxcYFxcYFxcYFxuXG4jIyBCdW1waW5nXG5cbkEgXFxgZmVhdDpcXGAvXFxgZml4OlxcYCBjb21taXQgcHVzaGVkIHRvIFxcYG1haW5cXGAgaXMgcmVsZWFzZWQgYXV0b21hdGljYWxseTogYnVtcCxcbnRhZyBcXGB2WC5ZLlpcXGAsIEdpdEh1YiBSZWxlYXNlLiBTZWUgXFxgLmdpdGh1Yi93b3JrZmxvd3MvcmVsZWFzZS55bWxcXGAuXG5cbiMjIFRydXN0IGNvbnRyYWN0XG5cblRoaXMgaXMgYSBjb21wb3NpdGUgKHNoZWxsKSBhY3Rpb24gLSBubyBOb2RlL25wbSBhdCBydW50aW1lLCBubyBEb2NrZXIuIEl0c1xuQ0kgbGludCBnYXRlIChcXGBidWlsZC55bWxcXGApLCBkb2dmb29kIHRlc3QgKFxcYHRlc3QtZG9nZm9vZC55bWxcXGApLCBhbmQgU29uYXJcbnNjYW4gKFxcYHNvbmFyLnltbFxcYCkgYXJlIHNjYWZmb2xkZWQgYnkgXFxgQHhwZXJ0c3MvcHJvamVuLXR5cGVzXFxgJ1xuXFxgR2l0SHViQWN0aW9uUHJvamVjdFxcYDsgb25seSBcXGBhY3Rpb24ueW1sXFxgIGFuZCBpdHMgc2hlbGwgc2NyaXB0cyBhcmVcbmhhbmQtY29tbWl0dGVkLlxuYDtcbn1cblxuLyoqXG4gKiBTY2FmZm9sZHMgdGhlIHJlcG8gbGlmZWN5Y2xlIChBRC0wMDEpIGFyb3VuZCBhIGhhbmQtY29tbWl0dGVkLCBjb21wb3NpdGVcbiAqIChzaGVsbCkgR2l0SHViIEFjdGlvbjogdGhlIGBidWlsZGAvYHRlc3QtZG9nZm9vZGAvYHNvbmFyYC9gcmVsZWFzZWBcbiAgKiB3b3JrZmxvd3MsIHZlcnNpb25pbmcgYW5kIHJlbGVhc2UgZGlzY2lwbGluZSwgdGhlIEYwMDMgdmVyaWZ5IGNvbXBvbmVudHMsXG4gICogYW5kIHJlcG8gYm9pbGVycGxhdGUgKGEgcHJpdmF0ZSB2ZXJzaW9uLXNvdXJjZSBgcGFja2FnZS5qc29uYCwgYC55YW1sbGludGAsXG4gICogYExJQ0VOU0VgLCBhbmQgYSBgUkVBRE1FLm1kYCB0ZW1wbGF0ZSkuIFRoZVxuICogYWN0aW9uJ3Mgb3duIGNvbnRlbnRcbiAqIChgYWN0aW9uLnltbGAsIGl0cyBzaGVsbCBzY3JpcHRzLCBgdGVzdC9gIGZpeHR1cmVzKSBpcyBhdXRob3JlZCBieSBoYW5kXG4gKiBwZXIgdGhlIGFjdGlvbidzIG93biBGIyMjIHNwZWMgLSB0aGlzIHR5cGUgb25seSBsaW50cyBpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdEh1YkFjdGlvblByb2plY3QgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBidWlsZFdvcmtmbG93OiBBY3Rpb25CdWlsZFdvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgZG9nZm9vZFdvcmtmbG93OiBBY3Rpb25Eb2dmb29kV29ya2Zsb3c7XG4gIHB1YmxpYyByZWFkb25seSBzb25hcldvcmtmbG93OiBBY3Rpb25Tb25hcldvcmtmbG93O1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsZWFzZTogcmVsZWFzZS5SZWxlYXNlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEdpdEh1YkFjdGlvblByb2plY3RPcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zLnNvbmFySG9zdFVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWJBY3Rpb25Qcm9qZWN0IHJlcXVpcmVzIHNvbmFySG9zdFVybCcpO1xuICAgIH1cbiAgICAvLyBBIGRlY2xhcmVkLWJ1dC1pbmNvbXBsZXRlIGRvZ2Zvb2QgaXMgc3RpbGwgYW4gZXJyb3IgLSBzZWVcbiAgICAvLyBgQWN0aW9uRG9nZm9vZFdvcmtmbG93YCwgd2hpY2ggb3ducyB0aGF0IGNoZWNrIChhbmQgdGhlXG4gICAgLy8gbm8tZG9nZm9vZC1kZWNsYXJlZCBjYXNlKS5cblxuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zLCBwdWxsUmVxdWVzdExpbnQ6IGZhbHNlIH0sXG4gICAgICByZWFkbWU6IG9wdGlvbnMucmVhZG1lID8/IHsgY29udGVudHM6IGRlZmF1bHRSZWFkbWVDb250ZW50cyhvcHRpb25zKSB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2ggPSB0aGlzLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdHaXRIdWJBY3Rpb25Qcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgLy8gSmV0QnJhaW5zIElERSBzdGF0ZSAoLmlkZWEvKSBpcyBuZXZlciB0cmFja2VkIGluIGdlbmVyYXRlZCByZXBvcywgYW5kXG4gICAgLy8gbmVpdGhlciBpcyAvc3BlYy8gKGxvY2FsIHBsYW5zIGFuZCBzcGVjczsgdGhlIHBhdHRlcm4gY292ZXJzIGV2ZXJ5XG4gICAgLy8gc3ViZGlyZWN0b3J5KS5cbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLy5pZGVhLyonKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnL3NwZWMvJyk7XG5cbiAgICBpZiAob3B0aW9ucy5lZGl0b3Jjb25maWcgPz8gdHJ1ZSkge1xuICAgICAgYWRkRWRpdG9yQ29uZmlnKHRoaXMpO1xuICAgIH1cblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuXG4gICAgYWRkTGljZW5zZUZpbGUodGhpcywge1xuICAgICAgc3BkeDogb3B0aW9ucy5saWNlbnNlID8/ICdNSVQnLFxuICAgICAgY29weXJpZ2h0T3duZXI6ICd4cGVydHNzJyxcbiAgICB9KTtcblxuICAgIC8vIGAucHJvamVucmMudHNgICsgYG5weCBwcm9qZW5gLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIHR5cGUgaGVyZS4gQSBiYXJlXG4gICAgLy8gR2l0SHViUHJvamVjdCBoYXMgbm8gZGVmYXVsdCB0YXNrIHRoYXQgcnVucyBhIHByb2plbnJjIG9uIGl0cyBvd24sIHNvXG4gICAgLy8gdGhpcyBpcyB3aGF0IG1ha2VzIGBucHggcHJvamVuYCB3b3JrIGluIHRoZSBnZW5lcmF0ZWQgcmVwbyBhdCBhbGwuXG4gICAgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjKHRoaXMpO1xuXG4gICAgLy8gcHJvamVuIG1hcmtzIGdlbmVyYXRlZCBmaWxlcyByZWFkLW9ubHkgKDA0NDQpIG9uIGRpc2sgYnkgZGVmYXVsdCwgYnV0XG4gICAgLy8gdGhpcyBvbmUgbXVzdCBzdGF5IG93bmVyLXdyaXRhYmxlOiB0aGUgZG9jdW1lbnRlZCB1cGRhdGUgZmxvd1xuICAgIC8vIChgbnBtIGkgLUQgQHhwZXJ0c3MvcHJvamVuLXR5cGVzQGxhdGVzdGApIG5lZWRzIG5wbSB0byByZXdyaXRlIHRoZVxuICAgIC8vIHBpbm5lZCB2ZXJzaW9ucyBpbiBhbiBleGlzdGluZyByZXBvLiBIYW5kLWVkaXRzIGFyZSBzdGlsbCBjYXVnaHQgYnlcbiAgICAvLyB0aGUgZHJpZnQgY2hlY2suXG4gICAgbmV3IEpzb25GaWxlKHRoaXMsICdwYWNrYWdlLmpzb24nLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICBwcml2YXRlOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ3Byb2plbic6IFBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICdAeHBlcnRzcy9wcm9qZW4tdHlwZXMnOiBQUk9KRU5fVFlQRVNfVkVSU0lPTixcbiAgICAgICAgICAnY29tbWl0LWFuZC10YWctdmVyc2lvbic6IENPTU1JVF9BTkRfVEFHX1ZFUlNJT04sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgbmV3IFlhbWxGaWxlKHRoaXMsICcueWFtbGxpbnQnLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgZXh0ZW5kczogJ2RlZmF1bHQnLFxuICAgICAgICBydWxlczogeyAnbGluZS1sZW5ndGgnOiB7IG1heDogMTIwIH0gfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3cgPSBuZXcgQWN0aW9uQnVpbGRXb3JrZmxvdyh0aGlzKTtcblxuICAgIHRoaXMuZG9nZm9vZFdvcmtmbG93ID0gbmV3IEFjdGlvbkRvZ2Zvb2RXb3JrZmxvdyh0aGlzLCBvcHRpb25zLmRvZ2Zvb2QpO1xuXG4gICAgdGhpcy5zb25hcldvcmtmbG93ID0gbmV3IEFjdGlvblNvbmFyV29ya2Zsb3codGhpcywge1xuICAgICAgc29uYXJIb3N0VXJsOiBvcHRpb25zLnNvbmFySG9zdFVybCxcbiAgICAgIHNvbmFyT3JnYW5pemF0aW9uOiBvcHRpb25zLnNvbmFyT3JnYW5pemF0aW9uLFxuICAgICAgc29uYXJUb2tlblNlY3JldDogb3B0aW9ucy5zb25hclRva2VuU2VjcmV0LFxuICAgICAgc29uYXJQdWxsUmVxdWVzdEdhdGU6IG9wdGlvbnMuc29uYXJQdWxsUmVxdWVzdEdhdGUsXG4gICAgfSk7XG5cbiAgICAvLyBgZ2l0aHViUmVsZWFzZWAgZGVmYXVsdHMgdG8gdHJ1ZSwgd2hpY2ggYXV0by13aXJlc1xuICAgIC8vIGBwdWJsaXNoVG9HaXRIdWJSZWxlYXNlc2AgLSBpdHMgYGdoIHJlbGVhc2UgY3JlYXRlIC4uLiAtLXRhcmdldFxuICAgIC8vICRHSVRIVUJfU0hBYCBjcmVhdGVzIHRoZSB0YWcgKmFuZCogdGhlIHJlbGVhc2UgdG9nZXRoZXIgZm9yIG91clxuICAgIC8vIGNvbnRpbnVvdXMgKHB1c2gtdG8tbWFpbikgdHJpZ2dlci4gTm8gc2VwYXJhdGUgYHB1Ymxpc2hUb0dpdGAgY2FsbFxuICAgIC8vIG5lZWRlZCAodGhhdCBwYXRoIG9ubHkgZmlyZXMgZm9yIGEgbWFudWFsIHJlbGVhc2UgdHJpZ2dlcikuXG4gICAgdGhpcy5yZWxlYXNlID0gbmV3IHJlbGVhc2UuUmVsZWFzZSh0aGlzLCB7XG4gICAgICBicmFuY2g6ICdtYWluJyxcbiAgICAgIC8vIE5vIGJ1aWxkIGFydGlmYWN0IGZvciBhIGNvbXBvc2l0ZSBhY3Rpb24gKEFELTAwMSkgLSB0aGlzIGlzIG9ubHlcbiAgICAgIC8vIHdoZXJlIFJlbGVhc2Ugc3RhZ2VzIGl0cyBvd24gdmVyc2lvbi9jaGFuZ2Vsb2cgZmlsZXMuXG4gICAgICBhcnRpZmFjdHNEaXJlY3Rvcnk6ICdkaXN0JyxcbiAgICAgIHRhc2tzOiBbdGhpcy5idWlsZFdvcmtmbG93LnRhc2tdLFxuICAgICAgdmVyc2lvbkZpbGU6ICdwYWNrYWdlLmpzb24nLFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAgICAgIHJlbGVhc2VUcmlnZ2VyOiByZWxlYXNlLlJlbGVhc2VUcmlnZ2VyLmNvbnRpbnVvdXMoKSxcbiAgICAgIGJ1bXBQYWNrYWdlOiBgY29tbWl0LWFuZC10YWctdmVyc2lvbkAke0NPTU1JVF9BTkRfVEFHX1ZFUlNJT059YCxcbiAgICAgIHJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHM6IFtcbiAgICAgICAgeyBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLCBydW46ICducG0gY2knIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIHJlbGVhc2Ugd29ya2Zsb3cgaXMgY3JlYXRlZCBpbnNpZGUgYHJlbGVhc2UuUmVsZWFzZWAgKHByb2plblxuICAgIC8vIGludGVybmFsKSwgbm90IGJ5IHRoaXMgdHlwZSAtIHJlYWNoIGl0cyBmaWxlIGJ5IHBhdGggdG8gYW5ub3RhdGUgaXRcbiAgICAvLyBsaWtlIGV2ZXJ5IG90aGVyIGdlbmVyYXRlZCB3b3JrZmxvdy4gVGhpcyB0eXBlIGlzIGFsd2F5cyBhIHJvb3RcbiAgICAvLyBwcm9qZWN0LCBzbyBwcm9qZW4gbmFtZXMgaXQgYHJlbGVhc2UueW1sYC5cbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgdGhpcy50cnlGaW5kRmlsZSgnLmdpdGh1Yi93b3JrZmxvd3MvcmVsZWFzZS55bWwnKSxcbiAgICAgICdDb250aW51b3VzIHJlbGVhc2Ugb24gcHVzaCB0byBtYWluOiBidW1wIHZlcnNpb24sIHRhZywgYW5kIGNyZWF0ZSBhIEdpdEh1YiBSZWxlYXNlLicsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -8,7 +8,7 @@ const projen_1 = require("projen");
|
|
|
8
8
|
* layered on top of `CdkTypescriptProject`'s pure-infra scaffold.
|
|
9
9
|
*/
|
|
10
10
|
class AppRuntimeScaffold extends projen_1.Component {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.AppRuntimeScaffold", version: "0.0.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.AppRuntimeScaffold", version: "0.0.20" };
|
|
12
12
|
constructor(project, appEntryPoint = 'src/app.ts') {
|
|
13
13
|
super(project, 'AppRuntimeScaffold');
|
|
14
14
|
const app = new projen_1.SourceCode(project, appEntryPoint);
|
|
@@ -13,7 +13,7 @@ const workflow_purpose_1 = require("../common/workflow-purpose");
|
|
|
13
13
|
* application source, a database, and an app-level build/test workflow.
|
|
14
14
|
*/
|
|
15
15
|
class CdkAppProject extends cdk_infra_project_1.CdkInfraProject {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkAppProject", version: "0.0.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkAppProject", version: "0.0.20" };
|
|
17
17
|
constructor(options) {
|
|
18
18
|
super(options);
|
|
19
19
|
new app_runtime_scaffold_1.AppRuntimeScaffold(this, options.appEntryPoint ?? 'src/app.ts');
|
|
@@ -11,7 +11,7 @@ const edge_networking_constructs_1 = require("./components/edge-networking-const
|
|
|
11
11
|
* externally-built images). Reference example: SimulcastAVDelivery.
|
|
12
12
|
*/
|
|
13
13
|
class CdkInfraProject extends cdk_typescript_base_1.CdkTypescriptProject {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkInfraProject", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkInfraProject", version: "0.0.20" };
|
|
15
15
|
constructor(options) {
|
|
16
16
|
super(options);
|
|
17
17
|
if (options.ecrEcs?.enabled) {
|
|
@@ -23,7 +23,7 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
|
|
|
23
23
|
* `ManualDeployWorkflow` when `environments` is provided.
|
|
24
24
|
*/
|
|
25
25
|
class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
26
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.20" };
|
|
27
27
|
constructor(options) {
|
|
28
28
|
super({
|
|
29
29
|
// Spread first, overrides after: forwarding the caller's options is
|
|
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
|
|
|
10
10
|
* built from this project's own source (app projects).
|
|
11
11
|
*/
|
|
12
12
|
class EcrEcsConstructs extends projen_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.20" };
|
|
14
14
|
constructor(project, options = {}) {
|
|
15
15
|
super(project, 'EcrEcsConstructs');
|
|
16
16
|
const externalImageSource = options.externalImageSource ?? true;
|
|
@@ -42,7 +42,7 @@ const HELPERS = {
|
|
|
42
42
|
* to whichever `edgeResources` the consuming project type opts into.
|
|
43
43
|
*/
|
|
44
44
|
class EdgeNetworkingConstructs extends projen_1.Component {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.20" };
|
|
46
46
|
constructor(project, resources) {
|
|
47
47
|
super(project, 'EdgeNetworkingConstructs');
|
|
48
48
|
if (resources.length === 0) {
|
|
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
|
|
|
10
10
|
* the consuming team to wire up; no opinionated default is imposed.
|
|
11
11
|
*/
|
|
12
12
|
class DatabaseComponent extends projen_1.Component {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.20" };
|
|
14
14
|
constructor(project, options = {}) {
|
|
15
15
|
super(project, 'DatabaseComponent');
|
|
16
16
|
const engine = options.engine ?? 'postgres';
|
|
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
|
|
|
6
6
|
const ci_steps_1 = require("./ci-steps");
|
|
7
7
|
const workflow_purpose_1 = require("./workflow-purpose");
|
|
8
8
|
class ProjenDriftCheckWorkflow extends projen_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.20" };
|
|
10
10
|
workflow;
|
|
11
11
|
constructor(scope, options = {}) {
|
|
12
12
|
super(scope, 'ProjenDriftCheckWorkflow');
|
|
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
5
5
|
const projen_1 = require("projen");
|
|
6
6
|
const workflow_purpose_1 = require("./workflow-purpose");
|
|
7
7
|
class WorkflowChangeNoticeWorkflow extends projen_1.Component {
|
|
8
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.
|
|
8
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.20" };
|
|
9
9
|
workflow;
|
|
10
10
|
constructor(scope, options = {}) {
|
|
11
11
|
super(scope, 'WorkflowChangeNoticeWorkflow');
|
|
@@ -18,7 +18,7 @@ const manual_deploy_workflow_1 = require("../../common/manual-deploy-workflow");
|
|
|
18
18
|
* which is exactly when "this repo has no deploy target" needs saying.
|
|
19
19
|
*/
|
|
20
20
|
class CdkDeployHook extends projen_1.Component {
|
|
21
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.
|
|
21
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.20" };
|
|
22
22
|
constructor(project, environments, options = {}) {
|
|
23
23
|
super(project, 'CdkDeployHook');
|
|
24
24
|
const targetRepo = options.targetRepo;
|
|
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
|
|
|
6
6
|
const workflow_purpose_1 = require("../../common/workflow-purpose");
|
|
7
7
|
/** Generates a code index and publishes it to `.cai/` on checkin. */
|
|
8
8
|
class CodeIndexWorkflow extends projen_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.20" };
|
|
10
10
|
constructor(project) {
|
|
11
11
|
super(project, 'CodeIndexWorkflow');
|
|
12
12
|
const gh = project.github;
|
|
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
|
|
|
6
6
|
const workflow_purpose_1 = require("../../common/workflow-purpose");
|
|
7
7
|
/** On-demand build+push of a Docker image, defaulting to Docker Hub. */
|
|
8
8
|
class DockerPublish extends projen_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.20" };
|
|
10
10
|
constructor(project, options = {}) {
|
|
11
11
|
super(project, 'DockerPublish');
|
|
12
12
|
const gh = project.github;
|
|
@@ -11,7 +11,7 @@ const java_versions_1 = require("../java-versions");
|
|
|
11
11
|
* plugin (which Boot's BOM does not manage) is pinned for the Java line.
|
|
12
12
|
*/
|
|
13
13
|
class FlywayMigration extends projen_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.20" };
|
|
15
15
|
constructor(project) {
|
|
16
16
|
super(project, 'FlywayMigration');
|
|
17
17
|
project.addPlugin(`${java_versions_1.FLYWAY_MAVEN_PLUGIN}@${project.pinnedVersion(java_versions_1.FLYWAY_MAVEN_PLUGIN)}`);
|
|
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
|
|
|
6
6
|
const workflow_purpose_1 = require("../../common/workflow-purpose");
|
|
7
7
|
/** On-demand publish to GitHub Packages. */
|
|
8
8
|
class GitHubPackagesPublish extends projen_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.20" };
|
|
10
10
|
constructor(project, options = {}) {
|
|
11
11
|
super(project, 'GitHubPackagesPublish');
|
|
12
12
|
const gh = project.github;
|
|
@@ -9,7 +9,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
|
|
|
9
9
|
* or OIDC trusted publishing.
|
|
10
10
|
*/
|
|
11
11
|
class MavenCentralPublish extends projen_1.Component {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.20" };
|
|
13
13
|
constructor(project, options = {}) {
|
|
14
14
|
super(project, 'MavenCentralPublish');
|
|
15
15
|
const gh = project.github;
|
|
@@ -17,7 +17,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
|
|
|
17
17
|
* check. Apply an update by changing the version in `.projenrc.ts`.
|
|
18
18
|
*/
|
|
19
19
|
class MavenUpgradeReport extends projen_1.Component {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.20" };
|
|
21
21
|
workflow;
|
|
22
22
|
constructor(scope, options) {
|
|
23
23
|
super(scope, 'MavenUpgradeReport');
|
|
@@ -9,7 +9,7 @@ const java_maven_base_1 = require("./java-maven-base");
|
|
|
9
9
|
* explicitly excludes Maven Central, Docker, and CDK deploy hooks.
|
|
10
10
|
*/
|
|
11
11
|
class JavaAppProject extends java_maven_base_1.JavaMavenProject {
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.20" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super(options);
|
|
15
15
|
new github_packages_publish_1.GitHubPackagesPublish(this, {
|
|
@@ -12,7 +12,7 @@ const java_versions_1 = require("./java-versions");
|
|
|
12
12
|
* reactor, every module inherits them).
|
|
13
13
|
*/
|
|
14
14
|
class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.20" };
|
|
16
16
|
constructor(options) {
|
|
17
17
|
super(options);
|
|
18
18
|
this.addPlugin(`${java_versions_1.MAVEN_SOURCE_PLUGIN}@${this.pinnedVersion(java_versions_1.MAVEN_SOURCE_PLUGIN)}`, {
|
|
@@ -44,7 +44,7 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
|
|
|
44
44
|
* check, and a nightly report-only update check.
|
|
45
45
|
*/
|
|
46
46
|
class JavaMavenProject extends projen_1.github.GitHubProject {
|
|
47
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.
|
|
47
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.20" };
|
|
48
48
|
/** The root `pom.xml`. */
|
|
49
49
|
pom;
|
|
50
50
|
/** The canonical Java line the build targets (`1.8`, `17`, `21`, `25`). */
|
|
@@ -17,7 +17,7 @@ const java_spring_boot_project_1 = require("./java-spring-boot-project");
|
|
|
17
17
|
* repo use `JavaSpringBootProject`.
|
|
18
18
|
*/
|
|
19
19
|
class JavaServiceProject extends java_spring_boot_project_1.JavaSpringBootProject {
|
|
20
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.20" };
|
|
21
21
|
constructor(options) {
|
|
22
22
|
super(options);
|
|
23
23
|
this.addDependency('org.springframework.boot/spring-boot-starter-web');
|
|
@@ -22,7 +22,7 @@ const REPACKAGE = { executions: [{ id: 'repackage', goals: ['repackage'] }] };
|
|
|
22
22
|
* and a CDK deploy hook.
|
|
23
23
|
*/
|
|
24
24
|
class JavaSpringBootProject extends java_maven_base_1.JavaMavenProject {
|
|
25
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaSpringBootProject", version: "0.0.
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaSpringBootProject", version: "0.0.20" };
|
|
26
26
|
/** The Spring Boot version (BOM and Maven plugin). */
|
|
27
27
|
springBootVersion;
|
|
28
28
|
constructor(options) {
|
|
@@ -16,7 +16,7 @@ const maven_pom_1 = require("./maven-pom");
|
|
|
16
16
|
* an artifact gets the same version.
|
|
17
17
|
*/
|
|
18
18
|
class MavenModule extends projen_1.Component {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenModule", version: "0.0.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenModule", version: "0.0.20" };
|
|
20
20
|
/** Module directory, relative to the repo root. */
|
|
21
21
|
dir;
|
|
22
22
|
artifactId;
|
|
@@ -58,7 +58,7 @@ function key(c) {
|
|
|
58
58
|
* `executions` and `dependencies` appended.
|
|
59
59
|
*/
|
|
60
60
|
class MavenPom extends projen_1.Component {
|
|
61
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenPom", version: "0.0.
|
|
61
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenPom", version: "0.0.20" };
|
|
62
62
|
/** Path of the pom, relative to the project root. */
|
|
63
63
|
filePath;
|
|
64
64
|
groupId;
|