@rio-cloud/cdk-v2-constructs 3.1.0 → 3.2.0
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 +83 -17
- package/CHANGELOG.md +7 -0
- package/lib/contributions/team-transport-two/pipeline/build-project.d.ts +3 -1
- package/lib/contributions/team-transport-two/pipeline/build-project.js +9 -8
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.d.ts +16 -0
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +14 -4
- package/package.json +1 -1
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -3003,7 +3003,7 @@
|
|
|
3003
3003
|
"kind": "interface",
|
|
3004
3004
|
"locationInModule": {
|
|
3005
3005
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3006
|
-
"line":
|
|
3006
|
+
"line": 103
|
|
3007
3007
|
},
|
|
3008
3008
|
"name": "AppStackProps",
|
|
3009
3009
|
"properties": [
|
|
@@ -3015,7 +3015,7 @@
|
|
|
3015
3015
|
"immutable": true,
|
|
3016
3016
|
"locationInModule": {
|
|
3017
3017
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3018
|
-
"line":
|
|
3018
|
+
"line": 104
|
|
3019
3019
|
},
|
|
3020
3020
|
"name": "serviceName",
|
|
3021
3021
|
"type": {
|
|
@@ -3030,7 +3030,7 @@
|
|
|
3030
3030
|
"immutable": true,
|
|
3031
3031
|
"locationInModule": {
|
|
3032
3032
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3033
|
-
"line":
|
|
3033
|
+
"line": 105
|
|
3034
3034
|
},
|
|
3035
3035
|
"name": "version",
|
|
3036
3036
|
"type": {
|
|
@@ -3361,6 +3361,55 @@
|
|
|
3361
3361
|
"name": "ClaidometerTemplate",
|
|
3362
3362
|
"symbolId": "src/rio-claidometer:ClaidometerTemplate"
|
|
3363
3363
|
},
|
|
3364
|
+
"@rio-cloud/cdk-v2-constructs.CodeBuildOptions": {
|
|
3365
|
+
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
3366
|
+
"datatype": true,
|
|
3367
|
+
"docs": {
|
|
3368
|
+
"stability": "stable"
|
|
3369
|
+
},
|
|
3370
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.CodeBuildOptions",
|
|
3371
|
+
"kind": "interface",
|
|
3372
|
+
"locationInModule": {
|
|
3373
|
+
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3374
|
+
"line": 142
|
|
3375
|
+
},
|
|
3376
|
+
"name": "CodeBuildOptions",
|
|
3377
|
+
"properties": [
|
|
3378
|
+
{
|
|
3379
|
+
"abstract": true,
|
|
3380
|
+
"docs": {
|
|
3381
|
+
"stability": "stable"
|
|
3382
|
+
},
|
|
3383
|
+
"immutable": true,
|
|
3384
|
+
"locationInModule": {
|
|
3385
|
+
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3386
|
+
"line": 144
|
|
3387
|
+
},
|
|
3388
|
+
"name": "buildEnvironment",
|
|
3389
|
+
"optional": true,
|
|
3390
|
+
"type": {
|
|
3391
|
+
"fqn": "aws-cdk-lib.aws_codebuild.BuildEnvironment"
|
|
3392
|
+
}
|
|
3393
|
+
},
|
|
3394
|
+
{
|
|
3395
|
+
"abstract": true,
|
|
3396
|
+
"docs": {
|
|
3397
|
+
"stability": "stable"
|
|
3398
|
+
},
|
|
3399
|
+
"immutable": true,
|
|
3400
|
+
"locationInModule": {
|
|
3401
|
+
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
3402
|
+
"line": 143
|
|
3403
|
+
},
|
|
3404
|
+
"name": "partialBuildSpecPath",
|
|
3405
|
+
"optional": true,
|
|
3406
|
+
"type": {
|
|
3407
|
+
"primitive": "string"
|
|
3408
|
+
}
|
|
3409
|
+
}
|
|
3410
|
+
],
|
|
3411
|
+
"symbolId": "src/contributions/team-transport-two/pipeline/pipeline-stack:CodeBuildOptions"
|
|
3412
|
+
},
|
|
3364
3413
|
"@rio-cloud/cdk-v2-constructs.ComparisonOperator": {
|
|
3365
3414
|
"assembly": "@rio-cloud/cdk-v2-constructs",
|
|
3366
3415
|
"docs": {
|
|
@@ -4426,7 +4475,7 @@
|
|
|
4426
4475
|
"kind": "interface",
|
|
4427
4476
|
"locationInModule": {
|
|
4428
4477
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
4429
|
-
"line":
|
|
4478
|
+
"line": 93
|
|
4430
4479
|
},
|
|
4431
4480
|
"methods": [
|
|
4432
4481
|
{
|
|
@@ -4437,7 +4486,7 @@
|
|
|
4437
4486
|
},
|
|
4438
4487
|
"locationInModule": {
|
|
4439
4488
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
4440
|
-
"line":
|
|
4489
|
+
"line": 100
|
|
4441
4490
|
},
|
|
4442
4491
|
"name": "create",
|
|
4443
4492
|
"parameters": [
|
|
@@ -5591,7 +5640,7 @@
|
|
|
5591
5640
|
},
|
|
5592
5641
|
"locationInModule": {
|
|
5593
5642
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5594
|
-
"line":
|
|
5643
|
+
"line": 157
|
|
5595
5644
|
},
|
|
5596
5645
|
"parameters": [
|
|
5597
5646
|
{
|
|
@@ -5617,7 +5666,7 @@
|
|
|
5617
5666
|
"kind": "class",
|
|
5618
5667
|
"locationInModule": {
|
|
5619
5668
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5620
|
-
"line":
|
|
5669
|
+
"line": 147
|
|
5621
5670
|
},
|
|
5622
5671
|
"name": "PipelineStack",
|
|
5623
5672
|
"symbolId": "src/contributions/team-transport-two/pipeline/pipeline-stack:PipelineStack"
|
|
@@ -5635,7 +5684,7 @@
|
|
|
5635
5684
|
"kind": "interface",
|
|
5636
5685
|
"locationInModule": {
|
|
5637
5686
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5638
|
-
"line":
|
|
5687
|
+
"line": 26
|
|
5639
5688
|
},
|
|
5640
5689
|
"name": "PipelineStackProps",
|
|
5641
5690
|
"properties": [
|
|
@@ -5649,7 +5698,7 @@
|
|
|
5649
5698
|
"immutable": true,
|
|
5650
5699
|
"locationInModule": {
|
|
5651
5700
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5652
|
-
"line":
|
|
5701
|
+
"line": 43
|
|
5653
5702
|
},
|
|
5654
5703
|
"name": "appStackFactory",
|
|
5655
5704
|
"type": {
|
|
@@ -5665,7 +5714,7 @@
|
|
|
5665
5714
|
"immutable": true,
|
|
5666
5715
|
"locationInModule": {
|
|
5667
5716
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5668
|
-
"line":
|
|
5717
|
+
"line": 48
|
|
5669
5718
|
},
|
|
5670
5719
|
"name": "pipelineType",
|
|
5671
5720
|
"type": {
|
|
@@ -5682,13 +5731,30 @@
|
|
|
5682
5731
|
"immutable": true,
|
|
5683
5732
|
"locationInModule": {
|
|
5684
5733
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5685
|
-
"line":
|
|
5734
|
+
"line": 36
|
|
5686
5735
|
},
|
|
5687
5736
|
"name": "serviceName",
|
|
5688
5737
|
"type": {
|
|
5689
5738
|
"primitive": "string"
|
|
5690
5739
|
}
|
|
5691
5740
|
},
|
|
5741
|
+
{
|
|
5742
|
+
"abstract": true,
|
|
5743
|
+
"docs": {
|
|
5744
|
+
"stability": "stable",
|
|
5745
|
+
"summary": "CodeBuild options overriding the rio-specific defaults."
|
|
5746
|
+
},
|
|
5747
|
+
"immutable": true,
|
|
5748
|
+
"locationInModule": {
|
|
5749
|
+
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5750
|
+
"line": 69
|
|
5751
|
+
},
|
|
5752
|
+
"name": "codeBuildOptions",
|
|
5753
|
+
"optional": true,
|
|
5754
|
+
"type": {
|
|
5755
|
+
"fqn": "@rio-cloud/cdk-v2-constructs.CodeBuildOptions"
|
|
5756
|
+
}
|
|
5757
|
+
},
|
|
5692
5758
|
{
|
|
5693
5759
|
"abstract": true,
|
|
5694
5760
|
"docs": {
|
|
@@ -5699,7 +5765,7 @@
|
|
|
5699
5765
|
"immutable": true,
|
|
5700
5766
|
"locationInModule": {
|
|
5701
5767
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5702
|
-
"line":
|
|
5768
|
+
"line": 55
|
|
5703
5769
|
},
|
|
5704
5770
|
"name": "customBuildspecPath",
|
|
5705
5771
|
"optional": true,
|
|
@@ -5717,7 +5783,7 @@
|
|
|
5717
5783
|
"immutable": true,
|
|
5718
5784
|
"locationInModule": {
|
|
5719
5785
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5720
|
-
"line":
|
|
5786
|
+
"line": 64
|
|
5721
5787
|
},
|
|
5722
5788
|
"name": "secretsDeployStepProps",
|
|
5723
5789
|
"optional": true,
|
|
@@ -5740,7 +5806,7 @@
|
|
|
5740
5806
|
"kind": "interface",
|
|
5741
5807
|
"locationInModule": {
|
|
5742
5808
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5743
|
-
"line":
|
|
5809
|
+
"line": 114
|
|
5744
5810
|
},
|
|
5745
5811
|
"name": "PipelineStackRioSecretsDeployStepProps",
|
|
5746
5812
|
"properties": [
|
|
@@ -5752,7 +5818,7 @@
|
|
|
5752
5818
|
"immutable": true,
|
|
5753
5819
|
"locationInModule": {
|
|
5754
5820
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5755
|
-
"line":
|
|
5821
|
+
"line": 115
|
|
5756
5822
|
},
|
|
5757
5823
|
"name": "secretsFilePath",
|
|
5758
5824
|
"type": {
|
|
@@ -5771,7 +5837,7 @@
|
|
|
5771
5837
|
"kind": "enum",
|
|
5772
5838
|
"locationInModule": {
|
|
5773
5839
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
5774
|
-
"line":
|
|
5840
|
+
"line": 118
|
|
5775
5841
|
},
|
|
5776
5842
|
"members": [
|
|
5777
5843
|
{
|
|
@@ -8618,5 +8684,5 @@
|
|
|
8618
8684
|
}
|
|
8619
8685
|
},
|
|
8620
8686
|
"version": "0.0.0",
|
|
8621
|
-
"fingerprint": "
|
|
8687
|
+
"fingerprint": "KAZT9q8erpXruY4HwXZ1NUReCkiJkgo90BU/2W+CTbw="
|
|
8622
8688
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [3.2.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv3.1.0&sourceBranch=refs%2Ftags%2Fv3.2.0) (2022-11-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **contributions:** Pipeline construct - Add option to override code build image ([ac7d344](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/commits/ac7d344082f7a5526e7e2902ec396e1166302197))
|
|
11
|
+
|
|
5
12
|
## [3.1.0](https://collaboration.msi.audi.com/stash/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv3.0.0&sourceBranch=refs%2Ftags%2Fv3.1.0) (2022-10-31)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import * as codebuild from 'aws-cdk-lib/aws-codebuild';
|
|
1
2
|
import * as pipelines from 'aws-cdk-lib/pipelines';
|
|
2
3
|
import { Construct } from 'constructs';
|
|
3
4
|
export interface RioGradleCodeBuildProjectProps {
|
|
4
5
|
input: pipelines.IFileSetProducer;
|
|
5
6
|
cdkOutDirectory?: string;
|
|
6
|
-
|
|
7
|
+
partialBuildSpec: codebuild.BuildSpec;
|
|
8
|
+
buildEnvironment?: codebuild.BuildEnvironment;
|
|
7
9
|
serviceName: string;
|
|
8
10
|
hostedZoneName: string;
|
|
9
11
|
env?: Record<string, string>;
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RioGradleCodeBuildProject = void 0;
|
|
4
|
-
const fs = require("fs");
|
|
5
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
5
|
const codebuild = require("aws-cdk-lib/aws-codebuild");
|
|
7
6
|
const pipelines = require("aws-cdk-lib/pipelines");
|
|
8
|
-
const yaml = require("js-yaml");
|
|
9
7
|
class RioGradleCodeBuildProject extends pipelines.CodeBuildStep {
|
|
10
8
|
constructor(scope, id, props) {
|
|
11
|
-
var _a;
|
|
9
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12
10
|
super(id, {
|
|
13
11
|
input: props.input,
|
|
14
|
-
partialBuildSpec:
|
|
12
|
+
partialBuildSpec: props.partialBuildSpec,
|
|
15
13
|
commands: [],
|
|
16
14
|
buildEnvironment: {
|
|
17
|
-
buildImage: codebuild.LinuxBuildImage.AMAZON_LINUX_2_3,
|
|
18
|
-
computeType: codebuild.ComputeType.LARGE,
|
|
15
|
+
buildImage: ((_a = props === null || props === void 0 ? void 0 : props.buildEnvironment) === null || _a === void 0 ? void 0 : _a.buildImage) || codebuild.LinuxBuildImage.AMAZON_LINUX_2_3,
|
|
16
|
+
computeType: ((_b = props === null || props === void 0 ? void 0 : props.buildEnvironment) === null || _b === void 0 ? void 0 : _b.computeType) || codebuild.ComputeType.LARGE,
|
|
19
17
|
environmentVariables: {
|
|
20
18
|
AWS_ACCOUNT_ID: { value: aws_cdk_lib_1.Stack.of(scope).account },
|
|
21
19
|
SERVICE_NAME: { value: props.serviceName },
|
|
22
20
|
HOSTED_ZONE: { value: props.hostedZoneName },
|
|
21
|
+
...(_c = props.buildEnvironment) === null || _c === void 0 ? void 0 : _c.environmentVariables,
|
|
23
22
|
},
|
|
23
|
+
privileged: (_d = props === null || props === void 0 ? void 0 : props.buildEnvironment) === null || _d === void 0 ? void 0 : _d.privileged,
|
|
24
|
+
certificate: (_e = props === null || props === void 0 ? void 0 : props.buildEnvironment) === null || _e === void 0 ? void 0 : _e.certificate,
|
|
24
25
|
},
|
|
25
|
-
primaryOutputDirectory: (
|
|
26
|
+
primaryOutputDirectory: (_f = props.cdkOutDirectory) !== null && _f !== void 0 ? _f : './',
|
|
26
27
|
env: props.env,
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
exports.RioGradleCodeBuildProject = RioGradleCodeBuildProject;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFvQztBQUNwQyx1REFBdUQ7QUFDdkQsbURBQW1EO0FBYW5ELE1BQWEseUJBQTBCLFNBQVEsU0FBUyxDQUFDLGFBQWE7SUFDcEUsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQzs7UUFDN0UsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFFBQVEsRUFBRSxFQUFFO1lBQ1osZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVUsRUFBRSxPQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxnQkFBZ0IsMENBQUUsVUFBVSxLQUFJLFNBQVMsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCO2dCQUM3RixXQUFXLEVBQUUsT0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLDBDQUFFLFdBQVcsS0FBSSxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ2hGLG9CQUFvQixFQUFFO29CQUNwQixjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUNsRCxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRTtvQkFDMUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUU7b0JBQzVDLFNBQUcsS0FBSyxDQUFDLGdCQUFnQiwwQ0FBRSxvQkFBb0I7aUJBQ2hEO2dCQUNELFVBQVUsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLDBDQUFFLFVBQVU7Z0JBQy9DLFdBQVcsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsZ0JBQWdCLDBDQUFFLFdBQVc7YUFDbEQ7WUFDRCxzQkFBc0IsUUFBRSxLQUFLLENBQUMsZUFBZSxtQ0FBSSxJQUFJO1lBQ3JELEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQ0EsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXZCRCw4REF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvZGVidWlsZCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWJ1aWxkJztcbmltcG9ydCAqIGFzIHBpcGVsaW5lcyBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmlvR3JhZGxlQ29kZUJ1aWxkUHJvamVjdFByb3BzIHtcbiAgaW5wdXQ6IHBpcGVsaW5lcy5JRmlsZVNldFByb2R1Y2VyO1xuICBjZGtPdXREaXJlY3Rvcnk/OiBzdHJpbmc7XG4gIHBhcnRpYWxCdWlsZFNwZWM6IGNvZGVidWlsZC5CdWlsZFNwZWM7XG4gIGJ1aWxkRW52aXJvbm1lbnQ/OiBjb2RlYnVpbGQuQnVpbGRFbnZpcm9ubWVudDtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgaG9zdGVkWm9uZU5hbWU6IHN0cmluZztcbiAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGNsYXNzIFJpb0dyYWRsZUNvZGVCdWlsZFByb2plY3QgZXh0ZW5kcyBwaXBlbGluZXMuQ29kZUJ1aWxkU3RlcCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9HcmFkbGVDb2RlQnVpbGRQcm9qZWN0UHJvcHMpIHtcbiAgICBzdXBlcihpZCwge1xuICAgICAgaW5wdXQ6IHByb3BzLmlucHV0LFxuICAgICAgcGFydGlhbEJ1aWxkU3BlYzogcHJvcHMucGFydGlhbEJ1aWxkU3BlYyxcbiAgICAgIGNvbW1hbmRzOiBbXSxcbiAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgYnVpbGRJbWFnZTogcHJvcHM/LmJ1aWxkRW52aXJvbm1lbnQ/LmJ1aWxkSW1hZ2UgfHwgY29kZWJ1aWxkLkxpbnV4QnVpbGRJbWFnZS5BTUFaT05fTElOVVhfMl8zLFxuICAgICAgICBjb21wdXRlVHlwZTogcHJvcHM/LmJ1aWxkRW52aXJvbm1lbnQ/LmNvbXB1dGVUeXBlIHx8IGNvZGVidWlsZC5Db21wdXRlVHlwZS5MQVJHRSxcbiAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXM6IHtcbiAgICAgICAgICBBV1NfQUNDT1VOVF9JRDogeyB2YWx1ZTogU3RhY2sub2Yoc2NvcGUpLmFjY291bnQgfSxcbiAgICAgICAgICBTRVJWSUNFX05BTUU6IHsgdmFsdWU6IHByb3BzLnNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgSE9TVEVEX1pPTkU6IHsgdmFsdWU6IHByb3BzLmhvc3RlZFpvbmVOYW1lIH0sXG4gICAgICAgICAgLi4ucHJvcHMuYnVpbGRFbnZpcm9ubWVudD8uZW52aXJvbm1lbnRWYXJpYWJsZXMsXG4gICAgICAgIH0sXG4gICAgICAgIHByaXZpbGVnZWQ6IHByb3BzPy5idWlsZEVudmlyb25tZW50Py5wcml2aWxlZ2VkLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogcHJvcHM/LmJ1aWxkRW52aXJvbm1lbnQ/LmNlcnRpZmljYXRlLFxuICAgICAgfSxcbiAgICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHByb3BzLmNka091dERpcmVjdG9yeSA/PyAnLi8nLFxuICAgICAgZW52OiBwcm9wcy5lbnYsXG4gICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Stack, StackProps } from 'aws-cdk-lib';
|
|
2
|
+
import { BuildEnvironment } from 'aws-cdk-lib/aws-codebuild';
|
|
2
3
|
import { Construct } from 'constructs';
|
|
3
4
|
/**
|
|
4
5
|
* @struct
|
|
@@ -38,6 +39,10 @@ export interface PipelineStackProps extends StackProps {
|
|
|
38
39
|
* No secrets are deployed if no path is provided.
|
|
39
40
|
*/
|
|
40
41
|
readonly secretsDeployStepProps?: PipelineStackRioSecretsDeployStepProps;
|
|
42
|
+
/**
|
|
43
|
+
* CodeBuild options overriding the rio-specific defaults.
|
|
44
|
+
*/
|
|
45
|
+
readonly codeBuildOptions?: CodeBuildOptions;
|
|
41
46
|
}
|
|
42
47
|
/**
|
|
43
48
|
* Provider interface to create the AppStack within the specific scope
|
|
@@ -98,8 +103,19 @@ export declare enum PipelineType {
|
|
|
98
103
|
*/
|
|
99
104
|
STANDARD_GRADLE = "STANDARD_GRADLE"
|
|
100
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* @param partialBuildSpecPath Path to a custom build-spec file to use for the main and branch pipeline.
|
|
108
|
+
* @param buildEnvironment Custom CodeBuild build environment overriding the rio-specific defaults. The defaults are:
|
|
109
|
+
* buildImage: AMAZON_LINUX_2_3
|
|
110
|
+
* computeType: LARGE
|
|
111
|
+
*/
|
|
112
|
+
export interface CodeBuildOptions {
|
|
113
|
+
readonly partialBuildSpecPath?: string;
|
|
114
|
+
readonly buildEnvironment?: BuildEnvironment;
|
|
115
|
+
}
|
|
101
116
|
export declare class PipelineStack extends Stack {
|
|
102
117
|
private static addLifecycleRuleArtifactBucket;
|
|
103
118
|
constructor(scope: Construct, id: string, props: PipelineStackProps);
|
|
119
|
+
private loadBuildSpecFromFile;
|
|
104
120
|
private renamePipelineToLowerCase;
|
|
105
121
|
}
|
|
@@ -3,9 +3,11 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.PipelineStack = exports.PipelineType = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const fs = require("fs");
|
|
6
7
|
const path = require("path");
|
|
7
8
|
const cdk = require("aws-cdk-lib");
|
|
8
9
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
10
|
+
const aws_codebuild_1 = require("aws-cdk-lib/aws-codebuild");
|
|
9
11
|
const codepipeline = require("aws-cdk-lib/aws-codepipeline");
|
|
10
12
|
const codepipeline_actions = require("aws-cdk-lib/aws-codepipeline-actions");
|
|
11
13
|
const events = require("aws-cdk-lib/aws-events");
|
|
@@ -14,6 +16,7 @@ const s3 = require("aws-cdk-lib/aws-s3");
|
|
|
14
16
|
const ssm = require("aws-cdk-lib/aws-ssm");
|
|
15
17
|
const pipelines = require("aws-cdk-lib/pipelines");
|
|
16
18
|
const pipelines_1 = require("aws-cdk-lib/pipelines");
|
|
19
|
+
const yaml = require("js-yaml");
|
|
17
20
|
const rio = require("../../../index");
|
|
18
21
|
const index_1 = require("../../../index");
|
|
19
22
|
const upperToLower_1 = require("../../../watchful/upperToLower");
|
|
@@ -39,6 +42,7 @@ var PipelineType;
|
|
|
39
42
|
})(PipelineType = exports.PipelineType || (exports.PipelineType = {}));
|
|
40
43
|
class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
41
44
|
constructor(scope, id, props) {
|
|
45
|
+
var _b, _c, _d, _e, _f;
|
|
42
46
|
super(scope, id, props);
|
|
43
47
|
// Creating the main pipeline
|
|
44
48
|
const bucket = s3.Bucket.fromBucketName(this, 'TriggerBucket', aws_cdk_lib_1.Fn.importValue('bitbucket-integration-s3-bucket'));
|
|
@@ -60,7 +64,8 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
60
64
|
const gradlebuild = new build_project_1.RioGradleCodeBuildProject(this, 'GradleBuild', {
|
|
61
65
|
input: inputMasterTriggerFile,
|
|
62
66
|
cdkOutDirectory: 'infrastructure/cdk.out',
|
|
63
|
-
|
|
67
|
+
partialBuildSpec: this.loadBuildSpecFromFile(((_b = props === null || props === void 0 ? void 0 : props.codeBuildOptions) === null || _b === void 0 ? void 0 : _b.partialBuildSpecPath) || path.resolve(__dirname, 'buildspec.yaml')),
|
|
68
|
+
buildEnvironment: (_c = props === null || props === void 0 ? void 0 : props.codeBuildOptions) === null || _c === void 0 ? void 0 : _c.buildEnvironment,
|
|
64
69
|
hostedZoneName: hostedZone.zoneName,
|
|
65
70
|
serviceName: props.serviceName,
|
|
66
71
|
});
|
|
@@ -103,7 +108,8 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
103
108
|
const branchBuild = new build_project_1.RioGradleCodeBuildProject(this, 'BranchBuild', {
|
|
104
109
|
input: inputBranchTriggerFile,
|
|
105
110
|
cdkOutDirectory: 'infrastructure/cdk.out',
|
|
106
|
-
|
|
111
|
+
partialBuildSpec: this.loadBuildSpecFromFile(((_d = props === null || props === void 0 ? void 0 : props.codeBuildOptions) === null || _d === void 0 ? void 0 : _d.partialBuildSpecPath) || path.resolve(__dirname, 'buildspec.yaml')),
|
|
112
|
+
buildEnvironment: (_e = props === null || props === void 0 ? void 0 : props.codeBuildOptions) === null || _e === void 0 ? void 0 : _e.buildEnvironment,
|
|
107
113
|
hostedZoneName: hostedZone.zoneName,
|
|
108
114
|
serviceName: props.serviceName,
|
|
109
115
|
});
|
|
@@ -121,7 +127,8 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
121
127
|
// Vulnerability Pipeline
|
|
122
128
|
const vulnerabilityBuild = new build_project_1.RioGradleCodeBuildProject(this, 'VulnerabilityChecks', {
|
|
123
129
|
input: inputMasterTriggerFile,
|
|
124
|
-
|
|
130
|
+
partialBuildSpec: this.loadBuildSpecFromFile(path.resolve(__dirname, 'buildspec-vulnerability-checks.yaml')),
|
|
131
|
+
buildEnvironment: (_f = props === null || props === void 0 ? void 0 : props.codeBuildOptions) === null || _f === void 0 ? void 0 : _f.buildEnvironment,
|
|
125
132
|
hostedZoneName: hostedZone.zoneName,
|
|
126
133
|
serviceName: props.serviceName,
|
|
127
134
|
});
|
|
@@ -160,6 +167,9 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
160
167
|
expiration: aws_cdk_lib_1.Duration.days(90),
|
|
161
168
|
});
|
|
162
169
|
}
|
|
170
|
+
loadBuildSpecFromFile(buildSpecPath) {
|
|
171
|
+
return aws_codebuild_1.BuildSpec.fromObject(yaml.load(fs.readFileSync(buildSpecPath, { encoding: 'utf-8' })));
|
|
172
|
+
}
|
|
163
173
|
renamePipelineToLowerCase(pipeline) {
|
|
164
174
|
const upperToLowerCr = new cdk.CustomResource(this, `${pipeline.node.id}-UpperToLower`, {
|
|
165
175
|
resourceType: 'Custom::UpperToLower',
|
|
@@ -174,4 +184,4 @@ class PipelineStack extends aws_cdk_lib_1.Stack {
|
|
|
174
184
|
exports.PipelineStack = PipelineStack;
|
|
175
185
|
_a = JSII_RTTI_SYMBOL_1;
|
|
176
186
|
PipelineStack[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.PipelineStack", version: "0.0.0" };
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUvcGlwZWxpbmUtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDZDQUF5RTtBQUN6RSw2REFBNkQ7QUFDN0QsNkVBQTZFO0FBQzdFLGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFDMUQseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQscURBQXNEO0FBRXRELHNDQUFzQztBQUN0QywwQ0FBaUU7QUFDakUsaUVBQThEO0FBQzlELDJEQUFrRDtBQUNsRCxtREFBNEQ7QUFDNUQseURBQWdIO0FBNEZoSCxJQUFZLFlBZ0JYO0FBaEJELFdBQVksWUFBWTtJQUV0Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxtREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBaEJXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBZ0J2QjtBQUVELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBVXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsNkJBQTZCO1FBQzdCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDO1FBQ2xILE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsTUFBTSxzQkFBc0IsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtB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QkFBZ0I7WUFDNUMsV0FBVztZQUNYLE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBOUpPLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxRQUFnQztRQUM1RSxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUN4RCxlQUE2QixDQUFDLGdCQUFnQixDQUFDO1lBQzlDLE9BQU8sRUFBRSxJQUFJO1lBQ2IsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBMEpPLHlCQUF5QixDQUFDLFFBQWdDO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxFQUFFO1lBQ3RGLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsWUFBWSxFQUFFLDJCQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ2xFLFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBMUtILHNDQTJLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRHVyYXRpb24sIEZuLCBSZWZlcmVuY2UsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY29kZXBpcGVsaW5lIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUnO1xuaW1wb3J0ICogYXMgY29kZXBpcGVsaW5lX2FjdGlvbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBwaXBlbGluZXMgZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvZGVCdWlsZFN0ZXAgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyByaW8gZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7IFVwcGVyVG9Mb3dlciB9IGZyb20gJy4uLy4uLy4uL3dhdGNoZnVsL3VwcGVyVG9Mb3dlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tc3RhZ2UnO1xuaW1wb3J0IHsgUmlvR3JhZGxlQ29kZUJ1aWxkUHJvamVjdCB9IGZyb20gJy4vYnVpbGQtcHJvamVjdCc7XG5pbXBvcnQgeyBEYXRhZG9nUGlwZWxpbmVFcnJvckFsZXJ0LCBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyB9IGZyb20gJy4vZGF0YWRvZy1tb25pdG9ycyc7XG5cbi8qKlxuICAqIEBzdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlXG4gICAqIC0gVGhpcyBoYXMgdG8gYmUgdGhlIHNhbWUgbmFtZSBhcyB0aGUgcmVwb3NpdG9yeSBhcyB0aGUgczMgdHJpZ2dlciBmaWxlIGNyZWF0ZWQgYnkgdGhlIGJpdGJ1Y2tldC1pbnRlZ3JhdGlvbiB1c2VzIHRoaXMgYXMgYSBwcmVmaXhcbiAgICogLSBUaGUgc2VydmljZU5hbWUgaXMgYXZhaWxhYmxlIGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIFNFUlZJQ0VfTkFNRSBpbiB0aGUgQ29kZUJ1aWxkU3RlcFxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBhdmFpbGFibGUgaW4gdGhlIEFwcFN0YWNrUHJvcHMgaW4gdGhlIGFwcFN0YWNrRmFjdG9yeVxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBhdmFpbGFibGUgYXMgc3RhY2tOYW1lIHByb3BlcnR5IGluIHRoZSBBcHBTdGFja1Byb3BzIGluIHRoZSBhcHBTdGFja0ZhY3RvcnkuIEkuZS4gdGhlIHN0YWNrIGlzIG5hbWVkIGFmdGVyIHRoZSBzZXJ2aWNlXG4gICAqIC0gVGhlIHNlcnZpY2VOYW1lIGlzIGhhbmRlZCBvdmVyIHRvIGFsbCBEYXRhZG9nIG1vbml0b3JzXG4gICAqIC0gUklPIGNvbnZlbnRpb24gaXMgdGhhdCB1cGxvYWRlZCBsaWNlbnNlLWNoZWNrLWZpbGVzIGFyZSBuYW1lZCBhZnRlciB0aGUgc2VydmljZSwgaS5lLiBzZXJ2aWNlTmFtZS50eHRcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVyIGZvciBhcHBTdGFjayB0byBiZSBkZXBsb3llZC5cbiAgICpcbiAgICogVGhpcyBhY3RzIGFzIGEgd3JhcHBlciBmb3IgYWxsIHJlc291cmNlcyB5b3Ugd2FudCB0byBkZXBsb3kgdmlhIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcFN0YWNrRmFjdG9yeTogSUFwcFN0YWNrRmFjdG9yeTtcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGljaCBraW5kIG9mIHBpcGVsaW5lIGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVUeXBlOiBQaXBlbGluZVR5cGU7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gYSBjdXN0b20gYnVpbGRzcGVjLnlhbWwgdGhhdCBpcyB1c2VkIGlmIHByb3ZpZGVkLlxuICAgKlxuICAgKiBBIHByZS1kZWZpbmVkIGJ1aWxkc3BlYy55YW1sIGZpdHRpbmcgdGhlIHBpcGVsaW5lVHlwZSBpcyB1c2VkIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUJ1aWxkc3BlY1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gc2VjcmV0cyBmaWxlIGNvbnRhaW5pbmcgZW5jcnlwdGVkIHNlY3JldHMuXG4gICAqXG4gICAqIFRoZSBSaW9TZWNyZXRzRGVwbG95U3RlcCBpcyBhZGRlZCBwcmlvciB0byBkZXBsb3ltZW50IG9mIHRoZSBBcHBTdGFjayBpZiBhIHBhdGggaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIE5vIHNlY3JldHMgYXJlIGRlcGxveWVkIGlmIG5vIHBhdGggaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzRGVwbG95U3RlcFByb3BzPzogUGlwZWxpbmVTdGFja1Jpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHM7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgaW50ZXJmYWNlIHRvIGNyZWF0ZSB0aGUgQXBwU3RhY2sgd2l0aGluIHRoZSBzcGVjaWZpYyBzY29wZVxuICpcbiAqIFNpbXBseSBwbGFjZSB0aGUgQXBwU3RhY2sgY3JlYXRpb24gaW50byB0aGUgY3JlYXRlLW1ldGhvZDpcbiAqIEBleGFtcGxlXG4gKlxuICogLy8gVXNlIGUuZy4gd2l0aGluIEFwcGxpY2F0aW9uUHJvcHMgYXMgSlNPTk9iamVjdDpcbiAqIHsgY3JlYXRlOiAoY29uc3RydWN0LCBwcm9wcykgPT4gbmV3IFN0YWNrKGNvbnN0cnVjdCwgJ0FwcFN0YWNrJywgcHJvcHMpIH1cbiAqXG4gKiAvLyBvciBzaW1wbHkgYXMgY2xhc3MgaW50ZXJmYWNlIHdpdGhpbiB5b3VyIHN0YWNrIGltcGxlbWVudGF0aW9uOlxuICogY2xhc3MgUGlwZWxpbmVTdGFnZSBleHRlbmRzIFN0YWdlIGltcGxlbWVudHMgSUFwcFN0YWNrRmFjdG9yeSB7XG4gKiAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFnZVByb3BzKSB7XG4gKiAgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gKiAgICAgLy8geW91ciBzdGFnZSBkZWZpbml0aW9tXG4gKiAgIH1cbiAqXG4gKiAgIGNyZWF0ZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogQXBwU3RhY2tQcm9wcyk6IHZvaWQge1xuICogICAgIC8vIGFwcCBzdGFjayBpbml0aWF0aW9uIGdvZXMgaW4gaGVyZVxuICogICB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUFwcFN0YWNrRmFjdG9yeSB7XG4gIC8qKlxuICAgKiBGYWN0b3J5IG1ldGhvZCwgYmVpbmcgaW52b2tlZCB3aXRoIHRoZSBzcGVjaWZpYyBzY29wZSBkdXJpbmcgcGlwZWxpbmUgaW5zdGFudGlhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHBhcmVudCBjb25zdHJ1Y3QgZm9yIHRoZSBhcHAgc3RhY2tcbiAgICogQHBhcmFtIHByb3BzIHRoZSBhcHAgc3RhY2tzIHByb3BlcnRpZXNcbiAgICovXG4gIGNyZWF0ZShzY29wZTogQ29uc3RydWN0LCBwcm9wczogQXBwU3RhY2tQcm9wcyApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlbGVjdGVkIHByb3BlcnRpZXMgYmVpbmcgaGFuZGVkIG92ZXIgdG8gUmlvU2VjcmV0c0RlcGxveVN0ZXAuXG4gKlxuICogQHNlZSByaW8uUmlvU2VjcmV0c0RlcGxveVN0ZXBcbiAqIEBzZWUgcmlvLlJpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVN0YWNrUmlvU2VjcmV0c0RlcGxveVN0ZXBQcm9wcyB7XG4gIHJlYWRvbmx5IHNlY3JldHNGaWxlUGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBQaXBlbGluZVR5cGUge1xuXG4gIC8qKlxuICAgKiBTZWxmLW11dGF0aW5nIGNvZGVwaXBlbGluZSBkZXBsb3lpbmcgdGhlIHByb3ZpZGVkIEFwcFN0YWNrLiBCZSBhd2FyZTogVGhlIHByb3ZpZGVkIHNlcnZpY2Ugd29uJ3QgaGF2ZSBhY2Nlc3MgdG8gS2Fma2EuXG4gICAqXG4gICAqIENvbWVzIHdpdGggYSBwcmUtZGVmaW5lZCBidWlsZHNwZWMueWFtbCBmb3IgYSBncmFkbGUgcHJvamVjdC4gVGhpcyBidWlsZHNwZWMueWFtbCBpcyB1c2VkIGZvciBib3RoIHRoZSBtYWluIGFuZFxuICAgKiBicmFuY2ggcGlwZWxpbmUgYW5kIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgc3RlcHNcbiAgICogLSBidWlsZCBhbmQgdGVzdCBvZiB0aGUgYXJ0aWZhY3QgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgY2xlYW4gYnVpbGRcIi5cbiAgICogPHA+IFRoaXMgZ3JhZGxlIGNvbW1hbmQgbXVzdCBiZSBwcm92aWRlZCBieSB0aGUgZ3JhZGxlIHByb2plY3QuXG4gICAqIC0gbGljZW5zZS1jaGVjayBhbmQgdXBsb2FkIG9mIGxpY2Vuc2UtY2hlY2stZmlsZSB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBjaGVja0xpY2Vuc2VzXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKiAtIGNyZWF0ZSBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlIHRvIG1ha2UgVExTIGNvbW11bmljYXRpb24gcG9zc2libGUsIGUuZy4gd2l0aCBhIGxvYWRiYWxhbmNlci5cbiAgICogLSBidWlsZCB0aGUgY29udGFpbmVyIGltYWdlIHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGppYkJ1aWxkVGFyXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKi9cbiAgU1RBTkRBUkRfR1JBRExFID0gJ1NUQU5EQVJEX0dSQURMRScsXG59XG5cbmV4cG9ydCBjbGFzcyBQaXBlbGluZVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBwcml2YXRlIHN0YXRpYyBhZGRMaWZlY3ljbGVSdWxlQXJ0aWZhY3RCdWNrZXQocGlwZWxpbmU6IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUpIHtcbiAgICBjb25zdCBhcnRpZmFjdHNCdWNrZXQgPSBwaXBlbGluZS5waXBlbGluZS5hcnRpZmFjdEJ1Y2tldDtcbiAgICAoYXJ0aWZhY3RzQnVja2V0IGFzIHMzLkJ1Y2tldCkuYWRkTGlmZWN5Y2xlUnVsZSh7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg5MCksXG4gICAgfSk7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIENyZWF0aW5nIHRoZSBtYWluIHBpcGVsaW5lXG4gICAgY29uc3QgYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdUcmlnZ2VyQnVja2V0JywgRm4uaW1wb3J0VmFsdWUoJ2JpdGJ1Y2tldC1pbnRlZ3JhdGlvbi1zMy1idWNrZXQnKSk7XG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHJpby5SaW9MYW5kaW5nWm9uZS5nZXREZWZhdWx0SG9zdGVkWm9uZSh0aGlzKTtcbiAgICBjb25zdCBpbnB1dE1hc3RlclRyaWdnZXJGaWxlID0gcGlwZWxpbmVzLkNvZGVQaXBlbGluZVNvdXJjZS5zMyhidWNrZXQsIGAke3Byb3BzLnNlcnZpY2VOYW1lfS90cmlnZ2VyLyR7cmlvLlRyaWdnZXJLZXkuTUFTVEVSX1JFUE99YCwgeyB0cmlnZ2VyOiBjb2RlcGlwZWxpbmVfYWN0aW9ucy5TM1RyaWdnZXIuRVZFTlRTIH0pO1xuICAgIGNvbnN0IGlucHV0QnJhbmNoVHJpZ2dlckZpbGUgPSBwaXBlbGluZXMuQ29kZVBpcGVsaW5lU291cmNlLnMzKGJ1Y2tldCwgYCR7cHJvcHMuc2VydmljZU5hbWV9L3RyaWdnZXIvJHtyaW8uVHJpZ2dlcktleS5CUkFOQ0hfUkVQT31gLCB7IHRyaWdnZXI6IGNvZGVwaXBlbGluZV9hY3Rpb25zLlMzVHJpZ2dlci5FVkVOVFMgfSk7XG5cbiAgICBjb25zdCBvc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLFxuICAgICAgJ09zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyJyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1ldGVyTmFtZTogJy9jb25maWcvb3NzLWxpY2Vuc2VzL2J1Y2tldC1uYW1lJyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBvc3NMaWNlbnNlc0J1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShcbiAgICAgIHRoaXMsXG4gICAgICAnT3NzTGljZW5zZXNCdWNrZXQnLFxuICAgICAgb3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXIuc3RyaW5nVmFsdWUsXG4gICAgKTtcbiAgICBjb25zdCBzZXJ2aWNlS2V5c3RvcmVQYXNzd29yZCA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVNlY3VyZVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgJ0tleXN0b3JlUGFzc3dvcmQnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBgL2NvbmZpZy8ke3Byb3BzLnNlcnZpY2VOYW1lfS9zZXJ2aWNlLWtleXN0b3JlLXBhc3N3b3JkYCxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgfSk7XG4gICAgY29uc3QgYWNjb3VudE5hbWVQYXJhbWV0ZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKFxuICAgICAgdGhpcyxcbiAgICAgICdBY2NvdW50TmFtZVBhcmFtZXRlcicsXG4gICAgICAnL2NvbmZpZy9hY2NvdW50L25hbWUnLFxuICAgICk7XG4gICAgY29uc3QgbmlzdERhdGFNaXJyb3JVcmwgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TZWN1cmVTdHJpbmdQYXJhbWV0ZXJBdHRyaWJ1dGVzKFxuICAgICAgdGhpcyxcbiAgICAgICdOaXN0RGF0YU1pcnJvclVybCcsXG4gICAgICB7XG4gICAgICAgIHBhcmFtZXRlck5hbWU6ICcvY29uZmlnL25pc3QtZGF0YS1taXJyb3IvdXJsJywgdmVyc2lvbjogMSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGdyYWRsZWJ1aWxkID0gbmV3IFJpb0dyYWRsZUNvZGVCdWlsZFByb2plY3QodGhpcywgJ0dyYWRsZUJ1aWxkJywge1xuICAgICAgaW5wdXQ6IGlucHV0TWFzdGVyVHJpZ2dlckZpbGUsXG4gICAgICBjZGtPdXREaXJlY3Rvcnk6ICdpbmZyYXN0cnVjdHVyZS9jZGsub3V0JyxcbiAgICAgIGJ1aWxkU3BlY1BhdGg6IHByb3BzLmN1c3RvbUJ1aWxkc3BlY1BhdGggfHwgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlYy55YW1sJyksXG4gICAgICBob3N0ZWRab25lTmFtZTogaG9zdGVkWm9uZS56b25lTmFtZSxcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHBpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgJ1BpcGVsaW5lJywge1xuICAgICAgc3ludGg6IGdyYWRsZWJ1aWxkLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvdWRBc3NlbWJseUFydGlmYWN0cyBtdXN0IGJlIHNtYWxsZXIgdGhhbiAyNTZNQi4gRHVlIHRvIHRoZSBncmFkbGUgYXJ0aWZhY3Qgd2UgYXJlIGV4Y2VlZGluZyB0aGlzIGxpbWl0IGFuZCBwaXBlbGluZSBmYWlscyBpbiBkZXBsb3ltZW50IHN0ZXAuXG4gICAgLy8gSXNzdWUgaXMga25vd24gYW5kIG5vdCBmaXhlZCBmb3IgYWxyZWFkeSBzb21lIHllYXJzLiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvOTkxN1xuICAgIC8vIERpcnR5IGZpeDogQXNzZXRzIGFyZSBhbHJlYWR5IHVwbG9hZGVkIGFuZCB0aHVzIG5vdCBuZWVkZWQuIFJlbW92ZSB0aGVtIGZyb20gcGlwZWxpbmUgYXJ0aWZhY3QuXG4gICAgY29uc3Qgc3RyaXBBc3NldHNTdGVwID0gbmV3IENvZGVCdWlsZFN0ZXAoXG4gICAgICAnU3RyaXBBc3NldHNGcm9tQXNzZW1ibHknLCB7XG4gICAgICAgIGlucHV0OiBwaXBlbGluZS5jbG91ZEFzc2VtYmx5RmlsZVNldCxcbiAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAnUzNfUEFUSD0ke0NPREVCVUlMRF9TT1VSQ0VfVkVSU0lPTiNcImFybjphd3M6czM6OjpcIn0nLFxuICAgICAgICAgICdaSVBfQVJDSElWRT0kKGJhc2VuYW1lICRTM19QQVRIKScsXG4gICAgICAgICAgJ3JtIC1yZnYgYXNzZXQuKicsXG4gICAgICAgICAgJ3ppcCAtciAtcSAtQSAkWklQX0FSQ0hJVkUgKicsXG4gICAgICAgICAgJ2F3cyBzMyBjcCAkWklQX0FSQ0hJVkUgczM6Ly8kUzNfUEFUSCcsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBwaXBlbGluZS5hZGRXYXZlKCdCZWZvcmVEZXBsb3knLCB7IHByZTogW3N0cmlwQXNzZXRzU3RlcF0gfSk7XG5cbiAgICBwaXBlbGluZS5hZGRTdGFnZShuZXcgQXBwbGljYXRpb24odGhpcywgJ0RlcGxveUFwcGxpY2F0aW9uU3RhY2tzJywge1xuICAgICAgYXBwU3RhY2tGYWN0b3J5OiBwcm9wcy5hcHBTdGFja0ZhY3RvcnksXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBjb2RlcGlwZWxpbmUuR2xvYmFsVmFyaWFibGVzLmV4ZWN1dGlvbklkLFxuICAgIH0pLCB7XG4gICAgICBwcmU6IHByb3BzLnNlY3JldHNEZXBsb3lTdGVwUHJvcHMgPyBbXG4gICAgICAgIG5ldyByaW8uUmlvU2VjcmV0c0RlcGxveVN0ZXAodGhpcywgJ0RlcGxveVNlY3JldHMnLCB7IC4uLnByb3BzLnNlY3JldHNEZXBsb3lTdGVwUHJvcHMsIGlucHV0OiBpbnB1dE1hc3RlclRyaWdnZXJGaWxlIH0pLFxuICAgICAgXSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBwaXBlbGluZS5idWlsZFBpcGVsaW5lKCk7XG5cbiAgICBjb25zdCBydWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdQaXBlbGluZVNjaGVkdWxlJywgeyBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24oJ2Nyb24oMCA5ID8gKiAyIzEgKiknKSB9KTtcbiAgICBydWxlLmFkZFRhcmdldChuZXcgdGFyZ2V0cy5Db2RlUGlwZWxpbmUocGlwZWxpbmUucGlwZWxpbmUpKTtcblxuICAgIFBpcGVsaW5lU3RhY2suYWRkTGlmZWN5Y2xlUnVsZUFydGlmYWN0QnVja2V0KHBpcGVsaW5lKTtcbiAgICBvc3NMaWNlbnNlc0J1Y2tldC5ncmFudFJlYWRXcml0ZShncmFkbGVidWlsZCk7XG4gICAgb3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXIuZ3JhbnRSZWFkKGdyYWRsZWJ1aWxkKTtcbiAgICBzZXJ2aWNlS2V5c3RvcmVQYXNzd29yZC5ncmFudFJlYWQoZ3JhZGxlYnVpbGQpO1xuICAgIGFjY291bnROYW1lUGFyYW1ldGVyLmdyYW50UmVhZChncmFkbGVidWlsZCk7XG4gICAgcGlwZWxpbmUucGlwZWxpbmUuYXJ0aWZhY3RCdWNrZXQuZ3JhbnRSZWFkV3JpdGUoc3RyaXBBc3NldHNTdGVwLnByb2plY3QpO1xuXG4gICAgLy8gQnJhbmNoIHBpcGVsaW5lXG4gICAgY29uc3QgYnJhbmNoQnVpbGQgPSBuZXcgUmlvR3JhZGxlQ29kZUJ1aWxkUHJvamVjdCh0aGlzLCAnQnJhbmNoQnVpbGQnLCB7XG4gICAgICBpbnB1dDogaW5wdXRCcmFuY2hUcmlnZ2VyRmlsZSxcbiAgICAgIGNka091dERpcmVjdG9yeTogJ2luZnJhc3RydWN0dXJlL2Nkay5vdXQnLFxuICAgICAgYnVpbGRTcGVjUGF0aDogcHJvcHMuY3VzdG9tQnVpbGRzcGVjUGF0aCB8fCBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjLnlhbWwnKSxcbiAgICAgIGhvc3RlZFpvbmVOYW1lOiBob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGJyYW5jaFBpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgJ0JyYW5jaFBpcGVsaW5lJywge1xuICAgICAgc3ludGg6IGJyYW5jaEJ1aWxkLFxuICAgICAgc2VsZk11dGF0aW9uOiBmYWxzZSxcbiAgICB9KTtcbiAgICBicmFuY2hQaXBlbGluZS5hZGRXYXZlKCdCcmFuY2hCdWlsZCcpLmFkZFBvc3QoYnJhbmNoQnVpbGQpO1xuICAgIGJyYW5jaFBpcGVsaW5lLmJ1aWxkUGlwZWxpbmUoKTtcblxuICAgIFBpcGVsaW5lU3RhY2suYWRkTGlmZWN5Y2xlUnVsZUFydGlmYWN0QnVja2V0KGJyYW5jaFBpcGVsaW5lKTtcbiAgICBvc3NMaWNlbnNlc0J1Y2tldC5ncmFudFJlYWRXcml0ZShicmFuY2hCdWlsZCk7XG4gICAgb3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXIuZ3JhbnRSZWFkKGJyYW5jaEJ1aWxkKTtcbiAgICBzZXJ2aWNlS2V5c3RvcmVQYXNzd29yZC5ncmFudFJlYWQoYnJhbmNoQnVpbGQpO1xuICAgIGFjY291bnROYW1lUGFyYW1ldGVyLmdyYW50UmVhZChicmFuY2hCdWlsZCk7XG5cbiAgICAvLyBWdWxuZXJhYmlsaXR5IFBpcGVsaW5lXG4gICAgY29uc3QgdnVsbmVyYWJpbGl0eUJ1aWxkID0gbmV3IFJpb0dyYWRsZUNvZGVCdWlsZFByb2plY3QodGhpcywgJ1Z1bG5lcmFiaWxpdHlDaGVja3MnLCB7XG4gICAgICBpbnB1dDogaW5wdXRNYXN0ZXJUcmlnZ2VyRmlsZSxcbiAgICAgIGJ1aWxkU3BlY1BhdGg6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdidWlsZHNwZWMtdnVsbmVyYWJpbGl0eS1jaGVja3MueWFtbCcpLFxuICAgICAgaG9zdGVkWm9uZU5hbWU6IGhvc3RlZFpvbmUuem9uZU5hbWUsXG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgfSk7XG4gICAgY29uc3QgdnVsbmVyYWJpbGl0eVBpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgJ1Z1bG5lcmFiaWxpdHlQaXBlbGluZScsIHtcbiAgICAgIHN5bnRoOiB2dWxuZXJhYmlsaXR5QnVpbGQsXG4gICAgICBzZWxmTXV0YXRpb246IGZhbHNlLFxuICAgIH0pO1xuICAgIHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5hZGRXYXZlKCdWdWxuZXJhYmlsaXR5Q2hlY2tzJykuYWRkUG9zdCh2dWxuZXJhYmlsaXR5QnVpbGQpO1xuICAgIHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5idWlsZFBpcGVsaW5lKCk7XG4gICAgbmlzdERhdGFNaXJyb3JVcmwuZ3JhbnRSZWFkKHZ1bG5lcmFiaWxpdHlCdWlsZCk7XG5cbiAgICBjb25zdCB2dWxuZXJhYmlsaXR5UnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCAnVnVsbmVyYWJpbGl0eVBpcGVsaW5lU2NoZWR1bGUnLCB7IHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbignY3JvbigwIDUgPyAqIE1PTi1GUkkgKiknKSB9KTtcbiAgICB2dWxuZXJhYmlsaXR5UnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuQ29kZVBpcGVsaW5lKHZ1bG5lcmFiaWxpdHlQaXBlbGluZS5waXBlbGluZSkpO1xuXG4gICAgUGlwZWxpbmVTdGFjay5hZGRMaWZlY3ljbGVSdWxlQXJ0aWZhY3RCdWNrZXQodnVsbmVyYWJpbGl0eVBpcGVsaW5lKTtcblxuICAgIG5ldyBEYXRhZG9nUGlwZWxpbmVFcnJvckFsZXJ0KHRoaXMsICdEYXRhZG9nUGlwZWxpbmVFcnJvck1vbml0b3InLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBwaXBlbGluZU5hbWU6IHRoaXMucmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZShwaXBlbGluZSksXG4gICAgICBhY2NvdW50SWQ6IHRoaXMuYWNjb3VudCxcbiAgICB9KTtcblxuICAgIG5ldyBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyh0aGlzLCAnRGF0YURvZ1BpcGVsaW5lRXJyb3JGb3JWdWxuZXJhYmlsaXR5Q2hlY2tzTW9uaXRvcicsIHtcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIHBpcGVsaW5lTmFtZTogdGhpcy5yZW5hbWVQaXBlbGluZVRvTG93ZXJDYXNlKHZ1bG5lcmFiaWxpdHlQaXBlbGluZSksXG4gICAgICBhY2NvdW50SWQ6IHRoaXMuYWNjb3VudCxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjMnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5hbWVQaXBlbGluZVRvTG93ZXJDYXNlKHBpcGVsaW5lOiBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKTogUmVmZXJlbmNlIHtcbiAgICBjb25zdCB1cHBlclRvTG93ZXJDciA9IG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgYCR7cGlwZWxpbmUubm9kZS5pZH0tVXBwZXJUb0xvd2VyYCwge1xuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpVcHBlclRvTG93ZXInLFxuICAgICAgc2VydmljZVRva2VuOiBVcHBlclRvTG93ZXIuZ2V0T3JDcmVhdGUodGhpcykucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBVcHBlcjogcGlwZWxpbmUucGlwZWxpbmUucGlwZWxpbmVOYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gdXBwZXJUb0xvd2VyQ3IuZ2V0QXR0KCdMb3dlcicpO1xuICB9XG59XG4iXX0=
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUvcGlwZWxpbmUtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyw2Q0FBeUU7QUFDekUsNkRBQXdFO0FBQ3hFLDZEQUE2RDtBQUM3RCw2RUFBNkU7QUFDN0UsaURBQWlEO0FBQ2pELDBEQUEwRDtBQUMxRCx5Q0FBeUM7QUFDekMsMkNBQTJDO0FBQzNDLG1EQUFtRDtBQUNuRCxxREFBc0Q7QUFFdEQsZ0NBQWdDO0FBQ2hDLHNDQUFzQztBQUN0QywwQ0FBaUU7QUFDakUsaUVBQThEO0FBQzlELDJEQUFrRDtBQUNsRCxtREFBNEQ7QUFDNUQseURBQWdIO0FBaUdoSCxJQUFZLFlBZ0JYO0FBaEJELFdBQVksWUFBWTtJQUV0Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxtREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBaEJXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBZ0J2QjtBQWFELE1BQWEsYUFBYyxTQUFRLG1CQUFLO0lBVXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7O1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLDZCQUE2QjtRQUM3QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFFLENBQUMsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQztRQUNsSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFD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QUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBZSxFQUFFO1lBQ3RGLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsWUFBWSxFQUFFLDJCQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ2xFLFVBQVUsRUFBRTtnQkFDVixLQUFLLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2FBQ3RDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7O0FBakxILHNDQWtMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRHVyYXRpb24sIEZuLCBSZWZlcmVuY2UsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQnVpbGRFbnZpcm9ubWVudCwgQnVpbGRTcGVjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgKiBhcyBjb2RlcGlwZWxpbmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZSc7XG5pbXBvcnQgKiBhcyBjb2RlcGlwZWxpbmVfYWN0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcbmltcG9ydCAqIGFzIHBpcGVsaW5lcyBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29kZUJ1aWxkU3RlcCB9IGZyb20gJ2F3cy1jZGstbGliL3BpcGVsaW5lcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSAnanMteWFtbCc7XG5pbXBvcnQgKiBhcyByaW8gZnJvbSAnLi4vLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL2luZGV4JztcbmltcG9ydCB7IFVwcGVyVG9Mb3dlciB9IGZyb20gJy4uLy4uLy4uL3dhdGNoZnVsL3VwcGVyVG9Mb3dlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24tc3RhZ2UnO1xuaW1wb3J0IHsgUmlvR3JhZGxlQ29kZUJ1aWxkUHJvamVjdCB9IGZyb20gJy4vYnVpbGQtcHJvamVjdCc7XG5pbXBvcnQgeyBEYXRhZG9nUGlwZWxpbmVFcnJvckFsZXJ0LCBEYXRhRG9nUGlwZWxpbmVFcnJvckFsZXJ0Rm9yVnVsbmVyYWJpbGl0eUNoZWNrcyB9IGZyb20gJy4vZGF0YWRvZy1tb25pdG9ycyc7XG5cbi8qKlxuICAqIEBzdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlXG4gICAqIC0gVGhpcyBoYXMgdG8gYmUgdGhlIHNhbWUgbmFtZSBhcyB0aGUgcmVwb3NpdG9yeSBhcyB0aGUgczMgdHJpZ2dlciBmaWxlIGNyZWF0ZWQgYnkgdGhlIGJpdGJ1Y2tldC1pbnRlZ3JhdGlvbiB1c2VzIHRoaXMgYXMgYSBwcmVmaXhcbiAgICogLSBUaGUgc2VydmljZU5hbWUgaXMgYXZhaWxhYmxlIGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIFNFUlZJQ0VfTkFNRSBpbiB0aGUgQ29kZUJ1aWxkU3RlcFxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBhdmFpbGFibGUgaW4gdGhlIEFwcFN0YWNrUHJvcHMgaW4gdGhlIGFwcFN0YWNrRmFjdG9yeVxuICAgKiAtIFRoZSBzZXJ2aWNlTmFtZSBpcyBhdmFpbGFibGUgYXMgc3RhY2tOYW1lIHByb3BlcnR5IGluIHRoZSBBcHBTdGFja1Byb3BzIGluIHRoZSBhcHBTdGFja0ZhY3RvcnkuIEkuZS4gdGhlIHN0YWNrIGlzIG5hbWVkIGFmdGVyIHRoZSBzZXJ2aWNlXG4gICAqIC0gVGhlIHNlcnZpY2VOYW1lIGlzIGhhbmRlZCBvdmVyIHRvIGFsbCBEYXRhZG9nIG1vbml0b3JzXG4gICAqIC0gUklPIGNvbnZlbnRpb24gaXMgdGhhdCB1cGxvYWRlZCBsaWNlbnNlLWNoZWNrLWZpbGVzIGFyZSBuYW1lZCBhZnRlciB0aGUgc2VydmljZSwgaS5lLiBzZXJ2aWNlTmFtZS50eHRcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVyIGZvciBhcHBTdGFjayB0byBiZSBkZXBsb3llZC5cbiAgICpcbiAgICogVGhpcyBhY3RzIGFzIGEgd3JhcHBlciBmb3IgYWxsIHJlc291cmNlcyB5b3Ugd2FudCB0byBkZXBsb3kgdmlhIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcFN0YWNrRmFjdG9yeTogSUFwcFN0YWNrRmFjdG9yeTtcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGljaCBraW5kIG9mIHBpcGVsaW5lIGlzIGRlcGxveWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmVUeXBlOiBQaXBlbGluZVR5cGU7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gYSBjdXN0b20gYnVpbGRzcGVjLnlhbWwgdGhhdCBpcyB1c2VkIGlmIHByb3ZpZGVkLlxuICAgKlxuICAgKiBBIHByZS1kZWZpbmVkIGJ1aWxkc3BlYy55YW1sIGZpdHRpbmcgdGhlIHBpcGVsaW5lVHlwZSBpcyB1c2VkIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUJ1aWxkc3BlY1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gc2VjcmV0cyBmaWxlIGNvbnRhaW5pbmcgZW5jcnlwdGVkIHNlY3JldHMuXG4gICAqXG4gICAqIFRoZSBSaW9TZWNyZXRzRGVwbG95U3RlcCBpcyBhZGRlZCBwcmlvciB0byBkZXBsb3ltZW50IG9mIHRoZSBBcHBTdGFjayBpZiBhIHBhdGggaXMgcHJvdmlkZWQuXG4gICAqXG4gICAqIE5vIHNlY3JldHMgYXJlIGRlcGxveWVkIGlmIG5vIHBhdGggaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzRGVwbG95U3RlcFByb3BzPzogUGlwZWxpbmVTdGFja1Jpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHM7XG5cbiAgLyoqXG4gICAqIENvZGVCdWlsZCBvcHRpb25zIG92ZXJyaWRpbmcgdGhlIHJpby1zcGVjaWZpYyBkZWZhdWx0cy5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZE9wdGlvbnM/OiBDb2RlQnVpbGRPcHRpb25zO1xufVxuXG4vKipcbiAqIFByb3ZpZGVyIGludGVyZmFjZSB0byBjcmVhdGUgdGhlIEFwcFN0YWNrIHdpdGhpbiB0aGUgc3BlY2lmaWMgc2NvcGVcbiAqXG4gKiBTaW1wbHkgcGxhY2UgdGhlIEFwcFN0YWNrIGNyZWF0aW9uIGludG8gdGhlIGNyZWF0ZS1tZXRob2Q6XG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIFVzZSBlLmcuIHdpdGhpbiBBcHBsaWNhdGlvblByb3BzIGFzIEpTT05PYmplY3Q6XG4gKiB7IGNyZWF0ZTogKGNvbnN0cnVjdCwgcHJvcHMpID0+IG5ldyBTdGFjayhjb25zdHJ1Y3QsICdBcHBTdGFjaycsIHByb3BzKSB9XG4gKlxuICogLy8gb3Igc2ltcGx5IGFzIGNsYXNzIGludGVyZmFjZSB3aXRoaW4geW91ciBzdGFjayBpbXBsZW1lbnRhdGlvbjpcbiAqIGNsYXNzIFBpcGVsaW5lU3RhZ2UgZXh0ZW5kcyBTdGFnZSBpbXBsZW1lbnRzIElBcHBTdGFja0ZhY3Rvcnkge1xuICogICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3RhZ2VQcm9wcykge1xuICogICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICogICAgIC8vIHlvdXIgc3RhZ2UgZGVmaW5pdGlvbVxuICogICB9XG4gKlxuICogICBjcmVhdGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFwcFN0YWNrUHJvcHMpOiB2b2lkIHtcbiAqICAgICAvLyBhcHAgc3RhY2sgaW5pdGlhdGlvbiBnb2VzIGluIGhlcmVcbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBcHBTdGFja0ZhY3Rvcnkge1xuICAvKipcbiAgICogRmFjdG9yeSBtZXRob2QsIGJlaW5nIGludm9rZWQgd2l0aCB0aGUgc3BlY2lmaWMgc2NvcGUgZHVyaW5nIHBpcGVsaW5lIGluc3RhbnRpYXRpb25cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBwYXJlbnQgY29uc3RydWN0IGZvciB0aGUgYXBwIHN0YWNrXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgYXBwIHN0YWNrcyBwcm9wZXJ0aWVzXG4gICAqL1xuICBjcmVhdGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEFwcFN0YWNrUHJvcHMgKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBTdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZWxlY3RlZCBwcm9wZXJ0aWVzIGJlaW5nIGhhbmRlZCBvdmVyIHRvIFJpb1NlY3JldHNEZXBsb3lTdGVwLlxuICpcbiAqIEBzZWUgcmlvLlJpb1NlY3JldHNEZXBsb3lTdGVwXG4gKiBAc2VlIHJpby5SaW9TZWNyZXRzRGVwbG95U3RlcFByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVTdGFja1Jpb1NlY3JldHNEZXBsb3lTdGVwUHJvcHMge1xuICByZWFkb25seSBzZWNyZXRzRmlsZVBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUGlwZWxpbmVUeXBlIHtcblxuICAvKipcbiAgICogU2VsZi1tdXRhdGluZyBjb2RlcGlwZWxpbmUgZGVwbG95aW5nIHRoZSBwcm92aWRlZCBBcHBTdGFjay4gQmUgYXdhcmU6IFRoZSBwcm92aWRlZCBzZXJ2aWNlIHdvbid0IGhhdmUgYWNjZXNzIHRvIEthZmthLlxuICAgKlxuICAgKiBDb21lcyB3aXRoIGEgcHJlLWRlZmluZWQgYnVpbGRzcGVjLnlhbWwgZm9yIGEgZ3JhZGxlIHByb2plY3QuIFRoaXMgYnVpbGRzcGVjLnlhbWwgaXMgdXNlZCBmb3IgYm90aCB0aGUgbWFpbiBhbmRcbiAgICogYnJhbmNoIHBpcGVsaW5lIGFuZCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIHN0ZXBzXG4gICAqIC0gYnVpbGQgYW5kIHRlc3Qgb2YgdGhlIGFydGlmYWN0IHZpYSBjb21tYW5kIFwiLi9ncmFkbGV3IGNsZWFuIGJ1aWxkXCIuXG4gICAqIDxwPiBUaGlzIGdyYWRsZSBjb21tYW5kIG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIGdyYWRsZSBwcm9qZWN0LlxuICAgKiAtIGxpY2Vuc2UtY2hlY2sgYW5kIHVwbG9hZCBvZiBsaWNlbnNlLWNoZWNrLWZpbGUgdmlhIGNvbW1hbmQgXCIuL2dyYWRsZXcgY2hlY2tMaWNlbnNlc1wiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICogLSBjcmVhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSB0byBtYWtlIFRMUyBjb21tdW5pY2F0aW9uIHBvc3NpYmxlLCBlLmcuIHdpdGggYSBsb2FkYmFsYW5jZXIuXG4gICAqIC0gYnVpbGQgdGhlIGNvbnRhaW5lciBpbWFnZSB2aWEgY29tbWFuZCBcIi4vZ3JhZGxldyBqaWJCdWlsZFRhclwiLlxuICAgKiA8cD4gVGhpcyBncmFkbGUgY29tbWFuZCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSBncmFkbGUgcHJvamVjdC5cbiAgICovXG4gIFNUQU5EQVJEX0dSQURMRSA9ICdTVEFOREFSRF9HUkFETEUnLFxufVxuXG4vKipcbiAqIEBwYXJhbSBwYXJ0aWFsQnVpbGRTcGVjUGF0aCBQYXRoIHRvIGEgY3VzdG9tIGJ1aWxkLXNwZWMgZmlsZSB0byB1c2UgZm9yIHRoZSBtYWluIGFuZCBicmFuY2ggcGlwZWxpbmUuXG4gKiBAcGFyYW0gYnVpbGRFbnZpcm9ubWVudCBDdXN0b20gQ29kZUJ1aWxkIGJ1aWxkIGVudmlyb25tZW50IG92ZXJyaWRpbmcgdGhlIHJpby1zcGVjaWZpYyBkZWZhdWx0cy4gVGhlIGRlZmF1bHRzIGFyZTpcbiAqICAgICAgICAgIGJ1aWxkSW1hZ2U6IEFNQVpPTl9MSU5VWF8yXzNcbiAqICAgICAgICAgIGNvbXB1dGVUeXBlOiBMQVJHRVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVCdWlsZE9wdGlvbnMge1xuICByZWFkb25seSBwYXJ0aWFsQnVpbGRTcGVjUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgYnVpbGRFbnZpcm9ubWVudD86IEJ1aWxkRW52aXJvbm1lbnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQaXBlbGluZVN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBwcml2YXRlIHN0YXRpYyBhZGRMaWZlY3ljbGVSdWxlQXJ0aWZhY3RCdWNrZXQocGlwZWxpbmU6IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUpIHtcbiAgICBjb25zdCBhcnRpZmFjdHNCdWNrZXQgPSBwaXBlbGluZS5waXBlbGluZS5hcnRpZmFjdEJ1Y2tldDtcbiAgICAoYXJ0aWZhY3RzQnVja2V0IGFzIHMzLkJ1Y2tldCkuYWRkTGlmZWN5Y2xlUnVsZSh7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg5MCksXG4gICAgfSk7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZVN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIENyZWF0aW5nIHRoZSBtYWluIHBpcGVsaW5lXG4gICAgY29uc3QgYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHRoaXMsICdUcmlnZ2VyQnVja2V0JywgRm4uaW1wb3J0VmFsdWUoJ2JpdGJ1Y2tldC1pbnRlZ3JhdGlvbi1zMy1idWNrZXQnKSk7XG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHJpby5SaW9MYW5kaW5nWm9uZS5nZXREZWZhdWx0SG9zdGVkWm9uZSh0aGlzKTtcbiAgICBjb25zdCBpbnB1dE1hc3RlclRyaWdnZXJGaWxlID0gcGlwZWxpbmVzLkNvZGVQaXBlbGluZVNvdXJjZS5zMyhidWNrZXQsIGAke3Byb3BzLnNlcnZpY2VOYW1lfS90cmlnZ2VyLyR7cmlvLlRyaWdnZXJLZXkuTUFTVEVSX1JFUE99YCwgeyB0cmlnZ2VyOiBjb2RlcGlwZWxpbmVfYWN0aW9ucy5TM1RyaWdnZXIuRVZFTlRTIH0pO1xuICAgIGNvbnN0IGlucHV0QnJhbmNoVHJpZ2dlckZpbGUgPSBwaXBlbGluZXMuQ29kZVBpcGVsaW5lU291cmNlLnMzKGJ1Y2tldCwgYCR7cHJvcHMuc2VydmljZU5hbWV9L3RyaWdnZXIvJHtyaW8uVHJpZ2dlcktleS5CUkFOQ0hfUkVQT31gLCB7IHRyaWdnZXI6IGNvZGVwaXBlbGluZV9hY3Rpb25zLlMzVHJpZ2dlci5FVkVOVFMgfSk7XG5cbiAgICBjb25zdCBvc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXMoXG4gICAgICB0aGlzLFxuICAgICAgJ09zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyJyxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1ldGVyTmFtZTogJy9jb25maWcvb3NzLWxpY2Vuc2VzL2J1Y2tldC1uYW1lJyxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBvc3NMaWNlbnNlc0J1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShcbiAgICAgIHRoaXMsXG4gICAgICAnT3NzTGljZW5zZXNCdWNrZXQnLFxuICAgICAgb3NzTGljZW5zZXNCdWNrZXRQYXJhbWV0ZXIuc3RyaW5nVmFsdWUsXG4gICAgKTtcbiAgICBjb25zdCBzZXJ2aWNlS2V5c3RvcmVQYXNzd29yZCA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVNlY3VyZVN0cmluZ1BhcmFtZXRlckF0dHJpYnV0ZXModGhpcywgJ0tleXN0b3JlUGFzc3dvcmQnLCB7XG4gICAgICBwYXJhbWV0ZXJOYW1lOiBgL2NvbmZpZy8ke3Byb3BzLnNlcnZpY2VOYW1lfS9zZXJ2aWNlLWtleXN0b3JlLXBhc3N3b3JkYCxcbiAgICAgIHZlcnNpb246IDEsXG4gICAgfSk7XG4gICAgY29uc3QgYWNjb3VudE5hbWVQYXJhbWV0ZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKFxuICAgICAgdGhpcyxcbiAgICAgICdBY2NvdW50TmFtZVBhcmFtZXRlcicsXG4gICAgICAnL2NvbmZpZy9hY2NvdW50L25hbWUnLFxuICAgICk7XG4gICAgY29uc3QgbmlzdERhdGFNaXJyb3JVcmwgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TZWN1cmVTdHJpbmdQYXJhbWV0ZXJBdHRyaWJ1dGVzKFxuICAgICAgdGhpcyxcbiAgICAgICdOaXN0RGF0YU1pcnJvclVybCcsXG4gICAgICB7XG4gICAgICAgIHBhcmFtZXRlck5hbWU6ICcvY29uZmlnL25pc3QtZGF0YS1taXJyb3IvdXJsJywgdmVyc2lvbjogMSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGdyYWRsZWJ1aWxkID0gbmV3IFJpb0dyYWRsZUNvZGVCdWlsZFByb2plY3QodGhpcywgJ0dyYWRsZUJ1aWxkJywge1xuICAgICAgaW5wdXQ6IGlucHV0TWFzdGVyVHJpZ2dlckZpbGUsXG4gICAgICBjZGtPdXREaXJlY3Rvcnk6ICdpbmZyYXN0cnVjdHVyZS9jZGsub3V0JyxcbiAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IHRoaXMubG9hZEJ1aWxkU3BlY0Zyb21GaWxlKHByb3BzPy5jb2RlQnVpbGRPcHRpb25zPy5wYXJ0aWFsQnVpbGRTcGVjUGF0aCB8fCBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjLnlhbWwnKSksXG4gICAgICBidWlsZEVudmlyb25tZW50OiBwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8uYnVpbGRFbnZpcm9ubWVudCxcbiAgICAgIGhvc3RlZFpvbmVOYW1lOiBob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGlwZWxpbmUgPSBuZXcgcGlwZWxpbmVzLkNvZGVQaXBlbGluZSh0aGlzLCAnUGlwZWxpbmUnLCB7XG4gICAgICBzeW50aDogZ3JhZGxlYnVpbGQsXG4gICAgfSk7XG5cbiAgICAvLyBDbG91ZEFzc2VtYmx5QXJ0aWZhY3RzIG11c3QgYmUgc21hbGxlciB0aGFuIDI1Nk1CLiBEdWUgdG8gdGhlIGdyYWRsZSBhcnRpZmFjdCB3ZSBhcmUgZXhjZWVkaW5nIHRoaXMgbGltaXQgYW5kIHBpcGVsaW5lIGZhaWxzIGluIGRlcGxveW1lbnQgc3RlcC5cbiAgICAvLyBJc3N1ZSBpcyBrbm93biBhbmQgbm90IGZpeGVkIGZvciBhbHJlYWR5IHNvbWUgeWVhcnMuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy85OTE3XG4gICAgLy8gRGlydHkgZml4OiBBc3NldHMgYXJlIGFscmVhZHkgdXBsb2FkZWQgYW5kIHRodXMgbm90IG5lZWRlZC4gUmVtb3ZlIHRoZW0gZnJvbSBwaXBlbGluZSBhcnRpZmFjdC5cbiAgICBjb25zdCBzdHJpcEFzc2V0c1N0ZXAgPSBuZXcgQ29kZUJ1aWxkU3RlcChcbiAgICAgICdTdHJpcEFzc2V0c0Zyb21Bc3NlbWJseScsIHtcbiAgICAgICAgaW5wdXQ6IHBpcGVsaW5lLmNsb3VkQXNzZW1ibHlGaWxlU2V0LFxuICAgICAgICBjb21tYW5kczogW1xuICAgICAgICAgICdTM19QQVRIPSR7Q09ERUJVSUxEX1NPVVJDRV9WRVJTSU9OI1wiYXJuOmF3czpzMzo6OlwifScsXG4gICAgICAgICAgJ1pJUF9BUkNISVZFPSQoYmFzZW5hbWUgJFMzX1BBVEgpJyxcbiAgICAgICAgICAncm0gLXJmdiBhc3NldC4qJyxcbiAgICAgICAgICAnemlwIC1yIC1xIC1BICRaSVBfQVJDSElWRSAqJyxcbiAgICAgICAgICAnYXdzIHMzIGNwICRaSVBfQVJDSElWRSBzMzovLyRTM19QQVRIJyxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHBpcGVsaW5lLmFkZFdhdmUoJ0JlZm9yZURlcGxveScsIHsgcHJlOiBbc3RyaXBBc3NldHNTdGVwXSB9KTtcblxuICAgIHBpcGVsaW5lLmFkZFN0YWdlKG5ldyBBcHBsaWNhdGlvbih0aGlzLCAnRGVwbG95QXBwbGljYXRpb25TdGFja3MnLCB7XG4gICAgICBhcHBTdGFja0ZhY3Rvcnk6IHByb3BzLmFwcFN0YWNrRmFjdG9yeSxcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgIHZlcnNpb246IGNvZGVwaXBlbGluZS5HbG9iYWxWYXJpYWJsZXMuZXhlY3V0aW9uSWQsXG4gICAgfSksIHtcbiAgICAgIHByZTogcHJvcHMuc2VjcmV0c0RlcGxveVN0ZXBQcm9wcyA/IFtcbiAgICAgICAgbmV3IHJpby5SaW9TZWNyZXRzRGVwbG95U3RlcCh0aGlzLCAnRGVwbG95U2VjcmV0cycsIHsgLi4ucHJvcHMuc2VjcmV0c0RlcGxveVN0ZXBQcm9wcywgaW5wdXQ6IGlucHV0TWFzdGVyVHJpZ2dlckZpbGUgfSksXG4gICAgICBdIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICAgIHBpcGVsaW5lLmJ1aWxkUGlwZWxpbmUoKTtcblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1BpcGVsaW5lU2NoZWR1bGUnLCB7IHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbignY3JvbigwIDkgPyAqIDIjMSAqKScpIH0pO1xuICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLkNvZGVQaXBlbGluZShwaXBlbGluZS5waXBlbGluZSkpO1xuXG4gICAgUGlwZWxpbmVTdGFjay5hZGRMaWZlY3ljbGVSdWxlQXJ0aWZhY3RCdWNrZXQocGlwZWxpbmUpO1xuICAgIG9zc0xpY2Vuc2VzQnVja2V0LmdyYW50UmVhZFdyaXRlKGdyYWRsZWJ1aWxkKTtcbiAgICBvc3NMaWNlbnNlc0J1Y2tldFBhcmFtZXRlci5ncmFudFJlYWQoZ3JhZGxlYnVpbGQpO1xuICAgIHNlcnZpY2VLZXlzdG9yZVBhc3N3b3JkLmdyYW50UmVhZChncmFkbGVidWlsZCk7XG4gICAgYWNjb3VudE5hbWVQYXJhbWV0ZXIuZ3JhbnRSZWFkKGdyYWRsZWJ1aWxkKTtcbiAgICBwaXBlbGluZS5waXBlbGluZS5hcnRpZmFjdEJ1Y2tldC5ncmFudFJlYWRXcml0ZShzdHJpcEFzc2V0c1N0ZXAucHJvamVjdCk7XG5cbiAgICAvLyBCcmFuY2ggcGlwZWxpbmVcbiAgICBjb25zdCBicmFuY2hCdWlsZCA9IG5ldyBSaW9HcmFkbGVDb2RlQnVpbGRQcm9qZWN0KHRoaXMsICdCcmFuY2hCdWlsZCcsIHtcbiAgICAgIGlucHV0OiBpbnB1dEJyYW5jaFRyaWdnZXJGaWxlLFxuICAgICAgY2RrT3V0RGlyZWN0b3J5OiAnaW5mcmFzdHJ1Y3R1cmUvY2RrLm91dCcsXG4gICAgICBwYXJ0aWFsQnVpbGRTcGVjOiB0aGlzLmxvYWRCdWlsZFNwZWNGcm9tRmlsZShwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8ucGFydGlhbEJ1aWxkU3BlY1BhdGggfHwgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2J1aWxkc3BlYy55YW1sJykpLFxuICAgICAgYnVpbGRFbnZpcm9ubWVudDogcHJvcHM/LmNvZGVCdWlsZE9wdGlvbnM/LmJ1aWxkRW52aXJvbm1lbnQsXG4gICAgICBob3N0ZWRab25lTmFtZTogaG9zdGVkWm9uZS56b25lTmFtZSxcbiAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICB9KTtcbiAgICBjb25zdCBicmFuY2hQaXBlbGluZSA9IG5ldyBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKHRoaXMsICdCcmFuY2hQaXBlbGluZScsIHtcbiAgICAgIHN5bnRoOiBicmFuY2hCdWlsZCxcbiAgICAgIHNlbGZNdXRhdGlvbjogZmFsc2UsXG4gICAgfSk7XG4gICAgYnJhbmNoUGlwZWxpbmUuYWRkV2F2ZSgnQnJhbmNoQnVpbGQnKS5hZGRQb3N0KGJyYW5jaEJ1aWxkKTtcbiAgICBicmFuY2hQaXBlbGluZS5idWlsZFBpcGVsaW5lKCk7XG5cbiAgICBQaXBlbGluZVN0YWNrLmFkZExpZmVjeWNsZVJ1bGVBcnRpZmFjdEJ1Y2tldChicmFuY2hQaXBlbGluZSk7XG4gICAgb3NzTGljZW5zZXNCdWNrZXQuZ3JhbnRSZWFkV3JpdGUoYnJhbmNoQnVpbGQpO1xuICAgIG9zc0xpY2Vuc2VzQnVja2V0UGFyYW1ldGVyLmdyYW50UmVhZChicmFuY2hCdWlsZCk7XG4gICAgc2VydmljZUtleXN0b3JlUGFzc3dvcmQuZ3JhbnRSZWFkKGJyYW5jaEJ1aWxkKTtcbiAgICBhY2NvdW50TmFtZVBhcmFtZXRlci5ncmFudFJlYWQoYnJhbmNoQnVpbGQpO1xuXG4gICAgLy8gVnVsbmVyYWJpbGl0eSBQaXBlbGluZVxuICAgIGNvbnN0IHZ1bG5lcmFiaWxpdHlCdWlsZCA9IG5ldyBSaW9HcmFkbGVDb2RlQnVpbGRQcm9qZWN0KHRoaXMsICdWdWxuZXJhYmlsaXR5Q2hlY2tzJywge1xuICAgICAgaW5wdXQ6IGlucHV0TWFzdGVyVHJpZ2dlckZpbGUsXG4gICAgICBwYXJ0aWFsQnVpbGRTcGVjOiB0aGlzLmxvYWRCdWlsZFNwZWNGcm9tRmlsZShwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnYnVpbGRzcGVjLXZ1bG5lcmFiaWxpdHktY2hlY2tzLnlhbWwnKSksXG4gICAgICBidWlsZEVudmlyb25tZW50OiBwcm9wcz8uY29kZUJ1aWxkT3B0aW9ucz8uYnVpbGRFbnZpcm9ubWVudCxcbiAgICAgIGhvc3RlZFpvbmVOYW1lOiBob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IHZ1bG5lcmFiaWxpdHlQaXBlbGluZSA9IG5ldyBwaXBlbGluZXMuQ29kZVBpcGVsaW5lKHRoaXMsICdWdWxuZXJhYmlsaXR5UGlwZWxpbmUnLCB7XG4gICAgICBzeW50aDogdnVsbmVyYWJpbGl0eUJ1aWxkLFxuICAgICAgc2VsZk11dGF0aW9uOiBmYWxzZSxcbiAgICB9KTtcbiAgICB2dWxuZXJhYmlsaXR5UGlwZWxpbmUuYWRkV2F2ZSgnVnVsbmVyYWJpbGl0eUNoZWNrcycpLmFkZFBvc3QodnVsbmVyYWJpbGl0eUJ1aWxkKTtcbiAgICB2dWxuZXJhYmlsaXR5UGlwZWxpbmUuYnVpbGRQaXBlbGluZSgpO1xuICAgIG5pc3REYXRhTWlycm9yVXJsLmdyYW50UmVhZCh2dWxuZXJhYmlsaXR5QnVpbGQpO1xuXG4gICAgY29uc3QgdnVsbmVyYWJpbGl0eVJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ1Z1bG5lcmFiaWxpdHlQaXBlbGluZVNjaGVkdWxlJywgeyBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLmV4cHJlc3Npb24oJ2Nyb24oMCA1ID8gKiBNT04tRlJJICopJykgfSk7XG4gICAgdnVsbmVyYWJpbGl0eVJ1bGUuYWRkVGFyZ2V0KG5ldyB0YXJnZXRzLkNvZGVQaXBlbGluZSh2dWxuZXJhYmlsaXR5UGlwZWxpbmUucGlwZWxpbmUpKTtcblxuICAgIFBpcGVsaW5lU3RhY2suYWRkTGlmZWN5Y2xlUnVsZUFydGlmYWN0QnVja2V0KHZ1bG5lcmFiaWxpdHlQaXBlbGluZSk7XG5cbiAgICBuZXcgRGF0YWRvZ1BpcGVsaW5lRXJyb3JBbGVydCh0aGlzLCAnRGF0YWRvZ1BpcGVsaW5lRXJyb3JNb25pdG9yJywge1xuICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgcGlwZWxpbmVOYW1lOiB0aGlzLnJlbmFtZVBpcGVsaW5lVG9Mb3dlckNhc2UocGlwZWxpbmUpLFxuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnQsXG4gICAgfSk7XG5cbiAgICBuZXcgRGF0YURvZ1BpcGVsaW5lRXJyb3JBbGVydEZvclZ1bG5lcmFiaWxpdHlDaGVja3ModGhpcywgJ0RhdGFEb2dQaXBlbGluZUVycm9yRm9yVnVsbmVyYWJpbGl0eUNoZWNrc01vbml0b3InLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICBwaXBlbGluZU5hbWU6IHRoaXMucmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZSh2dWxuZXJhYmlsaXR5UGlwZWxpbmUpLFxuICAgICAgYWNjb3VudElkOiB0aGlzLmFjY291bnQsXG4gICAgfSk7XG5cbiAgICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG4gICAgbmV3IENsYWlkb21ldGVyKHRoaXMsICdDbGFpZG9tZXRlcicsIHtcbiAgICAgIHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdC5DREtfQ09OVFJJQlVUSU9OLFxuICAgICAgcGFja2FnZU5hbWUsXG4gICAgICBmZWF0dXJlLFxuICAgICAgdmVyc2lvbjogJzAuMC4zJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEJ1aWxkU3BlY0Zyb21GaWxlKGJ1aWxkU3BlY1BhdGg6IHN0cmluZyk6IEJ1aWxkU3BlYyB7XG4gICAgcmV0dXJuIEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHlhbWwubG9hZChmcy5yZWFkRmlsZVN5bmMoYnVpbGRTcGVjUGF0aCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KSkgYXMgT2JqZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuYW1lUGlwZWxpbmVUb0xvd2VyQ2FzZShwaXBlbGluZTogcGlwZWxpbmVzLkNvZGVQaXBlbGluZSk6IFJlZmVyZW5jZSB7XG4gICAgY29uc3QgdXBwZXJUb0xvd2VyQ3IgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3BpcGVsaW5lLm5vZGUuaWR9LVVwcGVyVG9Mb3dlcmAsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6VXBwZXJUb0xvd2VyJyxcbiAgICAgIHNlcnZpY2VUb2tlbjogVXBwZXJUb0xvd2VyLmdldE9yQ3JlYXRlKHRoaXMpLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgVXBwZXI6IHBpcGVsaW5lLnBpcGVsaW5lLnBpcGVsaW5lTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHVwcGVyVG9Mb3dlckNyLmdldEF0dCgnTG93ZXInKTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
package/version.json
CHANGED