@cloudsnorkel/cdk-github-runners 0.14.18 → 0.14.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 +741 -230
- package/API.md +499 -41
- package/README.md +34 -4
- package/assets/providers/ami-root-device.lambda/index.js +11 -0
- package/lib/access.js +1 -1
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/ami.d.ts +3 -2
- package/lib/image-builders/aws-image-builder/ami.js +9 -34
- package/lib/image-builders/aws-image-builder/base-image.d.ts +118 -0
- package/lib/image-builders/aws-image-builder/base-image.js +130 -0
- package/lib/image-builders/aws-image-builder/builder.js +17 -5
- package/lib/image-builders/aws-image-builder/container.d.ts +2 -1
- package/lib/image-builders/aws-image-builder/container.js +7 -6
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
- package/lib/image-builders/aws-image-builder/index.d.ts +1 -0
- package/lib/image-builders/aws-image-builder/index.js +2 -1
- package/lib/image-builders/codebuild-deprecated.js +1 -1
- package/lib/image-builders/codebuild.d.ts +10 -0
- package/lib/image-builders/codebuild.js +15 -4
- package/lib/image-builders/common.d.ts +22 -3
- package/lib/image-builders/common.js +1 -1
- package/lib/image-builders/components.d.ts +1 -1
- package/lib/image-builders/components.js +31 -21
- package/lib/image-builders/static.js +4 -3
- package/lib/providers/ami-root-device.lambda.js +12 -1
- package/lib/providers/codebuild.d.ts +12 -0
- package/lib/providers/codebuild.js +4 -4
- package/lib/providers/common.js +3 -3
- package/lib/providers/composite.js +18 -33
- package/lib/providers/ec2.js +5 -5
- package/lib/providers/ecs.d.ts +3 -1
- package/lib/providers/ecs.js +3 -3
- package/lib/providers/fargate.d.ts +14 -0
- package/lib/providers/fargate.js +4 -4
- package/lib/providers/lambda.d.ts +2 -0
- package/lib/providers/lambda.js +4 -4
- package/lib/runner.d.ts +24 -5
- package/lib/runner.js +46 -9
- package/lib/secrets.js +1 -1
- package/lib/utils.d.ts +13 -0
- package/lib/utils.js +47 -1
- package/lib/webhook-redelivery.d.ts +11 -0
- package/lib/webhook-redelivery.js +3 -1
- package/lib/webhook.d.ts +10 -0
- package/lib/webhook.js +3 -1
- package/package.json +1 -1
|
@@ -19,12 +19,14 @@ class GithubWebhookRedelivery extends constructs_1.Construct {
|
|
|
19
19
|
environment: {
|
|
20
20
|
GITHUB_SECRET_ARN: props.secrets.github.secretArn,
|
|
21
21
|
GITHUB_PRIVATE_KEY_SECRET_ARN: props.secrets.githubPrivateKey.secretArn,
|
|
22
|
+
...props.extraLambdaEnv,
|
|
22
23
|
},
|
|
23
24
|
reservedConcurrentExecutions: 1, // avoid concurrent executions
|
|
24
25
|
timeout: cdk.Duration.seconds(4.5 * 60), // 4.5 minutes
|
|
25
26
|
logGroup: (0, utils_1.singletonLogGroup)(this, utils_1.SingletonLogType.ORCHESTRATOR),
|
|
26
27
|
loggingFormat: aws_cdk_lib_1.aws_lambda.LoggingFormat.JSON,
|
|
27
28
|
// applicationLogLevelV2: ApplicationLogLevel.DEBUG,
|
|
29
|
+
...props.extraLambdaProps,
|
|
28
30
|
});
|
|
29
31
|
props.secrets.github.grantRead(this.handler);
|
|
30
32
|
props.secrets.githubPrivateKey.grantRead(this.handler);
|
|
@@ -40,4 +42,4 @@ class GithubWebhookRedelivery extends constructs_1.Construct {
|
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
exports.GithubWebhookRedelivery = GithubWebhookRedelivery;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViaG9vay1yZWRlbGl2ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYmhvb2stcmVkZWxpdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsNkNBQStHO0FBQy9HLDJDQUF1QztBQUV2QyxtQ0FBOEQ7QUFDOUQsK0VBQTBFO0FBd0IxRTs7OztHQUlHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQU1wRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1DO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVEQUF5QixDQUMxQyxJQUFJLEVBQ0osUUFBUSxFQUNSO1lBQ0UsV0FBVyxFQUFFLCtEQUErRDtZQUM1RSxXQUFXLEVBQUU7Z0JBQ1gsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFDakQsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTO2dCQUN2RSxHQUFHLEtBQUssQ0FBQyxjQUFjO2FBQ3hCO1lBQ0QsNEJBQTRCLEVBQUUsQ0FBQyxFQUFFLDhCQUE4QjtZQUMvRCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLGNBQWM7WUFDdkQsUUFBUSxFQUFFLElBQUEseUJBQWlCLEVBQUMsSUFBSSxFQUFFLHdCQUFnQixDQUFDLFlBQVksQ0FBQztZQUNoRSxhQUFhLEVBQUUsd0JBQU0sQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUN4QyxvREFBb0Q7WUFDcEQsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO1NBQzFCLENBQ0YsQ0FBQztRQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELElBQUksd0JBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoQyxRQUFRLEVBQUUsd0JBQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELFdBQVcsRUFBRSwrREFBK0Q7WUFDNUUsT0FBTyxFQUFFO2dCQUNQLElBQUksZ0NBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDOUMsYUFBYSxFQUFFLENBQUM7aUJBQ2pCLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXpDRCwwREF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgYXdzX2V2ZW50cyBhcyBldmVudHMsIGF3c19ldmVudHNfdGFyZ2V0cyBhcyBldmVudHNfdGFyZ2V0cywgYXdzX2xhbWJkYSBhcyBsYW1iZGEgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFNlY3JldHMgfSBmcm9tICcuL3NlY3JldHMnO1xuaW1wb3J0IHsgc2luZ2xldG9uTG9nR3JvdXAsIFNpbmdsZXRvbkxvZ1R5cGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFdlYmhvb2tSZWRlbGl2ZXJ5RnVuY3Rpb24gfSBmcm9tICcuL3dlYmhvb2stcmVkZWxpdmVyeS1mdW5jdGlvbic7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgR2l0aHViV2ViaG9va1JlZGVsaXZlcnlcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRodWJXZWJob29rUmVkZWxpdmVyeVByb3BzIHtcbiAgLyoqXG4gICAqIFNlY3JldHMgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIEdpdEh1Yi5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHM6IFNlY3JldHM7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgTGFtYmRhIGZ1bmN0aW9uIG9wdGlvbnMgKFZQQywgc2VjdXJpdHkgZ3JvdXBzLCBsYXllcnMsIGV0Yy4pLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFMYW1iZGFQcm9wcz86IGxhbWJkYS5GdW5jdGlvbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFMYW1iZGFFbnY/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIExhbWJkYSB0aGF0IHJ1bnMgZXZlcnkgNSBtaW51dGVzIHRvIGNoZWNrIGZvciBHaXRodWIgd2ViaG9vayBkZWxpdmVyeSBmYWlsdXJlcyBhbmQgcmV0cnkgdGhlbS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGh1YldlYmhvb2tSZWRlbGl2ZXJ5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFdlYmhvb2sgcmVkZWxpdmVyeSBsYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyOiBXZWJob29rUmVkZWxpdmVyeUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHaXRodWJXZWJob29rUmVkZWxpdmVyeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuaGFuZGxlciA9IG5ldyBXZWJob29rUmVkZWxpdmVyeUZ1bmN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdMYW1iZGEnLFxuICAgICAge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0NoZWNrIGZvciBHaXRIdWIgd2ViaG9vayBkZWxpdmVyeSBmYWlsdXJlcyBhbmQgcmVkZWxpdmVyIHRoZW0nLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIEdJVEhVQl9TRUNSRVRfQVJOOiBwcm9wcy5zZWNyZXRzLmdpdGh1Yi5zZWNyZXRBcm4sXG4gICAgICAgICAgR0lUSFVCX1BSSVZBVEVfS0VZX1NFQ1JFVF9BUk46IHByb3BzLnNlY3JldHMuZ2l0aHViUHJpdmF0ZUtleS5zZWNyZXRBcm4sXG4gICAgICAgICAgLi4ucHJvcHMuZXh0cmFMYW1iZGFFbnYsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM6IDEsIC8vIGF2b2lkIGNvbmN1cnJlbnQgZXhlY3V0aW9uc1xuICAgICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg0LjUgKiA2MCksIC8vIDQuNSBtaW51dGVzXG4gICAgICAgIGxvZ0dyb3VwOiBzaW5nbGV0b25Mb2dHcm91cCh0aGlzLCBTaW5nbGV0b25Mb2dUeXBlLk9SQ0hFU1RSQVRPUiksXG4gICAgICAgIGxvZ2dpbmdGb3JtYXQ6IGxhbWJkYS5Mb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgICAgIC8vIGFwcGxpY2F0aW9uTG9nTGV2ZWxWMjogQXBwbGljYXRpb25Mb2dMZXZlbC5ERUJVRyxcbiAgICAgICAgLi4ucHJvcHMuZXh0cmFMYW1iZGFQcm9wcyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHByb3BzLnNlY3JldHMuZ2l0aHViLmdyYW50UmVhZCh0aGlzLmhhbmRsZXIpO1xuICAgIHByb3BzLnNlY3JldHMuZ2l0aHViUHJpdmF0ZUtleS5ncmFudFJlYWQodGhpcy5oYW5kbGVyKTtcblxuICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGUnLCB7XG4gICAgICBzY2hlZHVsZTogZXZlbnRzLlNjaGVkdWxlLnJhdGUoY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSkpLFxuICAgICAgZGVzY3JpcHRpb246ICdTY2hlZHVsZSB0byBydW4gdGhlIHdlYmhvb2sgcmVkZWxpdmVyeSBsYW1iZGEgZXZlcnkgNSBtaW51dGVzJyxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IGV2ZW50c190YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKHRoaXMuaGFuZGxlciwge1xuICAgICAgICAgIHJldHJ5QXR0ZW1wdHM6IDAsXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/webhook.d.ts
CHANGED
|
@@ -81,6 +81,16 @@ export interface GithubWebhookHandlerProps {
|
|
|
81
81
|
* Whether to require the "self-hosted" label.
|
|
82
82
|
*/
|
|
83
83
|
readonly requireSelfHostedLabel: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Additional Lambda function options (VPC, security groups, layers, etc.).
|
|
86
|
+
*/
|
|
87
|
+
readonly extraLambdaProps?: lambda.FunctionOptions;
|
|
88
|
+
/**
|
|
89
|
+
* Additional environment variables for the Lambda function.
|
|
90
|
+
*/
|
|
91
|
+
readonly extraLambdaEnv?: {
|
|
92
|
+
[key: string]: string;
|
|
93
|
+
};
|
|
84
94
|
}
|
|
85
95
|
/**
|
|
86
96
|
* Create a Lambda with a public URL to handle GitHub webhook events. After validating the event with the given secret, the orchestrator step function is called with information about the workflow job.
|
package/lib/webhook.js
CHANGED
|
@@ -25,10 +25,12 @@ class GithubWebhookHandler extends constructs_1.Construct {
|
|
|
25
25
|
PROVIDERS: JSON.stringify(props.providers),
|
|
26
26
|
REQUIRE_SELF_HOSTED_LABEL: props.requireSelfHostedLabel ? '1' : '0',
|
|
27
27
|
PROVIDER_SELECTOR_ARN: props.providerSelector?.functionArn ?? '',
|
|
28
|
+
...props.extraLambdaEnv,
|
|
28
29
|
},
|
|
29
30
|
timeout: cdk.Duration.seconds(31),
|
|
30
31
|
logGroup: (0, utils_1.singletonLogGroup)(this, utils_1.SingletonLogType.ORCHESTRATOR),
|
|
31
32
|
loggingFormat: aws_cdk_lib_1.aws_lambda.LoggingFormat.JSON,
|
|
33
|
+
...props.extraLambdaProps,
|
|
32
34
|
});
|
|
33
35
|
const access = props?.access ?? access_1.LambdaAccess.lambdaUrl();
|
|
34
36
|
this.url = access.bind(this, 'access', this.handler);
|
|
@@ -40,4 +42,4 @@ class GithubWebhookHandler extends constructs_1.Construct {
|
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
exports.GithubWebhookHandler = GithubWebhookHandler;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViaG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy93ZWJob29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUNuQyw2Q0FBdUY7QUFDdkYsMkNBQXVDO0FBQ3ZDLHFDQUF3QztBQUV4QyxtQ0FBOEQ7QUFDOUQseUVBQW9FO0FBdUdwRTs7OztHQUlHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQVlqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGlEQUFzQixDQUN2QyxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCO1lBQ0UsV0FBVyxFQUFFLHFEQUFxRDtZQUNsRSxXQUFXLEVBQUU7Z0JBQ1gsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlO2dCQUNyRCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTO2dCQUNuRCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUNqRCw2QkFBNkIsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFNBQVM7Z0JBQ3ZFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUNuRSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxJQUFJLEVBQUU7Z0JBQ2hFLEdBQUcsS0FBSyxDQUFDLGNBQWM7YUFDeEI7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxJQUFBLHlCQUFpQixFQUFDLElBQUksRUFBRSx3QkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDaEUsYUFBYSxFQUFFLHdCQUFNLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDeEMsR0FBRyxLQUFLLENBQUMsZ0JBQWdCO1NBQzFCLENBQ0YsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxNQUFNLElBQUkscUJBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE5Q0Qsb0RBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IGF3c19sYW1iZGEgYXMgbGFtYmRhLCBhd3Nfc3RlcGZ1bmN0aW9ucyBhcyBzdGVwZnVuY3Rpb25zIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBMYW1iZGFBY2Nlc3MgfSBmcm9tICcuL2FjY2Vzcyc7XG5pbXBvcnQgeyBTZWNyZXRzIH0gZnJvbSAnLi9zZWNyZXRzJztcbmltcG9ydCB7IHNpbmdsZXRvbkxvZ0dyb3VwLCBTaW5nbGV0b25Mb2dUeXBlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBXZWJob29rSGFuZGxlckZ1bmN0aW9uIH0gZnJvbSAnLi93ZWJob29rLWhhbmRsZXItZnVuY3Rpb24nO1xuXG4vKipcbiAqIElucHV0IHRvIHRoZSBwcm92aWRlciBzZWxlY3RvciBMYW1iZGEgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJTZWxlY3RvcklucHV0IHtcbiAgLyoqXG4gICAqIEZ1bGwgR2l0SHViIHdlYmhvb2sgcGF5bG9hZCAod29ya2Zsb3dfam9iIGV2ZW50IHN0cnVjdHVyZSB3aXRoIGFjdGlvbj1cInF1ZXVlZFwiKS5cbiAgICpcbiAgICogKiBPcmlnaW5hbCBsYWJlbHMgcmVxdWVzdGVkIGJ5IHRoZSB3b3JrZmxvdyBqb2IgY2FuIGJlIGZvdW5kIGF0IGBwYXlsb2FkLndvcmtmbG93X2pvYi5sYWJlbHNgLlxuICAgKiAqIFJlcG9zaXRvcnkgcGF0aCAoZS5nLiBDbG91ZFNub3JrZWwvY2RrLWdpdGh1Yi1ydW5uZXJzKSBpcyBhdCBgcGF5bG9hZC5yZXBvc2l0b3J5LmZ1bGxfbmFtZWAuXG4gICAqICogQ29tbWl0IGhhc2ggaXMgYXQgYHBheWxvYWQud29ya2Zsb3dfam9iLmhlYWRfc2hhYC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi93ZWJob29rcy93ZWJob29rLWV2ZW50cy1hbmQtcGF5bG9hZHM/YWN0aW9uVHlwZT1xdWV1ZWQjd29ya2Zsb3dfam9iXG4gICAqL1xuICByZWFkb25seSBwYXlsb2FkOiBhbnk7XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBhdmFpbGFibGUgcHJvdmlkZXIgbm9kZSBwYXRocyB0byB0aGVpciBjb25maWd1cmVkIGxhYmVscy5cbiAgICogRXhhbXBsZTogeyBcIk15U3RhY2svU21hbGxcIjogW1wibGludXhcIiwgXCJzbWFsbFwiXSwgXCJNeVN0YWNrL0xhcmdlXCI6IFtcImxpbnV4XCIsIFwibGFyZ2VcIl0gfVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVyIG5vZGUgcGF0aCB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZWxlY3RlZCBieSBkZWZhdWx0IGxhYmVsIG1hdGNoaW5nLlxuICAgKiBVc2UgdGhpcyB0byBlYXNpbHkgcmV0dXJuIHRoZSBkZWZhdWx0IHNlbGVjdGlvbjogYHsgcHJvdmlkZXI6IGlucHV0LmRlZmF1bHRQcm92aWRlciwgbGFiZWxzOiBpbnB1dC5kZWZhdWx0TGFiZWxzIH1gXG4gICAqIE1heSBiZSB1bmRlZmluZWQgaWYgbm8gcHJvdmlkZXIgbWF0Y2hlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFByb3ZpZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYWJlbHMgdGhhdCB3b3VsZCBoYXZlIGJlZW4gdXNlZCBieSBkZWZhdWx0ICh0aGUgc2VsZWN0ZWQgcHJvdmlkZXIncyBsYWJlbHMpLlxuICAgKiBNYXkgYmUgdW5kZWZpbmVkIGlmIG5vIHByb3ZpZGVyIG1hdGNoZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRMYWJlbHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBSZXN1bHQgZnJvbSB0aGUgcHJvdmlkZXIgc2VsZWN0b3IgTGFtYmRhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU2VsZWN0b3JSZXN1bHQge1xuICAvKipcbiAgICogTm9kZSBwYXRoIG9mIHRoZSBwcm92aWRlciB0byB1c2UgKGUuZy4sIFwiTXlTdGFjay9NeVByb3ZpZGVyXCIpLlxuICAgKiBNdXN0IG1hdGNoIG9uZSBvZiB0aGUgY29uZmlndXJlZCBwcm92aWRlciBub2RlIHBhdGhzIGZyb20gdGhlIGlucHV0LlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBqb2Igd2lsbCBiZSBza2lwcGVkIChubyBydW5uZXIgY3JlYXRlZCkuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcj86IHN0cmluZztcblxuICAvKipcbiAgICogTGFiZWxzIHRvIHVzZSB3aGVuIHJlZ2lzdGVyaW5nIHRoZSBydW5uZXIuXG4gICAqIE11c3QgYmUgcmV0dXJuZWQgd2hlbiBhIHByb3ZpZGVyIGlzIHNlbGVjdGVkLlxuICAgKiBDYW4gYmUgdXNlZCB0byBhZGQsIHJlbW92ZSwgb3IgbW9kaWZ5IGxhYmVscy5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVscz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEdpdGh1YldlYmhvb2tIYW5kbGVyXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViV2ViaG9va0hhbmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBTdGVwIGZ1bmN0aW9uIGluIGNoYXJnZSBvZiBoYW5kbGluZyB0aGUgd29ya2Zsb3cgam9iIGV2ZW50cyBhbmQgc3RhcnQgdGhlIHJ1bm5lcnMuXG4gICAqL1xuICByZWFkb25seSBvcmNoZXN0cmF0b3I6IHN0ZXBmdW5jdGlvbnMuU3RhdGVNYWNoaW5lO1xuXG4gIC8qKlxuICAgKiBTZWNyZXRzIHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCBHaXRIdWIuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzOiBTZWNyZXRzO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYWNjZXNzIHRvIHdlYmhvb2sgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3M/OiBMYW1iZGFBY2Nlc3M7XG5cbiAgLyoqXG4gICAqIE1hcHBpbmcgb2YgcHJvdmlkZXIgbm9kZSBwYXRocyB0byB0aGVpciBzdXBwb3J0ZWQgbGFiZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIExhbWJkYSBmdW5jdGlvbiB0byBjdXN0b21pemUgcHJvdmlkZXIgc2VsZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJTZWxlY3Rvcj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVxdWlyZSB0aGUgXCJzZWxmLWhvc3RlZFwiIGxhYmVsLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZVNlbGZIb3N0ZWRMYWJlbDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBMYW1iZGEgZnVuY3Rpb24gb3B0aW9ucyAoVlBDLCBzZWN1cml0eSBncm91cHMsIGxheWVycywgZXRjLikuXG4gICAqL1xuICByZWFkb25seSBleHRyYUxhbWJkYVByb3BzPzogbGFtYmRhLkZ1bmN0aW9uT3B0aW9ucztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBleHRyYUxhbWJkYUVudj86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgTGFtYmRhIHdpdGggYSBwdWJsaWMgVVJMIHRvIGhhbmRsZSBHaXRIdWIgd2ViaG9vayBldmVudHMuIEFmdGVyIHZhbGlkYXRpbmcgdGhlIGV2ZW50IHdpdGggdGhlIGdpdmVuIHNlY3JldCwgdGhlIG9yY2hlc3RyYXRvciBzdGVwIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3b3JrZmxvdyBqb2IuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRodWJXZWJob29rSGFuZGxlciBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBVUkwgb2Ygd2ViaG9vayB0byBiZSB1c2VkIHdpdGggR2l0SHViLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdlYmhvb2sgZXZlbnQgaGFuZGxlci5cbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI6IFdlYmhvb2tIYW5kbGVyRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEdpdGh1YldlYmhvb2tIYW5kbGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IFdlYmhvb2tIYW5kbGVyRnVuY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgJ3dlYmhvb2staGFuZGxlcicsXG4gICAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSGFuZGxlIEdpdEh1YiB3ZWJob29rIGFuZCBzdGFydCBydW5uZXIgb3JjaGVzdHJhdG9yJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBTVEVQX0ZVTkNUSU9OX0FSTjogcHJvcHMub3JjaGVzdHJhdG9yLnN0YXRlTWFjaGluZUFybixcbiAgICAgICAgICBXRUJIT09LX1NFQ1JFVF9BUk46IHByb3BzLnNlY3JldHMud2ViaG9vay5zZWNyZXRBcm4sXG4gICAgICAgICAgR0lUSFVCX1NFQ1JFVF9BUk46IHByb3BzLnNlY3JldHMuZ2l0aHViLnNlY3JldEFybixcbiAgICAgICAgICBHSVRIVUJfUFJJVkFURV9LRVlfU0VDUkVUX0FSTjogcHJvcHMuc2VjcmV0cy5naXRodWJQcml2YXRlS2V5LnNlY3JldEFybixcbiAgICAgICAgICBQUk9WSURFUlM6IEpTT04uc3RyaW5naWZ5KHByb3BzLnByb3ZpZGVycyksXG4gICAgICAgICAgUkVRVUlSRV9TRUxGX0hPU1RFRF9MQUJFTDogcHJvcHMucmVxdWlyZVNlbGZIb3N0ZWRMYWJlbCA/ICcxJyA6ICcwJyxcbiAgICAgICAgICBQUk9WSURFUl9TRUxFQ1RPUl9BUk46IHByb3BzLnByb3ZpZGVyU2VsZWN0b3I/LmZ1bmN0aW9uQXJuID8/ICcnLFxuICAgICAgICAgIC4uLnByb3BzLmV4dHJhTGFtYmRhRW52LFxuICAgICAgICB9LFxuICAgICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygzMSksXG4gICAgICAgIGxvZ0dyb3VwOiBzaW5nbGV0b25Mb2dHcm91cCh0aGlzLCBTaW5nbGV0b25Mb2dUeXBlLk9SQ0hFU1RSQVRPUiksXG4gICAgICAgIGxvZ2dpbmdGb3JtYXQ6IGxhbWJkYS5Mb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgICAgIC4uLnByb3BzLmV4dHJhTGFtYmRhUHJvcHMsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCBhY2Nlc3MgPSBwcm9wcz8uYWNjZXNzID8/IExhbWJkYUFjY2Vzcy5sYW1iZGFVcmwoKTtcbiAgICB0aGlzLnVybCA9IGFjY2Vzcy5iaW5kKHRoaXMsICdhY2Nlc3MnLCB0aGlzLmhhbmRsZXIpO1xuXG4gICAgcHJvcHMuc2VjcmV0cy53ZWJob29rLmdyYW50UmVhZCh0aGlzLmhhbmRsZXIpO1xuICAgIHByb3BzLnNlY3JldHMuZ2l0aHViLmdyYW50UmVhZCh0aGlzLmhhbmRsZXIpO1xuICAgIHByb3BzLnNlY3JldHMuZ2l0aHViUHJpdmF0ZUtleS5ncmFudFJlYWQodGhpcy5oYW5kbGVyKTtcbiAgICBwcm9wcy5vcmNoZXN0cmF0b3IuZ3JhbnRTdGFydEV4ZWN1dGlvbih0aGlzLmhhbmRsZXIpO1xuICAgIHByb3BzLnByb3ZpZGVyU2VsZWN0b3I/LmdyYW50SW52b2tlKHRoaXMuaGFuZGxlcik7XG4gIH1cbn1cbiJdfQ==
|